语义相似度算法简介

标签:
语义相似度算法 |
分类: 算法 |
语义相似度(semantic similarity)
、语义相关度(semantic relatedness)或语义距离(semantic
distance)如果不从概念层次上严加区分通常都是指文本或词语之间在涵义或语义内容上相像的程度。语义相似度的计算在文本挖掘、自然语言处理和生物医学等领域都有广泛的应用。本文简单介绍一下语义相似度计算的分类及典型方法。
一、
基于 拓扑相似
通常借助于构建本体或着语义信息网络等知识拓扑结构,然后通过计算拓扑结构中概念、词语的所在的边或者节点之间的关联性来确定他们的相关度。这种相似可以认为是基于知识的。最常用的知识结构(这个概念不准确)是WordNet,常见的算法有:
1.
http://s11/mw690/be8e37a8tx6CefuAoXg1a&690
其中length是至两个概念之间最短节点计数距离,D是整个结构最大深度。
2.
http://s15/mw690/be8e37a8tx6CefuBxYq7e&690
其中:LCS 是指least common subsumer。
3.
http://s9/mw690/be8e37a8tx6CefuE6Ok88&690
LCS跟上同义,IC 为information content由下面公式计算得出
http://s15/mw690/be8e37a8tx6CefuCxnE8e&690
其中P(c)是指在知识拓扑中出现概念c的实例的概率。
4.
http://s8/mw690/be8e37a8tx6CefuFzAXb7&690
基于Resnik方法。
5.
http://s15/mw690/be8e37a8tx6CefuHC1g0e&690
同样基于Resnik方法。
二、
基于 统计相似
这种相似计算需要有一个语料库,以下是几个典型算法:
1.
NGD基于Google搜索关键词返回的hits数,两个关键词在搜索结果共现的词数越多他们语义上越有可能相似。词语x和y的NGD距离由以下方式算出:
http://s8/mw690/be8e37a8tx6CefuIO4nf7&690
其中N为Google索引的页面数乘以平均每页的可搜索的条数,f(.)为搜索某一关键词返回的hits数。
2.
跟NGD类似,也与两个词语w1和w2在一个大的语料库中的共现词数。
http://s7/mw690/be8e37a8tx6CefuKfxc56&690
p(.)为出现某个词的概率。
3.
LSA算法核心为通过奇异矩阵分解(SVD)将文本分解为词汇、文档的特征矩阵,从而可以进一步应用到语义相似、搜索等方面。LSA详细介绍可以在网上搜索相关资料。
附录
[1].
[2].
[3].
[4].
[5].
[6].
[7].