计算机对主观题的自动评阅准确与否,主要取决于其对文本相似度的计算是否准确。由于文本相似度计算在文档复制检查、信息检索和机器翻译等领域都有十分广泛的应用,所以,近年来有越来越多的学者致力于文本相似度算法的研究。总体来看,文本相似度的计算方法主要分为两大类:一类是基于统计学的计算方法,此种方法需要大规模的语料库,并且在计算时没有考虑文本的句子结构信息和语义信息,计算的结果有时会与人对自然语言的理解不相符合;另一类是基于语义理解的计算方法,这种方法不需要大规模的语料库,但需要依赖于具有层次结构关系的语义词典,计算结果相对准确,与人对自然语言的理解较为符合。下面介绍几种经典的文本相似度计算方法,并对他们各自的性能进行简要的分析。

1、基于向量空间模型的计算方法

向量空间模型简称 VSM,是 VectorSpace Model 的缩写,是近些年使用效果较好、且应用较为广泛的一种信息检索模型。在此模型中,文本被看作是由一系列相互独立的词语组成的,若文档 D 中包含词语 t1,t2,…,tN,则文档表示为D(t1,t2,…,tN)。由于文档中词语对文档的重要程度不同,并且词语的重要程度对文本相似度的计算有很大的影响,因而可对文档中的每个词语赋以一个权值 w,以表示该词的权重,其表示如下:D(t1,w1;t2,w2;…,tN,wN),可简记为 D(w1,w2,…,wN),此时的 wk 即为词语 tk的权重,1≤k≤N。这样,就把文本表示成了向量的形式,同时两文本的相似度问题也就可以通过两向量之间的夹角大小来计算了,夹角越大,两文本的相似度就越低。

基于向量空间模型的计算方法假设文本中的词语是相互独立的,因而可以用向量的形式来表示,这种表示方法简化了文本中词语之间的复杂关系,也使得文本的相似程度变得可以计算了。向量表示方法中词语的权值应该能够显示出该词语对整个文本的重要程度,一般用经过统计得到的词频来表示;向量的所有分量组合在一起,应该能够将此文本与其他文本区分开。

大量统计结果表明,文本中出现次数最多的词语往往是反映句子语法结构的虚词以及文本作者想要阐述某个问题时所用的核心词,如果是围绕同一核心问题的文本,其核心词汇应该是类似的,所以这两类词对文本相似度的计算都是没有用的。因此,最高频词和低频词都不适宜做文本的特征词,只有词频介于最高频和低频之间的这部分词汇才适合做特征词。

在文本中出现频率较高的词语应该具有较高的权值,因此,在计算词语对文本的权重时,应考虑词语在文本中的出现频率,记为 tf。仅考虑这一项是不够的,如果某一词语不仅在一个文本中出现,而是在文本集中的很多个文本中都有出现,例如“的”字在中文文本中的出现频率应该是相当高的,但它对于我们区分各个文本是没有帮助的,也就是说,这样的词语是不具备鉴别能力的。因而,在计算词语权重时还应考虑词语的文档频率(df),即含有该词的文档数量。由于词语的权重与文档频率成反比,又引出与文档频率成反比关系的倒置文档频率(idf),其计算公式为idf=logN/n(其中 N 为文档集中全部文档的数量,n 为包含某词语的文档数)。由此得出特征词 t 在文档 D 中的权重 weight(t,D) = tf(t,D) * idf(t)。用 tf*idf 公式计算特征项的权重,既注重了词语在文本中的重要性,又注重了词的鉴别能力。因此,有较高的 tf*idf 值的词在文档中一定是重要的, 同时它一定在其它文档中出现很少。因此我们可以通过这种方法来选择把那些词语作为文本向量的特征词。

特征词选择出来之后,就能确定文本的向量表示了,有了文本向量,我们就可以通过此向量计算文本的相似度了。相似度的计算方法很多,其中包括:

内积法(Inner Product)

余弦法(Cosine)

Dice 系数法(DiceCoefficient)

Jaccard 系数法(Jaccard Coefficient)

2、基于汉明距离的计算方法

上述方法是基于向量空间技术的,把文本表示成空间中的向量,通过计算向量之间的夹角来得出文本之间的相似程度。而基于汉明距离的文本相似度计算方法与上述方法不同,不是基于向量空间技术,而是依赖于编码理论中的汉明距离,通过计算两文本之间的汉明距离来计算两文本的相似度。此种方法的优点在于运算过程比较简便。

