python - 如何在 word2vec.similarity 中使用列表
问题描述
我有一个使用预先训练的 GoogleNews-vectors-negative300.bin 的 word2vec 模型。该模型工作正常,我可以得到这两个词之间的相似之处。例如:
word2vec.similarity('culture','friendship')
0.2732939
现在,我想使用列表元素而不是单词。例如,假设我有一个名称为“tag”的列表。第一排的前两个元素是文化和友谊。所以,标签[0,0]=文化,标签[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"
解决方案
如果标签是,根据你的问题,是一个python列表。那么问题是你不能用元组索引一个列表。
如果你的列表像 [["culture","friendship"],[...]...]
那么你应该写 word2vec.similarity(tag[0][0],tag[0][1])
推荐阅读
- javascript - 需要帮助尝试编写带有日期和时间的脚本
- blockchain - 从构造函数的特定地址发送以太币
- php - 强制 Laravel 5.7 使用 HTTPS
- amazon-web-services - AWS VPC 和本地网络之间的 CIDR 重叠
- powershell - 在powershell中减去时间
- javascript - 映射元素中的 JSX 映射元素,相邻的 JSX 元素必须包含在封闭标记中
- linux - rlogin 到远程服务器后,如何始终自动运行命令?
- python - 有没有办法使用 Quickbooks Online API 获取所有销售和费用数据?
- python - 如何使用正则表达式验证字符串
- php - 从 Cpanel 迁移到 Plesk 后,一些 php 代码无法正常工作