余弦相似度公式
(cosalpha={vec a} {cdot} {vec b}{|vec a||vec b|})
向量(vec a)与向量(vec b)的余弦相似度等于,向量(vec a)与向量(vec b)的点积,除以向量(vec a)与向量(vec b)的长度
函数cos_sim计算了向量的余弦相似度,参数b为一个矩阵n( imes)m的矩阵,表示n个m维的向量。
def cos_sim(a,b):
"""
计算a,b向量的余弦相似度
@param a: 1*m的向量
@param b: n*m的矩阵
@return: 1*n的值,每个样本的bi与a的余弦相似度
"""
cos_result = np.dot(a, b.T) / np.sqrt(np.sum(b ** 2, axis=1)) / np.sqrt(np.dot(a, a.T))
return cos_result