首先介绍一下什么是编码理论中的汉明距离。汉明距离是描述两个长度为 n 的码字之间的距离,例如计算码字 x=(x1x2…xi…xn)与 y=(y1y2…yi…yn)之间的距离,其计算公式如下:

其中运算符号⊕表示模 2 加运算,xi和 yi的取值为 0 或 1。通过此公式计算得出的数据 D(x,y)表示的是码字 x 与 y 中不同符号的数目,也就反映出了码字 x 与 y 之间的差异,D(x,y)值越大说明两个码字相似程度越低。

利用此方法计算文本之间的相似度时,首先提取出文本的一些相关信息,例如文中的关键字等,然后将其排列成字码形式,文本的信息就通过这些字码表现出来,形成文本与字码的一一对应关系。例如,文本 D 就可以表示成 D=(10100111001101011),其中的 0 和 1 表示的是其所在位置对应的文本信息在文本中的状态,如果 0 表示文本D 在其对应位置上的信息是不存在的,那么 1 就表示文本 D 在其对应位置上的信息是存在的;反过来表示也是可以的。根据上面的阐述我们就可以很容易的将文本表示成码字的形式,想要求出两个文本之间的相似度,就可以依据上面公式的计算结果得出。如果码字的长度为 n,则通过上述公式计算出的两码字之间的距离值会介于0和n之间,当计算结果为n时,说明两文本的所有信息均不相同,反之,当结果为 0时,说明两文本的所有信息都相同。这样的推算方法显然很不直观,而且如果 n 值不同,文本相似度的大小也会很难比较。所以,我们首先要确定整个文本集的码字集,然后将每个文本表示成其对应的码字,对于文本D1=(x1x2…xi…xn)和 D2=(y1y2…yi…yn),定义其相似度计算公式为:

其中,xi和 yi分别为文本 D1和 D2对应的码字中第 i 位的分量,其值 0 或 1,⊕仍然是模 2 加运算,此种运算对计算机来说,十分方便快捷。运用Sim(D1,D2)公式计算出来的文本相似度,其值介于 0 和 1 之间,当结果 0 时,说明两个文本完全不相似,当结果为 1 时,说明两个文本很相似,符合人们正常的认知规律。

基于汉明距离的文本相似度计算方法没有用到基于向量空间技术中使用的大量复杂的运算,只是用到计算机运算起来十分快捷的模 2 加等运算,因而,计算速度比较快。另外,这种方法所用的文本信息不仅仅限于关键字等互相独立的信息,提供了联合的描述文本信息的可能。但是,如何选择和排列文本信息,使其构成与文本一一对应的码字集合,是运用此方法进行文本相似度计算过程中有待于进一步研究的难点问题。

3、基于语义理解的计算方法

基于语义理解的文本相似度计算方法与基于统计学的计算方法不同,此方法不需要大规模的语料库,也不需要长时间和大量的训练,一般需要一个具有层次结构关系的语义词典,依据概念之间的上下位关系或同义关系进行计算。文本的相似性计算大多是依赖于组成此文本的词语,基于语义理解的相似度计算方法也不例外,一般都是通过计算语义结构树中两词语之间的距离来计算词语的相似度。因此,一般会用到一些具有层次结构关系的语义词典,如WordNet、HowNet、同义词词林等。基于语义词典的文本相似度计算方法很多,有的通过计算词语在 WordNet 中由上下位关系所构成的最短路径来计算词语的相似度;也有的根据两词语在词典中的公共祖先结点所具有的最大信息量来计算词语的相关度;国内也有通过知网或同义词词林来计算词语的语义相似度的方法。

下一篇笔者将为大家介绍基于词典的中文文本语义相似度计算中经常用到的一个词典——知网(HowNet)。

注:本文所用图片来源于网络

