Python Spacy初学者:相似函数

2024-10-01 07:27:16 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中spaCy的教程示例中,apples.similarity(oranges)的结果是 0.39289959293092641 而不是0.7857989796519943

有什么原因吗? 教程的原始文档 https://spacy.io/docs/ 一个与我得到的不同答案的教程: http://textminingonline.com/getting-started-with-spacy

谢谢


Tags: 答案文档httpsiohttp示例docsspacy
3条回答

这可能是因为比较文本中有一个词汇表外的单词。注意:不同空间模型的OOV单词是不同的!模型有不同的词汇。在

多亏了Ethan关于问题追踪者的报告,这个问题现在得到了解决。在

现在您还将获得默认的手套向量-所以一般来说相似性应该更准确。在

这似乎是空间中的一个缺陷。在

不知何故,vector_norm计算不正确。在

import spacy
import numpy as np
nlp = spacy.load("en")
# using u"apples" just as an example
apples = nlp.vocab[u"apples"]
print apples.vector_norm
# prints 1.4142135381698608, or sqrt(2)
print np.sqrt(np.dot(apples.vector, apples.vector))
# prints 1.0

然后vector_normsimilarity中使用,它总是返回一个总是正确值的一半的值。在

^{pr2}$

如果你要对同义词的相似性评分进行排名,这可能是可以的。但是如果你需要正确的余弦相似性分数,那么结果是不正确的。在

我提交了问题here。希望很快就能修好。在

相关问题 更多 >