有人可以告诉我如何以图形方式计算出简单的余弦相似度

时间:2016-05-17 18:30:51

标签: text data-mining cosine-similarity

有人可以告诉我如何计算余弦相似度吗? 我知道有人在similar question link之前回答了类似的问题,但我不明白最终结果是如何达成的。

1 个答案:

答案 0 :(得分:0)

因为余弦相似性方程是

enter image description here

similar question link中,所选择的答案计算了两个代表两个句子的字数的向量。

A = (2,1,0,2,0,1,1,1)
B = (2,1,1,1,1,0,1,1)

所以我们可以计算出A和B的点积

dotProduct(A,B) = 2x2 + 1x1 + 0x1 + 2x1 + 0x1 + 1x0 + 1x1 + 1x1 = 9

和A和B的大小是

magnitude(A) = sqrt(2x2 + 1x1 + 0x0 + 2x2 + 0x0 + 1x1 + 1x1 + 1x1) = 3.464
magnitude(B) = sqrt(2x2 + 1x1 + 1x1 + 1x1 + 1x1 + 0x0 + 1x1 + 1x1) = 3.162

然后我们可以应用等式:

similarity = cos(theta) = dotProduct(A,B) / (magnitude(A) x magnitude(B))
                        = 9 / (3.464 x 3.162)
                        = 0.822

其中theta是矢量A和矢量B之间的角度