我刚刚在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
模型,但仍然存在相同的问题。
答案 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))
如果您尝试这样做,可能会发现问题所在。