词语的语义相似度计算主要有两种方法 :
一类是通过语义词典,把有关词语的概念组织在一个树形的结构中来计算;
另一类主要是通过词语上下文的信息,运用统计的方法进行求解。 
1. 语义相似度
Dekang Lin认为任何两个词语的相似度取决于它们的共性(Commonality)和个性(Differences),然后从信息论的角度给出了定义公式:

其中,分子表示描述A,B共性所需要的信息量;分母表示完整地描述A,B所需要的信息量。

其中,Sl,S2表示两个义原,S表示离它们最近的共同祖先,p(s)是该结点的子结点个数(包括自己)与树中的所有结点个数的比值。
刘群、李素建以基于实例的机器翻译为背景,认为语义相似度就是两个词语在不同的上下文中可以互相替换使用而不改变文本的句法语义结构的程度。两个词语,如果在不同的上下文中可以互相替换且不改变文本的句法语义结构的可能性越大,二者的相似度就越高,否则相似度就越低。
对于两个词语W1,W2,如果记其相似度为Sim(W1,W2) ,其词语距离为Dis(W1,W2),根据刘群、李素建的公式:
其中a是一个可调节的参数。n的含义是:当相似度为0.5时的词语距离值。
词语距离和词语相似度是一对词语的相同关系特征的不同表现形式,如果两个概念之间的语义距离越近,就认为它们越相似,因此二者之问可以给出一个简单对应关系:

其中,Dis(Wl,W2)为树中W1,W2所代表的结点在树中的距离,k为比例系数。
一般地说,相似度一般被定义为一个0到1之间的实数。特别地,当两个词语完全一样时,它们的相似度为1;当两个词语是完全不同的概念时,它们的相似度接近于0

2. 语义相似度的计算方法
词语距离有两类常见的计算方法,一种是根据某种世界知识(Ontology)或分类体系(Taxonomy)来计算,一种利用大规模的语料库进行统计。
2.1 根据分类体系计算词语语义距离的方法
该方法又称基于树的语义相似度研究方法,基于树的语义相似度计算的算法大体上分为两种:一是基于距离的语义相似性测度;二是基于信息内容的语义相似性测度。一般是利用一部语义词典(如Wordnet,Hownet),语义词典都是将所有的词组织在一棵或几棵树状的层次结构中。在一棵树状图中,任何两个结点之间有且只有一条路径。于是,这条路径的长度就可以作为这两个词语概念间语义距离的一种度量;而且随着概念所处结点越深,其所包含的语义信息越丰富,越能准确地决定概念的性质,它们对语义相似度起着决定作用。
2.1.1 基于树状层次计算语义相似度的基本思想





例如,在图1(取自Wordnet本体中的一小部分)中,boy和girl之间的最短路径是boy—male—person—female—girl,最小路径长度为4。而teacher和boy之间的最小路径长度为6。因此,girl比teacher在语义上更接近于boy。该测度算法在基于Wordnet的语义网中获得了较好的计算结果。
2.1.2 基于《知网Hownet》的语义相似度计算
由于《知网Hownet》中词语不是组织在一个树状的层次体系中,而是一种网状结构;同时借助义原和符号对概念进行描述。对于两个汉语词语Wl和W2,如果W1有个n义项(概念):Sll,S12,…,S1n,W2有个m义项(概念):S21,S22,…,S2m,刘群、李素建认为W1和W2的相似度是各个概念的相似度之最大值,也就是说:

为了更加精确地计算出词语的语义相似度,在《知网》中对一个实词的描述可以表示为一个特征结构,该特征结构含有以下四个特征:
*第一基本义原描述:其值为一个基本义原,将两个概念的这一部分的相似度记为Siml(Sl,S2);
*其它基本义原描述:对应于语义表达式中除第一基本义原描述式以外的所有基本义原描述式,其值为一个基本义原的集合,将两个概念的这一部分的相似度记为Sim2(S1,S2);
*关系义原描述:对应于语义表达式中所有的关系义原描述式,其值是一个特征结构,对于该特征结构的每一个特征,其属性是一个关系义原,其值是一个基本义原,或一个具体词。将两个概念的这一部分的相似度记为Sim3(S1,S2);
*关系符号描述:对应于语义表达式中所有的关系符号描述式,其值也是一个特征结构,对于该特征结构的每一个特征,其属性是一个关系义原,其值是一个集合,该集合的元素是一个基本义原,或一个具体词。将两个概念的这一部分的相似度记为Sim4(S1,S2)。

