如何在word2vec.similarity中使用列表

时间:2018-12-20 04:59:23

标签: python gensim word2vec

我有一个使用预先训练的GoogleNews-vectors-negative300.bin的word2vec模型。该模型运行良好,我可以得到两个词之间的相似之处。例如:

word2vec.similarity('culture','friendship')

0.2732939

现在,我想使用列表元素代替单词。例如,假设我有一个名称为“标签”的列表。第一排的前两个元素是文化和友谊。因此,tag [0,0] =文化,tag [0,1] =友谊。 我使用以下代码给了我一个错误:

word2vec.similarity(tag[0,0],tag[0,1])

“标签”列表是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"

2 个答案:

答案 0 :(得分:0)

根据您的问题,如果tag是python-list,则问题是您无法使用元组为列表编制索引。
如果您的清单类似于[[“ culture”,“ friendship”],[...] ...
然后你应该写word2vec.similarity(tag [0] [0],tag [0] [1])

答案 1 :(得分:0)

我认为您的“友谊”一词中有一些前导空格。

您能尝试一下吗?

word2vec.similarity(tag[0,0].strip(),tag[0,1].strip())
相关问题