谁能告诉我如何以图形方式计算出简单的余弦相似度
can someone show me how to work out simple cosine similarity graphically
有人可以教我如何计算余弦相似度吗?
我知道之前有人回答过类似的问题similar question link,但我不明白最终结果是如何得出的。
余弦相似度方程为
并且在 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 之间的角度
有人可以教我如何计算余弦相似度吗? 我知道之前有人回答过类似的问题similar question link,但我不明白最终结果是如何得出的。
余弦相似度方程为
并且在 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 之间的角度