我是python和word2vec的新手,并且在训练模型之前不断获得“你必须首先构建词汇表”错误。我的代码出了什么问题?
这是我的代码:
file_object=open("SupremeCourt.txt","w")
from gensim.models import word2vec
data = word2vec.Text8Corpus('SupremeCourt.txt')
model = word2vec.Word2Vec(data, size=200)
out=model.most_similar()
print(out[1])
print(out[2])
答案 0 :(得分:1)
您使用以下行在写入模式下打开该文件:
file_object = open("SupremeCourt.txt", "w")
通过这样做,您可以删除文件的内容,这样当您尝试将模型传递给训练模型时,就无法读取数据。这就是抛出错误的原因。
删除该行(并恢复文件内容),它将起作用。
答案 1 :(得分:1)
我可以在你的代码中看到一些错误的东西,比如在写入模式下打开文件,你加载的模型不包含你想要找到最相似单词的单词。
我建议使用google_news_vectors等预定义模型加载gensim或构建自己的word2vec model,这样就不会出错。
gensim中most_similar的用法是out = model.most_similar("word-name")
file_object=open("SupremeCourt.txt","r")
from gensim.models import word2vec
data = word2vec.Text8Corpus('SupremeCourt.txt')
model = word2vec.Word2Vec(data, size=200)#use google news vectors here
out=model.most_similar("word")
print(out)