计算文本相似度方法总结

1、无监督,不使用额外标注数据

  • average word vectors:简单对句子中的所有词向量取平均,是一种简单有效的方法
    • 缺点没有考虑到单词的顺序,对15个字以内的短句子比较有效,丢掉了词与词间的相关意思,无法更精细的表达句子与句子之间的关系。
  • tfidf-weighting word vectors:对句子中的所有词向量根据TF-IDF权重加权求和,是常用的一种计算sentence embedding的方法,在某些问题上表现很好,相比于简单的对所有词向量求平均,考虑到了TFIDF权重,因此句子中更重要的词占得比重就更大。
    • 缺点:没有考虑单词的顺序
  • bag of words:词袋,这种方法对于短文本效果很差,对于长文本效果一般,通常在科研中用来做baseline
    • 缺点: 1. 没有考虑到单词的顺序;2. 忽略了单词的语义信息
  • LDA :计算出一片文档或者句子的主题分布。常常用于文本分类任务。
  • smooth inverse frequency1 简称SIF为权重,对所有词的word vector加权平均,最后从中减掉principal component,得到sentence embedding
    [1] Sanjeev Arora, et al. 2017. A Simple but Tough-to-Beat Baseline for Sentence Embeddings
  • Word Mover's Distance2简称WMD,基于词移距离度量句子之间的相似度。
    [2] Matt J. Kusner, et al. 2015. From Word Embeddings To Document Distances
  • LSI或LSA:LSI是处理相似度的,基于SVD分解,用于特征降维,LSI求解出来的相似度跟topic相关性很强,而句子结构等信息较少。顺便说下,句子中词的顺序是不会影响LSI相似度结果的。

2、有监督,需要额外标注数据

  • 分类任务,例如训练一个CNN的文本分类器,取最后一个hidden layer的输出作为sentence embedding,其实就是取分类器的前几层作为预训练的encoder
  • sentence pair的等价性/等义性判定,这种方法的好处是不仅可以得到sentence embedding,还可以直接学习到距离度量函数里的参数。

3、DSSM-LSTM

DSSM-LSTM计算任意一对短文本的语义相似性,能够捕捉上下文信息。

4、doc2vec(paragraph2vec, sentence embeddings)

一种非监督式算法,可以获得sentence/paragraphs/documents的向量表达,是word2vec的拓展。学出来的向量可以通过计算距离来找sentences/paragraphs/documents之间的相似性,可以用于文本聚类,对于有标签的数据,还可以用监督学习的方法进行文本分类,例如经典的情感分析问题。

训练过程中新增了paragraph id,即训练语料中每个句子都有一个唯一的id。paragraph id 和普通的word一样,先是映射成一个向量,即paragraph vector。paragraph vector与word vector的维数虽一样,但是来自于两个不同的向量空间。在之后的计算里,paragraph vector与word vector累加或者连接起来,作为输出层softmax的输入。在一个句子或者文档的训练过程中,paragraph id保持不变,共享同一个paragraph vector,相当于每次在预测单词的概率时,都利用了整个句子的语义。

DM(Distributed Memory,分布式内存):DM试图在给定前面部分的词和paragraph向量来预测后面单独的单词,即使文本中的语境在变化,但paragraph向量不会变换,并且能保存词序信息。

转自:
计算文本相似度方法总结(一) - nxf_rabbit75 - 博客园

参考:
如何用 word2vec 计算两个句子之间的相似度? - 知乎


  1. 1 ↩︎

  2. 2 ↩︎

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值