Word2Vec模型不是训练,输入句子尝试了句子序列和列表

时间:2017-04-24 05:16:37

标签: python gensim word2vec

我浏览了word2vec教程,并能够使用Text8Corpus的给定示例数据进行训练。 Tutorial link但是当我尝试测试自定义数据时,模型不是训练。输入在python列表中是unicode字符串格式。 min_count也设置为1.由于它不是上面输入格式的训练,我试图检查给定教程的输入类型,但我收到的格式为:class'gensim.models.word2vec.Text8Corpus'。所以不确定如何在列表中训练我的unicode字符串句子的自定义数据。任何人都可以指导我正确的方向吗?

  

输入的例子:[[u'SENTENCE_START',u'dont',u'let',u'him',u'treat',u'you',u'like',u'garbage', u'SENTENCE_END']]

sentences_clean = []
data = pandas.read_excel('from my folder/3_captions.xlsx', parse_cols = "A")
sentences = data.iloc[:, 0].tolist()

for line in sentences:
  line = re.sub(r"""["?,$!]|'(?!(?<! ')[ts])""", "", line)
  line = re.sub(r"\.", "", line) 
  line = line.lower().replace("'", "")
  sentences_clean.append(line)

tokenized_sentences = [nltk.word_tokenize(sent) for sent in sentences_clean]

import gensim, logging
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
model_word2vec = gensim.models.Word2Vec(sentences_clean, min_count=1, size=300, workers=4)
model_word2vec.save('/Users/rajesh/Documents/word2vec')
print (model_word2vec.similarity('freudian','slip'))

我需要从教程和示例中了解到word2vec的所有内容吗?但是下面的教程可行。

sentences = word2vec.Text8Corpus('/Users/rajesh/Downloads/text8')
model_word2vec = gensim.models.Word2Vec(sentences, min_count=1, size=20)
print (model_word2vec.similarity('queen','woman'))
>>> 0.659536897647

1 个答案:

答案 0 :(得分:1)

你怎么知道&#34;不训练&#34;?

您确定要向Word2Vec提供sentences_clean,如您所示的代码,而不是tokenized_sentences列表吗?

(如果sentences_clean是一个字符串列表,给Word2Vec的每个字符串看起来都像一个字符列表,而Word2Vec模型学到的唯一字词将会是单字符。)