📅  最后修改于: 2023-12-03 15:38:37.117000             🧑  作者: Mango
在信息检索、自然语言处理、推荐系统等领域,余弦相似度是一种常见的计算相似度的方法。它可以用来衡量两个向量之间的相似程度,其值在[-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库提供了方便的余弦相似度计算函数,可以用来衡量两个向量之间的相似程度,适用于各种机器学习、自然语言处理、信息检索等领域的应用场景。