gpt4 book ai didi

python - spacy 相似性方法不能正常工作

转载 作者:太空宇宙 更新时间:2023-11-04 04:32:43 25 4
gpt4 key购买 nike

我正在使用 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左右,但不是一个非常非常小的值。

此外,“狗”和“香蕉”之间的相似度为 0.0,但“香蕉”和“狗”之间的相似度为 -7.828739256116838e+17。

我不知道怎么解决。

请帮帮我。

最佳答案

首先安装大型 EN 模型(或所有模型)。

python3 -m spacy.en.download all

接下来,根据文档尝试使用示例代码,

nlp = spacy.load('en_core_web_md')

如果这不起作用,而不是上面尝试加载,

nlp = spacy.load('en')

完成上述更改后,结果与文档一致。

python3 /tmp/c.py
dog, dog: 1.000000078333395
dog, cat: 0.8016855098942641
dog, banana: 0.2432764518408807
cat, dog: 0.8016855098942641
cat, cat: 1.0000001375986456
cat, banana: 0.2815436412709355
banana, dog: 0.2432764518408807
banana, cat: 0.2815436412709355
banana, banana: 1.000000107068369

关于python - spacy 相似性方法不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52388291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com