首页 > 解决方案 > Spacy 没有显示准​​确的词汇结果

问题描述

我正在尝试使用 spacy 获得与原始词相似的词。我已经导入了en_core_web_mden_core_web_lg模型,我正在使用词向量来查找相似的词。

当我在我的虚拟环境之外运行它时,没有问题;但是,在里面venv,当我运行时:

dog = nlp.vocab[u'dog']
for x in dog.vocab:
    print(x.text)

它会产生如下结果:

Nothin
5
Nuthin’
ll
:)
'y
this
-_-
(ಠ_ಠ)
’em

这甚至与“狗”一点也不相似。当我尝试使用“活泼”或“香蕉”等其他词时,它给出的结果与狗完全相同。

标签: python-3.xspacypython-venv

解决方案


看起来你可能有两个不同版本的 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


推荐阅读