python-3.x - Spacy 没有显示准确的词汇结果
问题描述
我正在尝试使用 spacy 获得与原始词相似的词。我已经导入了en_core_web_md
和en_core_web_lg
模型,我正在使用词向量来查找相似的词。
当我在我的虚拟环境之外运行它时,没有问题;但是,在里面venv
,当我运行时:
dog = nlp.vocab[u'dog']
for x in dog.vocab:
print(x.text)
它会产生如下结果:
Nothin
5
Nuthin’
ll
:)
'y
this
-_-
(ಠ_ಠ)
’em
这甚至与“狗”一点也不相似。当我尝试使用“活泼”或“香蕉”等其他词时,它给出的结果与狗完全相同。
解决方案
看起来你可能有两个不同版本的 spacy,一个 venv 可能是 v2.2,另一个可能是 v2.3。
而不是迭代nlp.vocab
,而是迭代nlp.vocab.vectors
,它应该在任何版本的 spacy v2 中工作,并避免没有向量的词位:
for orth in nlp.vocab.vectors:
w = nlp.vocab[orth]
# do something
请参阅此处 v2.3 迁移指南中有关预加载词汇的部分:https ://spacy.io/usage/v2-3#migrating
推荐阅读
- ajax - 来自单个浏览器的 HTTP 调用排序
- windows - 为什么 readcsv("universe.csv") 会导致错误但 readcsv(f) 工作正常
- ios - 在发送按钮之前单击联系人按钮时出现黑屏
- prolog - Prolog失败一次就放弃了?
- algorithm - 求最大点数的算法
- c++ - 获取外部符号错误 DirectX9
- rest - 在 Arcgis 中向 REST 服务添加功能时出错
- android - 如何为需要电影列表的 RecyclerView.Adapter 提供数据?
- ruby-on-rails - API端点收到请求但没有任何反应
- c# - 应该在存储库或服务层编写复杂的查询?