python 文本相似度计算函数_四种计算文本相似度的方法对比

本文对比了多种文本相似度计算方法,包括词移距离、Smooth Inverse Frequency (SIF) 和预训练编码器(如InferSent和谷歌的句子编码器)。SIF在大多数情况下表现稳定,而预训练编码器在某些任务上可能优于其他方法。研究表明,无加权的平均词嵌入是简单但有效的基准,而谷歌的句子编码器可能在理解句子顺序方面更具优势。
摘要由CSDN通过智能技术生成

作者:Yves Peirsman

编译:Bing

编者按:本文作者为Yves Peirsman,是NLP领域的专家。在这篇博文中,作者比较了各种计算句子相似度的方法,并了解它们是如何操作的。词嵌入(word embeddings)已经在自然语言处理领域广泛使用,它可以让我们轻易地计算两个词语之间的语义相似性,或者找出与目标词语最相似的词语。然而,人们关注更多的是两个句子或者短文之间的相似度。如果你对代码感兴趣,文中附有讲解细节的Jupyter Notebook地址。以下是论智的编译。

许多NLP应用需要计算两段短文之间的相似性。例如,搜索引擎需要建模,估计一份文本与提问问题之间的关联度,其中涉及到的并不只是看文字是否有重叠。与之相似的,类似Quora之类的问答网站也有这项需求,他们需要判断某一问题是否之前已出现过。要判断这类的文本相似性,首先要对两个短文本进行embedding,然后计算二者之间的余弦相似度(cosine similarity)。尽管word2vec和GloVe等词嵌入已经成为寻找单词间语义相似度的标准方法,但是对于句子嵌入应如何倍计算仍存在不同的声音。接下来,我们将回顾一下几种最常用的方法,并比较它们之间的性能。

数据

我们将在两个被广泛使用的数据集上测试所有相似度计算方法,同时还与人类的判断作对比。两个数据集分别是:

STS基准 收集了2012年至2017年国际语义评测SemEval中所有的英语数据

SICK数据库 包含了10000对英语句子,其中的标签说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值