【发布时间】:2019-02-22 14:11:32
【问题描述】:
我正在使用spacy 进行简单的自然语言处理。
我正在通过测量单词之间的相似度来过滤掉单词。
我编写并使用了 spacy 文档中显示的以下简单代码,但结果看起来不像 documentation。
import spacy
nlp = spacy.load('en_core_web_lg')
tokens = nlp('dog cat banana')
for token1 in tokens:
for token2 in tokens:
sim = token1.similarity(token2)
print("{:>6s}, {:>6s}: {}".format(token1.text, token2.text, sim))
代码的结果如下。
dog, dog: 1.0
dog, cat: 2.307269867164827e-21
dog, banana: 0.0
cat, dog: 2.307269867164827e-21
cat, cat: 1.0
cat, banana: -0.04468117654323578
banana, dog: -7.828739256116838e+17
banana, cat: -8.242222286053048e+17
banana, banana: 1.0
尤其是“狗”和“猫”之间的相似度应该在0.8左右,但这并不是一个非常小的值。
此外,“dog”和“banana”之间的相似度为 0.0,而“banana”和“dog”之间的相似度为 -7.828739256116838e+17。
我不知道如何解决它。
请帮助我。
【问题讨论】:
-
重新安装en_core_web_lg模型后试试。
-
我不知道如何重新安装它。我尝试在 spacy 文档网页中找到它,但它失败了。如果您知道如何重新安装它,请告诉我。感谢您的评论和帮助。
-
python -m spacy 下载 en_core_web_lg --force
-
@AjaySrivastava 感谢您的帮助,我按照您的说法进行了尝试,但遗憾的是,它仍然没有什么不同。但谢谢你的帮助。
标签: python similarity word2vec spacy cosine-similarity