当前位置:   article > 正文

如何计算文本之间的相似度?余弦相似度详解!带例子,嘎嘎通俗易懂~_文本余弦相似度计算

文本余弦相似度计算

计算公式

  • cos ⁡ ( θ ) = A ⃗ ⋅ B ⃗ ∣ ∣ A ⃗ ∣ ∣ × ∣ ∣ B ⃗ ∣ ∣ \cos (\theta) = \frac{\vec{A} \cdot \vec{B}}{||\vec{A}|| \times ||\vec{B}||} cos(θ)=∣∣A ∣∣×∣∣B ∣∣A B
  • 其中 θ \theta θ余弦相似度.
  • cos ⁡ ( θ ) \cos (\theta) cos(θ)越靠近1,则表示向量A和向量B在向量空间中的夹角越靠近0,意味着它们之间更相似。
  • 夹角等于0,则表示这俩向量相等。

例子

  • 假如要计算两段文本之间的相似性,总共可以分成以下五个步骤:

    1. 分词
    2. 作出语料库
    3. 计算词频
    4. 将原句转为词频向量
    5. 计算余弦相似性
  • A:今天天气真好,明天天气也一样。

  • B:今天天气不差,明天也一样。

  1. 分词
    今天/天气/真好,明天/天气/也/一样。
    今天/天气/不差,明天/也/一样。
  2. 语料库
    今天,天气,真好,明天,也,一样,不差
  3. 计算词频
    A:今天1,天气2,真好1,明天1,也1,一样1,不差0
    B:今天1,天气1,真好0,明天1,也1,一样1,不差1
  4. 词频向量
    A ⃗ = [ 1 2 1 1 1 1 0 ] \vec{A} =
    [1211110]
    A = 1211110
    B ⃗ = [ 1 1 0 1 1 1 1 ] \vec{B} =
    [1101111]
    B = 1101111
  5. 余弦相似性计算
    套入上述公式中可得 cos ⁡ ( θ ) = ∑ i n ( A i × B i ) ∑ i n A i 2 × ∑ i n B i 2 = 1 × 1 + 2 × 1 + 1 × 0 + 1 × 1 + 1 × 1 + 1 × 1 + 0 × 1 1 2 + 2 2 + 1 2 + 1 2 + 1 2 + 1 2 + 0 2 × 1 2 + 1 2 + 0 2 + 1 2 + 1 2 + 1 2 + 1 2 = 6 3 × 6 ≈ 0.816 \cos(\theta) = \frac{\sum_i^n(A_i \times B_i)}{\sqrt{\sum_i^nA_i^2}\times \sqrt{\sum_i^nB_i^2}} = \frac{1\times1 + 2\times1 + 1\times0 + 1\times1 + 1\times1 + 1\times1 + 0\times1}{\sqrt{1^2 + 2^2 + 1^2 + 1^2 + 1^2 + 1^2 + 0^2} \times \sqrt{1^2 + 1^2 + 0^2 + 1^2 + 1^2 + 1^2 + 1^2}} = \frac{6}{3 \times \sqrt{6}} \approx 0.816 cos(θ)=inAi2 ×inBi2 in(Ai×Bi)=12+22+12+12+12+12+02 ×12+12+02+12+12+12+12 1×1+2×1+1×0+1×1+1×1+1×1+0×1=3×6 60.816
  • 最终结果为0.816更靠近1,于是通过余弦相似度计算的结果表示这两个句子之间是颇为相似的。
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号