自然语言处理——文本相似度

本文探讨了自然语言处理中的文本相似度问题,包括基于关键词匹配的N-Gram和Jaccard相似度,基于向量空间的Word2vec和TF-IDF,以及利用卷积神经网络(CNN)的深度学习方法。随着深度学习的发展,文本相似度检测正逐渐从传统方法转向深度学习。
摘要由CSDN通过智能技术生成

前言

  在自然语言处理的学习和研究中,有好多问题涉及到如何检测两个文本的相似度问题,尤其是在度量句子或者短语之间的相似度。测算度量文本相似度的方法大体有三种:基于关键词匹配的传统方法、基于向量空间的方法和利用深度学习进行文本相似度检测的方法。随着近些年深度学习学科的发展,文本相似度的方法逐渐从基于关键词匹配的传统方法转变为深度学习,且结合向量空间和深度学习进行文本相似度检测。

文本相似度算法

基于关键词匹配

  基于关键词匹配方法具有代表性的有:N-gram 相似度与Jaccard 相似度

N-Gram相似度

  使用N-Gram相似度进行文本相似度匹配是一种模糊匹配方式,关键在于通过两个长的很像的句子之间的差异来度量相似度。
  N-Gram相似度计算具体指假设有一个字符串,那么字符串的N-Gram表示为按照长度N切分这个字符串原句得到词段(词段即原句中所有长度为N的子串)。设想如果有两个字符串,然后分别求它们的N-Gram,那么就可以从它们的共有子串的数量这个角度去定义两个字符串间的N-Gram距离。通过N-Gram距离来判断这两个句子的相似程度。即: S i m i l a r i t y = ∣ G N ( S ) ∣ + ∣ G N ( T ) ∣ − 2 × ∣ G N ( S ) ∩ G N ( T ) ∣ Similarity=|G_N(S)| + |G_N(T)|-2 × |G_N(S)\cap G_N(T)| Similarity=GN(S)+GN(T)2×GN(S)GN(T)  其中, G N ( S ) G_N(S) GN(S) G N ( T ) G_N(T) GN(T) 分别表示字符串S和T的N-Gram集合,当 S i m i l a r i t y Similarity Similarity 值越低时,两字符串越相似。
  N-Gram忽略了两个字符串长度差异可能导致的问题。比如字符串 girl 和 girlfriend,二者所拥有的公共子串数量显然与 girl 和其自身所拥有的公共子串数量相等,但是并不能据此认为 girl 和girlfriend 是两个等同的匹配。

Jaccard相似度

  jaccard index又称为jaccard similarity coefficient。主要用于比较有限样本集之间的相似性和差异性。
  原理:计算两个句子之间词集合的交集和并集的比值。该值越大,表示两个句子越相似,在涉及大规模并行运算的时候,该方法在效率上有一定的优势,公式如下: J ( A , B ) = ∣ A ∩ B ∣ ∣ A ∪ B ∣ = ∣ A ∩ B ∣ ∣ A ∣ + ∣ B ∣ − ∣ A ∩ B ∣ 0 ⩽ J ( A , B )

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值