今天我刚刚学习了余弦相似性,在代码实现之前,我在纸上尝试了一些例子,但是我似乎得到了意想不到的结果。
以下分数是预先计算的TF-IDF分数:
Doc1 Doc2 Query
Word1 0.35 0.2 1
Word2 0.80 0.4 1
如果我们采用纯TF-IDF排名方法,我们最终将得到:
0.35+0.8 = 1.15 score for Doc1 and 0.2+0.4 = 0.6 score for Doc 2.
Clearly Doc 1 is the winner.
为了实现余弦相似性,我们需要:
对于DOC1:
(0.35^2+0.8^2)的平方根=0.873212
对于DOC2:
(0.2^2+0.4^2)的平方根=0.447214
到目前为止还不错,DOC1似乎领先。
现在我们使用这些来规范化并得到以下结果:
Doc1 Doc2 Query
Word1 0.400819 0.447213 1
Word2 0.916158 0.894426 1
SUM: 1.316977 1.34164
DOC2现在领先,即使我们采用了点产品,它也将领先。这怎么可能呢?显然基于TF-IDF的DOC1几乎是DOC2的两倍。他们怎么这么近?如果在搜索引擎中显示doc2将获得最高的位置。
请帮我澄清我的困惑?