python余弦相似度

余弦相似度公式

\(\cos\alpha={\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\(\times\)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
posted @ 2020-12-23 19:53  来一点音乐  阅读(1028)  评论(0编辑  收藏  举报