📜  如何在Python中计算余弦相似度?(1)

📅  最后修改于: 2023-12-03 15:38:37.117000             🧑  作者: Mango

在Python中计算余弦相似度

在信息检索、自然语言处理、推荐系统等领域,余弦相似度是一种常见的计算相似度的方法。它可以用来衡量两个向量之间的相似程度,其值在[-1,1]范围内,取值越大表示越相似,取值越小表示越不相似,0表示不相关。

在Python中,我们可以使用Scipy库中的cosine_similarity函数来计算余弦相似度。

函数原型
cosine_similarity(X, Y=None, dense_output=True)
  • X : {array-like, sparse matrix},形状为(n_samples_X, n_features)的数组或CSR矩阵。X和Y至少有一个不为空。

  • Y : {array-like, sparse matrix},形状为(n_samples_Y, n_features)的数组或CSR矩阵。如果为空,则将其设置为X。

  • dense_output : bool,可选。默认为True。如果为False,则返回稀疏矩阵。

例子

现在我们来看一个例子,计算两个向量的余弦相似度。

from sklearn.metrics.pairwise import cosine_similarity
import numpy as np

# 定义两个向量
x = np.array([1, 2, 3])
y = np.array([2, 4, 6])

# 计算余弦相似度
cos_sim = cosine_similarity(x.reshape(1,-1), y.reshape(1,-1))

# 打印结果
print(cos_sim)

输出结果:

[[1.]]

注意,需要将两个向量转换为矩阵形式,否则会出现维度错误,无法计算余弦相似度。

总结

Python的Scipy库提供了方便的余弦相似度计算函数,可以用来衡量两个向量之间的相似程度,适用于各种机器学习、自然语言处理、信息检索等领域的应用场景。