Python简单实现基于VSM的余弦相似度计算

        在知识图谱构建阶段的实体对齐和属性值决策、判断一篇文章是否是你喜欢的文章、比较两篇文章的相似性等实例中,都涉及到了向量空间模型(Vector Space Model,简称VSM)和余弦相似度计算相关知识。
        这篇文章主要是先叙述VSM和余弦相似度相关理论知识,然后引用阮一峰大神的例子进行解释,最后通过Python简单实现百度百科和互动百科Infobox的余弦相似度计算。

一. 基础知识

        第一部分参考我的文章: 基于VSM的命名实体识别、歧义消解和指代消解

        第一步,

  • 5
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
余弦定理相似度计算法是一种常用的文本相似度计算方法,用于度量两个文本向量之间的夹角余弦值,从而判断它们的相似程度。该算法基于向量空间模型VSM),将文本转化为向量表示,并通过计算向量之间的余弦相似度,来衡量文本之间的相似度。 具体来说,对于两个文本$A$和$B$,可以将它们表示为向量$\vec{a}$和$\vec{b}$,每个维度表示对应词汇在文本中出现的次数或权重。例如,假设文本$A$和$B$中包含的词汇集合为$V=\{w_1, w_2, ..., w_n\}$,则可以将它们表示为一个$n$维向量,每个维度表示对应词汇在文本中出现的次数或权重。例如,对于文本$A$和$B$,分别表示为向量$\vec{a}=(a_1, a_2, ..., a_n)$和$\vec{b}=(b_1, b_2, ..., b_n)$,其中$a_i$和$b_i$表示词汇$w_i$在文本$A$和$B$中出现的次数或权重。 然后,通过计算向量$\vec{a}$和$\vec{b}$之间的余弦相似度,来衡量文本$A$和$B$之间的相似度。余弦相似度计算公式如下: $$\cos(\theta)=\frac{\vec{a}\cdot\vec{b}}{\|\vec{a}\|\|\vec{b}\|}$$ 其中,$\vec{a}\cdot\vec{b}$表示向量$\vec{a}$和$\vec{b}$的点积,$\|\vec{a}\|$和$\|\vec{b}\|$分别表示向量$\vec{a}$和$\vec{b}$的模长,$\theta$表示向量$\vec{a}$和$\vec{b}$之间的夹角。 余弦相似度的取值范围在$[-1, 1]$之间,当$\cos(\theta)=1$时,表示两个向量夹角为0度,即完全相似;当$\cos(\theta)=-1$时,表示两个向量夹角为180度,即完全不相似;当$\cos(\theta)=0$时,表示两个向量夹角为90度,即没有相关性。 余弦定理相似度计算法的优点是简单易懂,适用于处理各种类型的文本数据,缺点是没有考虑词汇之间的语义关系,对于一些语义相似但表现形式不同的文本,可能会出现误判的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Eastmount

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值