自然语言语义相似度计算方法相关推荐

  1. word2vec相似度计算_AAAI-2016 | 使用孪生递归网络的句子语义相似度计算方法

    本文<Siamese Recurrent Architectures for Learning Sentence Similarity>提出了一种使用孪生递归网络来计算句子语义相似度的方法 ...

  2. WordNet相关API介绍及语义相似度计算方法

    WordNet Introduction WordNet是由Princeton 大学的心理学家,语言学家和计算机工程师联合设计的一种基于认知语言学的英语词典.它不是光把单词以字母顺序排列,而且按照单词 ...

  3. DSSM、CNN-DSSM、LSTM-DSSM等深度学习模型在计算语义相似度上的应用+距离运算

    在NLP领域,语义相似度的计算一直是个难题:搜索场景下query和Doc的语义相似度.feeds场景下Doc和Doc的语义相似度.机器翻译场景下A句子和B句子的语义相似度等等.本文通过介绍DSSM.C ...

  4. 语义相似度的计算方法

    词语的语义相似度计算主要有两种方法 : 一类是通过语义词典,把有关词语的概念组织在一个树形的结构中来计算: 另一类主要是通过词语上下文的信息,运用统计的方法进行求解.  1. 语义相似度 Dekang ...

  5. java 文本语义相似度计算,NLP 语义相似度计算 整理总结

    更新中 更新时间: 2019-12-03 18:29:52 写在前面: 本人是喜欢这个方向的学生一枚,写文的目的意在记录自己所学,梳理自己的思路,同时share给在这个方向上一起努力的同学.写得不够专 ...

  6. 基于神经网络模型的文本语义通顺度计算研究-全文复现(还没弄完)

    该硕士学位论文分为两个部分: ①基于依存句法分析的语义通顺度计算方法 ②基于神经网络模型的语义通顺度计算方法 本篇记录摘抄了该论文的核心内容以及实验复现的详细步骤. 在N-gram模型下进行智能批改场 ...

  7. java 知网 语义 相似度,基于知网语义相似度的中文文本分类研究 论文笔记

    基于知网语义相似度的中文文本分类研究 1.传统的文本处理大部分是根据词频和逆向文档频率将文本表示成向量空间模型,实践证明这种模型确实简单高效并且得到了广泛应用,但这种模型表示缺乏对语义的理解,忽略了词 ...

  8. 自然语言处理NLP之语义相似度、语言模型、doc2vec

    自然语言处理NLP之语义相似度.语言模型.doc2vec 目录 自然语言处理NLP之语义相似度.语言模型.doc2vec 语义相似度

  9. 自然语言处理(NLP):19 金融领域NLP竞赛——文本语义相似度

    智能客服的本质,就是充分理解用户的意图,在知识体系中精准地找到与之相匹配的内容,回答用户问题或提供解决方案.问题相似度计算,是贯穿智能客服离线.在线和运营等几乎所有环节最核心的技术,广泛应用于搜索.推 ...

最新文章

  1. Hadoop-2.7.4 集群快速搭建
  2. 5.Java中的常量以及常量的分类
  3. 解决Flex/Flash跨域访问出现的安全沙箱问题
  4. fzu 1894 单调队列
  5. 企业微信_Windows版本调试
  6. Memcached 学习篇【转】
  7. vue 后台数据列表获取图片_vue使用ajax获取后台数据进行显示的示例
  8. Java工程师的进阶之路-Kafka篇(一)
  9. C++中STL-全排列
  10. maxcompute操作_MaxCompute问答整理之9月
  11. 电平转换与总线收发器详细介绍
  12. intel cpu core/“酷睿”系列发展史,供组装机的朋友们参考
  13. 解锁虚拟服务器,华为解锁码忘记了可以用云服务器
  14. 全自动与半自动手表的区别_机械表全自动好还是半自动好 有什么区别
  15. 第五章语言模型:n-gram
  16. Learning Attribute Representations with Localization for Flexible Fashion Search
  17. 沉船会有什么_神秘沉船,惊人宝藏,尘封历史,这部纪录片的结尾却让人难以置信...
  18. Cadence Allegro PCB各层含义
  19. 除了性生活就是打麻将:中国 2000 多个县城生活实录
  20. FATFS 移植和配置分析

热门文章

  1. 历史数据 - 股票工具
  2. Student学员数据库-[学生信息]、[学生成绩]表
  3. 文本编辑时切换中英文输入状态
  4. 模拟电子技术实验作业(9)
  5. 【Http协议】Http协议简介
  6. 赵小楼:《天道》《遥远的救世主》解读(31)丁元英的“天行健君子以自强不息”
  7. 远程服务器返回urlto龙,,一个简单的Get请求 老是出现【远程服务器返回异常:501】错误...
  8. matlab交叉耦合,交叉耦合矩阵综合问题
  9. J2ME结构与相关规范介绍(转)
  10. paper_longformer1