错误的相似性结果

时间:2018-10-01 04:52:23

标签: python spacy

我刚刚在MacBook和python中安装了spacy软件包,并开始学习spacy相似功能;但是,我发现了错误的结果。

输入:

import spacy

nlp = spacy.load('en_core_web_sm') 
tokens = nlp(u'dog cat banana')

for token1 in tokens:
    for token2 in tokens:
        print(token1.text, token2.text, token1.similarity(token2))

Output:
dog dog 1.0
dog cat -1.8432091e-22
dog banana -0.00349403
cat dog -1.8432091e-22
cat cat 1.0
cat banana -1.8395509e-22
banana dog -0.00349403
banana cat -1.8395509e-22
banana banana 1.0

我在window10 PC上做了类似的事情,结果很有意义。我不知道MacBook设置有什么问题。我尝试使用en_core_web_md模型,但仍然存在相同的问题。

1 个答案:

答案 0 :(得分:0)

我不知道问题出在哪里,但让我为您提供解决方法。您可以使用以下方法计算相似性得分:

import spacy
import numpy as np

nlp = spacy.load('en')
tokens = nlp(u'dog cat banana')

def similarity(token1, token2):
    return np.dot(token1.vector / token1.vector_norm, token2.vector / token2.vector_norm)

for token1 in tokens:
    for token2 in tokens:
        print(token1.text, token2.text, similarity(token1, token2))

如果您尝试这样做,可能会发现问题所在。