Python 计算余弦相似度

作者: 衣介书生 | 来源:发表于2018-01-07 23:23 被阅读3584次

以下代码用到了 numpy 包。代码实现的功能是计算两个向量之间的余弦相似度。
我们可以把两个向量想象成空间中的两条线段,都是从原点([0, 0, ...])出发,指向不同的方向。两条线段之间形成一个夹角,如果夹角为0度,意味着方向相同、线段重合;如果夹角为90度,意味着形成直角,方向完全不相似;如果夹角为180度,意味着方向正好相反。因此,我们可以通过夹角的大小,来判断向量的相似程度。夹角越小,就代表越相似。

import numpy as np


def cos_sim(vector_a, vector_b):
    """
    计算两个向量之间的余弦相似度
    :param vector_a: 向量 a 
    :param vector_b: 向量 b
    :return: sim
    """
    vector_a = np.mat(vector_a)
    vector_b = np.mat(vector_b)
    num = float(vector_a * vector_b.T)
    denom = np.linalg.norm(vector_a) * np.linalg.norm(vector_b)
    cos = num / denom
    sim = 0.5 + 0.5 * cos
    return sim

参考

关于余弦相似度的解释可以看一下TF-IDF与余弦相似性的应用(二):找出相似文章

相关文章

  • 余弦相似度计算

    1. 余弦相似度: 余弦相似度,又称为余弦相似性,是通过计算两个向量的夹角余弦值来评估他们的相似度。余弦相似度将向...

  • Python 计算余弦相似度

    以下代码用到了 numpy 包。代码实现的功能是计算两个向量之间的余弦相似度。我们可以把两个向量想象成空间中的两条...

  • Numpy计算余弦相似度:向量之间,向量与矩阵,矩阵与矩阵

    摘要:Numpy,Python 余弦相似度公式 余弦相似度是衡量向量夹角的余弦值作为相似度度量指标,夹角越小相似度...

  • 20-余弦相似度及其R实现

    1 余弦相似度 余弦相似度 (Cosine Similarity) 通过计算两个向量的夹角余弦值来评估他们的相似度...

  • 余弦相似度理解及shengxin中应用

    cosin similarity(余弦相似度) 1,它最常见的应用是计算文本相似度。将文本转换为向量 2,余弦相似...

  • Python 使用sklearn计算余弦相似度

    背景 在计算相似度时,常常用到余弦夹角来判断相似度,Cosine(余弦相似度)取值范围[-1,1],当两个向量的方...

  • 余弦相似度算法与kotlin实现

    余弦相似度计算 余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。余弦值越接近1,就表明夹角...

  • 模型评估——余弦距离的应用

    余弦相似度和余弦距离: 余弦相似度取值范围为[-1,1] 余弦距离:1-余弦相似度,取值为 [0,2] 余弦距离和...

  • NLP详解

    (一)余弦相似度、向量空间模型 1、相似度 • 相似度度量:计算个体间相似程度• 相似度值越小,距离越大,相似度值...

  • 相似度计算方法:余弦相似度

    最近接触到了推荐系统 ,在这个专题中,和大家分享一下自己的收获和心得。 基于用户的协同过滤算法 基于用户的协同过滤...

网友评论

  • 别理我这个小可爱:这个老铁也是厉害,import numpy as py。。。。
    衣介书生:@别理我这个小可爱 谢谢提醒:smile: ,好久没在简书写文章了(对 LaTeX 支持不太好),谢谢!
  • 01fcc9ef51ca:你好,你的运行环境是什么?我发现在Python2或者Python3里面下面这句都会报错:
    num = float(vector_a * vector_b.T)
    报错信息:TypeError: only length-1 arrays can be converted to Python scalars
    正确的心法应该是去掉float:
    num= vector_a*vector_b.T
    或者写成numpy形式:
    num = np.matmul(vector_a,vector_b.T)

本文标题:Python 计算余弦相似度

本文链接:https://www.haomeiwen.com/subject/vycvnxtx.html