我有一个word2vec模型,使用预先训练好的GoogleNews-vectors-negative300.bin。模型工作得很好,我可以得到这两个词之间的相似之处。例如:
word2vec.similarity('culture','friendship')
0.2732939
现在,我想使用列表元素而不是单词。例如,假设我有一个名为“tag”的列表。第一排的前两个要素是文化和友谊。所以,tag[0,0]=文化,tag[0,1]=友谊。 我使用以下代码,这给了我一个错误:
word2vec.similarity(tag[0,0],tag[0,1])
“tag”列表是numpy.ndarray
错误是:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\s\AppData\Local\Programs\Python6436\Python36\lib\site-packages\gensim\models\keyedvectors.py", line 992, in similarity
return dot(matutils.unitvec(self[w1]), matutils.unitvec(self[w2]))
File "C:\Users\s\AppData\Local\Programs\Python6436\Python36\lib\site-packages\gensim\models\keyedvectors.py", line 337, in __getitem__
return self.get_vector(entities)
File "C:\Users\s\AppData\Local\Programs\Python6436\Python36\lib\site-packages\gensim\models\keyedvectors.py", line 455, in get_vector
return self.word_vec(word)
File "C:\Users\s\AppData\Local\Programs\Python6436\Python36\lib\site-packages\gensim\models\keyedvectors.py", line 452, in word_vec
raise KeyError("word '%s' not in vocabulary" % word)
KeyError: "word ' friendship' not in vocabulary"
我认为你的“友谊”一词中有一些前导空格
你能试试这个吗:
根据您的问题,如果tag是python-list,那么问题是您不能用元组索引列表。
如果您的列表像[[“文化”,“友谊”],[…]…]
然后你应该写word2vec.similarity(tag[0][0],tag[0][1])
相关问题 更多 >
编程相关推荐