通过以上分析,可知在实际的《知网》结构中,由于各个义原所处的层次不一样,因而它们对词语相似度的影响程度也不一样,也就是说部分相似性在整体相似性中所占的权重是不一样的,权重(百分比)用β表示,于是,在知网中,概念的整体相似度可以记为:
其中,β(1≤i≤4)是可调节的参数,且有:β1+β2+β3+β4=1,β1≥β2≥P3≥β4。后者反映了Siml(Sl,S2)到Sim4(Sl,S2)对于总体相似度所起到的作用依次递减。由于第一独立义原描述式反映了一个概念最主要的特征,所以应该将其权值定义得比较大,一般应在0.5以上。在以上计算中,最后求加权平均时,各部分取相等的权值。这样,就把两个词语之间的相似度问题归结到了两个概念之间的相似度问题。
2.2 利用大规模的语料库进行统计
基于语料库的词语相似度研究大都采用了上下文语境的统计描述方法,即认同这样一个论断:词语的上下文可以为词语定义提供足够信息。词语向量空间模型是目前基于统计的词语相似度计算策略使用比较广泛的一种,算法复杂度也能够实现的模型。该模型事先选择一组特征词,然后计算这一组特征词与每一个词的相关性(一般用这组词在实际的大规模语料中以该词在上下文中出现的频率来度量),于是对于每一个词都可以得到一个相关性的特征词向量,然后利用这些向量之间的相似度作为这两个词的相似度。

由计算机自然语言处理专家RudiL.Cilibrasi和Paul M.B.Vitanyi[2007.12]提出的语义相似度计算方法,该方法理论基础涉及信息论、压缩原理、柯尔莫哥洛夫复杂性、语义WEB、语义学等,基本思想是把Intemet作为一个大型的语料库,以Google(对其它的搜索引擎如百度同样适用)作为搜索引擎,搜索返回的结果数作为计算的数值依据,其计算公式如下:

其中,NGD(Normalized Google Distance,介于0与1之间)表示标准谷歌距离(以此衡量语义相似性大小),f(x),f(y)分别表示含概念x,y的网页数,f(x,y)表示同时含有概念的网页数,N表示Google引用的互联网上的网页总数。
可以以一次实验来说明,假设用Google搜索词语'horse'返回46700000(记为f(x))条结果,搜索词语'rider'返回结果数为12200ooo(记为f(y)),搜索同时含'horse,rider'的网页数是2630ooo(记为f(x,y)),Google共引用的网页数是N=8058044651,代入上述公式求得:
NGD(horse,rider)≈0.443

3. 两类主要语义相似度计算方法的比较

转载地址

语义相似度的计算方法相关推荐

  1. 自然语言语义相似度计算方法

    计算机对主观题的自动评阅准确与否,主要取决于其对文本相似度的计算是否准确.由于文本相似度计算在文档复制检查.信息检索和机器翻译等领域都有十分广泛的应用,所以,近年来有越来越多的学者致力于文本相似度算法 ...

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

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

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

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

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

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

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

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

  6. python 语义similarity_GitHub - samelltiger/word_similarity: 基于《知网》的语义相似度计算 python2.7 API...

    基于<知网>的语义相似度计算 python2.7 API 本项目使用python语言实现根据义原树来计算词语之间的语义相似度,并提供对应的 API. 词语距离有两类常见的计算方法,一种是根 ...

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

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

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

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

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

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

最新文章

  1. bcftools安装
  2. 【洛谷 P3975】 [TJOI2015]弦论(后缀自动机)
  3. C#中结构数据类型的使用
  4. html手机pc不同页面,PC端和手机端如何同时生成静态页
  5. 博士申请 | ​英属哥伦比亚大学李霄霄助理教授招收全奖博士生、硕士生
  6. js事件冒泡与捕捉解析
  7. android Animator详解
  8. Linux下arp用法
  9. QT 字符串的使用技巧总结
  10. Linux重定向的理解
  11. LeetCode 2109. 向字符串添加空格
  12. java 杭州专卖店_杭州JAVA哪家有名气
  13. 自动挂机区块AI机器人源码开源支持二次开发
  14. 图嵌入表示TADW:当DeepWalk加上外部文本信息
  15. 《Ray Tracing in One Weekend》——Chapter 10: Positionable camera
  16. C 杂谈之 Apache的模块开发 (一)
  17. 【文献阅读笔记】(2):使用IMPUTES2和minimac软件完成群体特异性的基因型填充(Imputation)
  18. 如何在SqlServer中获取前端连接的IP地址,计算机名等信息
  19. 声鉴卡HTML5网页源码
  20. IntelliJ IDEA优化内存配置提高启动和运行速度

热门文章

  1. matlab模糊系统设计 pdf,基于MATLAB的模糊控制系统设计.pdf
  2. 【锁机制】MySQL锁机制
  3. redis requires ruby version 2.2.2的解决方案
  4. 气压传感器c语言程序,气压芯片参数——以气压传感器芯片DSH553为例
  5. 韦伯望远镜拍摄图片震撼来袭!!
  6. 解决Onenote不能同步
  7. 那些 996 公司的员工怎么样了?
  8. MFC系列 - 第一个MFC入门程序
  9. ios swiftui_ios swiftui中的本地化
  10. 丢失LDF文件怎么办?