2017-07-06 110 views
0

我是python和word2vec的新手,并且不断收到“训练模型之前必须先建立词汇表”错误。我的代码有什么问题?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]) 

回答

1

我可以在代码中看到一些错误的东西,例如文件在写入模式下打开,并且您加载的模型不包含要查找最相似单词的单词。 我想建议使用预定义的模型,如google_news_vectors加载gensim或建立自己的word2vec model,这样你就不会得到错误。 most_similar在gensim用途为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) 
1

你打开在写入模式文件,该行:

file_object = open("SupremeCourt.txt", "w") 

通过这样做,你擦掉你的文件的内容,所以当你试图将文件传递给训练模型时,没有数据需要读取。这就是为什么这个错误被抛出。

删除该行(同时还恢复文件内容),它会起作用。

+0

确保您之前已经重新下载该文件,因为变化写入磁盘。 –