我浏览了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
答案 0 :(得分:1)
你怎么知道&#34;不训练&#34;?
您确定要向Word2Vec提供sentences_clean
,如您所示的代码,而不是tokenized_sentences
列表吗?
(如果sentences_clean
是一个字符串列表,给Word2Vec的每个字符串看起来都像一个字符列表,而Word2Vec模型学到的唯一字词将会是单字符。)