当前位置:   article > 正文

NLP自然语言处理中的文本相似度_nlp文本相似度

nlp文本相似度

1. 背景介绍

CSDN 及各类技术博客上有很多文本相似度方面的文章,但它们的侧重点是代码,目标受众是开发人员,代码基础薄弱的话看起来会比较吃力。

本文侧重讲述逻辑和使用场景,尝试将算法通俗化,尽量多举例,降低理解门槛。希望读完本文,大家可以对文本相似度有一个完整而深刻的理解,最好能在非代码维度上超过开发人员(达到了这种水平,输出的需求自然会得到开发同学最大的尊重和认同)。

文本相似度,顾名思义是指两个文本(文章)之间的相似度,在搜索引擎、推荐系统、论文鉴定、机器翻译、自动应答、命名实体识别、拼写纠错等领域有广泛的应用。

总的来说,文本相似度是自然语言处理(NLP)中必不可少的重要环节,几乎所有 NLP 的领域都会涉及到!

与之相对应的,还有一个概念——文本距离——指的是两个文本之间的距离。文本距离和文本相似度是负相关的——距离小,“离得近”,相似度高;距离大,“离得远”,相似度低。业务上不会对这两个概念进行严格区分,有时用文本距离,有时则会用文本相似度。

 

2. 各类算法

2.1 欧氏距离

数学中的一个非常经典的距离,公式如下:

例 1:计算 “产品经理” 和“产业经理是什么”之间的欧氏距离

过程如下:

  • 文本向量 A=(产,品,经,理),即 x1 = 产,x2 = 品,x3 = 经,x4 = 理,x5、x6、x7 均为空;
  • 文本向量 B=(产,业,经,理,是,什,么),即 y1 = 产,y2 = 业,y3 = 经,y4 = 理,y5 = 是,y6 = 什,y7 = 么。

这里规定,若 xi=yi,则 xi-yi=0;若 xi≠yi,|xi-yi|=1。

所以,欧氏距离d是 2

(1)适用场景

编码检测等类似领域。两串编码必须完全一致,才能通过检测,这时一个移位或者一个错字,可能会造成非常严重的后果。比如下图第一个二维码是 “这是一篇文本相似度的文章”,第二个是 “这是一篇文本相似度文章”。从人的理解来看,这两句话相似度非常高,但是生成的二维码却千差万别。

(2)不适用场景

文本相似度,意味着要能区分相似 / 差异的程度,而欧氏距离更多的只能区分出是否完全一样。而且,欧氏距离对位置、顺序非常敏感,比如 “我的名字是孙行者” 和“孙行者是我的名字”,在人看来,相似度非常高,但是

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/950933
推荐阅读
相关标签
  

闽ICP备14008679号