如何在python中计算余弦相似度


余弦相似度是内积空间的两个向量之间相似度的度量。

对于两个向量 A 和 B,余弦相似度计算如下:

余弦相似度= ΣA i B i / (√ΣA i 2 √ΣB i 2 )

本教程介绍如何使用NumPy库中的函数在 Python 中计算向量之间的余弦相似度。

Python中两个向量之间的余弦相似度

以下代码展示了如何在Python中计算两个数组之间的余弦相似度:

 from numpy import dot
from numpy. linalg import norm

#define arrays
a = [23, 34, 44, 45, 42, 27, 33, 34]
b = [17, 18, 22, 26, 26, 29, 31, 30]

#calculate Cosine Similarity
cos_sim = dot (a, b)/( norm (a)* norm (b))

cos_sim

0.965195008357566

两个表之间的余弦相似度为0.965195

请注意,此方法适用于任意长度的两个数组:

 import numpy as np
from numpy import dot
from numpy. linalg import norm

#define arrays
a = np.random.randint(10, size= 100 )
b = np.random.randint(10, size= 100 )

#calculate Cosine Similarity
cos_sim = dot (a, b)/( norm (a)* norm (b))

cos_sim

0.7340201613960431

但是,这仅在两个数组长度相同时才有效:

 import numpy as np
from numpy import dot
from numpy. linalg import norm

#define arrays
a = np.random.randint(10, size= 90 ) #length=90
b = np.random.randint(10, size= 100 ) #length=100

#calculate Cosine Similarity
cos_sim = dot (a, b)/( norm (a)* norm (b))

cos_sim

ValueError : shapes (90,) and (100,) not aligned: 90 (dim 0) != 100 (dim 0)

评论

1.使用 Python 计算余弦相似度的方法有多种,但正如Stack Overflow 线程所解释的,本文中解释的方法是最快的。

2.请参阅此维基百科页面以了解有关余弦相似度的更多信息。

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注