几种相似度计算方法作对比

来源:互联网


句子相似度的计算在自然语言处理具有很重要的地位,如基于实例的机器翻译(Example Based Ma-chine Translation,EBMT)、自动问答技术、句子模糊匹配等.通过对术语之间的语义相似度计算,能够为术语语义识别[1]、术语聚类[2]、文本聚类[3]、本体自动匹配[4]等多项任务的开展提供重要支持。在已有的术语相似度计算方法中,基于搜索引擎的术语相似度算法以其计算简便、计算性能较高、不受特定领域语料库规模和质量制约等优点而越来越受到重视[1]

相似度计算方法总述:

1 《向量空间模型信息检索技术讨论》

相似度S(Similarity):指两个文档内容相关程度的大小,当文档以向量来表示时,可以使用向量文档向量间的距离来衡量,一般使用内积或夹角0的余弦来计算,两者夹角越小说明似度越高。由于查询也可以在同一空间里表示为一个查询向量(见图1),可以通过相似度计算公式计算出每个档向量与查询向量的相似度,排序这个结果后与设立的阈值进行比较。如果大于阈值则页面与查询相关,保留该页面查询结果;如果小于则不相关,过滤此页。这样就可以控制查询结果的数量,加快查询速度。

2 《相似度计算方法综述》

相似度计算用于衡量对象之间的相似程度,在数据挖掘、自然语言处理中是一个基础性计算。其中的关键技术主要是两个部分,对象的特征表示,特征集合之间的相似关系。在信息检索、网页判重、推荐系统等,都涉及到对象之间或者对象和对象集合的相似性的计算。而针对不同的应用场景,受限于数据规模、时空开销等的限制,相似度计算方法的选择又会有所区别和不同。下面章节会针对不同特点的应用,进行一些常用的相似度计算方法进行介绍。

内积表示法:

1 《基于语义理解的文本相似度算法

在中文信息处理中,文本相似度的计算广泛应用于信息检索、机器翻译、自动问答系统、文本挖掘等领域,是一个非常基础而关键的问题,长期以来一直是人们研究的热点和难点。计算机对于中文的处理相对于对于西文的处理存在更大的难度,集中体现在对文本分词的处理上。分词是中文文本相似度计算的基础和前提,采用高效的分词算法能够极大地提高文本相似度计算结果的准确性。本文在对常用的中文分词算法分析比较的基础上,提出了一种改进的正向最大匹配切分(MM)算法及歧义消除策略,对分词词典的建立方式、分词步骤及歧义字段的处理提出了新的改进方法,提高了分词的完整性和准确性。随后分析比较了现有的文本相似度计算方法,利用基于向量空间模型的TF-IDF方法结合前面提出的分词算法,给出了中文文本分词及相似度计算的计算机系统实现过程,并以科技文本为例进行了测试,对所用方法进行了验证。这一课题的研究及其成果对于中文信息处理中的多种领域尤其是科技类文本相似度的计算比较,都将具有一定的参考价值和良好的应用前景。

随机内积空间

(s,盘)为数域K上的以概率空间(口,a)为基的随机内积空间(Randominnerproductspace,简RI空间),若s是数域K上的线性空间且映射盘:×_+L(口,)满足Vpg∈,VK

(RIP1):∈L()(()0as{P0(中零元)

(RIP2)M(m)一”(m)as其中x¨表x的共轭随机变量。

(RIP3)xo¨()aX()as

(RIP4)X+。,,()X,。,()+Xf,,()as

若还存在零测集Ⅳ,使得对所有E口\Ⅳ上述公理成立,则称0,。劈)为一致随机内积空间。在RIP空间中称xp9的随机内积。

余弦响亮度量方法:

基于云计算的余弦向量度量法文本检索模型

目前信息检索技术在国内外已经取得了很大的究成果,为用户信息检索提供了很大的便利,具体体现在不同的检索模型的应用,比如布尔模型、扩布尔模型、向量空间模型、概率模型、潜在语义模、统计语言模型等等,在文本信息检索中向量空间型中的余弦向量度量法是应用相对广泛而且效率。

经典的余弦向量度量法文本检索模型(theclassiccosinevectormeasuringmethodtextretrievalmodel)中查询和文本均被看成是由索引项构成的向量,比如对于有n个索引项的文本检索,可以由这n个索引项构成的空间向量来表示查询q和文本dj。则查询q可以表示为:q=(t1q,t2q,,tnq),文本dj可以表示为:dj=(s1j,s2j,,snj)。其中tkqskj(1kn)分别表示查询q和文本dj的第k个索引项。在具体应用中通常用索引项在查询q和文本dj的权值来表示其在查询和文本中的重要程度,则查询q和文本dj可以用索引项权值构成的空间向量来表示,设q=(w1q,w2q,,wnq)wkq(1kn)表示索引项tkq(1kn)在查询q中的权值,文本dj=(v1j,v2j,,vnj)vkj(1kn)表示索引项skj(1kn)在文本dj中的权值。

基于项目评分预测的协同过滤推荐算法

度量用户间相似性的方法有多种,主要包括如3种方法【:余弦相似性相关相似性及修正的余弦相似性·余弦相似性(cosine):用户评分被看做是n维项目空间上的向量,如果用户对项目没有进行评分,则将用户对该项目的评分设为0,用户间的相似性通过向量间的余弦夹角度量。设用户i和用户-,在n维项目空间上的评分分别表示为向量,歹,则用户i和用户之间的相似性sim(id) 分子为两个用户评分向量的内积,分母为两个用户向量模的乘积。相关相似性(correlation):设经用户i和用户共同评分的项目集合用表示,则用i和用户,之间的相似性sim(id)通过Pearson相关系数度量:Rf。表示用户i对项目C的评分,RR,分别表示用户i和用户-,对项目的平均评分。修正的余弦相似性(adjustedcosine):在余弦相似性度量方法中没有考虑不同用户的评分尺度问题,修正的余弦相似性度量方法通过减去用户对项目的平均评分来改善上述缺陷,设经用户i和用户共同评分的项目集合用表示和分别表示经用户i和用户J评分的项目集合,则用户i和用户之间的相似性sim(ij)

Rf。表示用户i对项目c的评分,RR,分别表示用户i和用户J对项目的平均评分。

JaccardCoefficient

信息检索-向量空间模型

此方法看上去很好理解,就是用query和文档共同出现的词的个数,除以一共的词数。当然也有很多问题

1没有考虑文档中词出现的次数(没有考虑tf因素)

2没有考虑文档的频率(没考虑idf因素)

3没有考虑文档的长度,长文档和短文档计算相似度的差别会很大

系数主要用于计算符号度量或布尔值度量的个体间的相似度,因为个体的特征属性都是由符号度量或者布尔值标识,因此无法衡量差异具体值的大小,只能获得“是否相同”这个结果,所以Jaccard系数只关心个体间共同具有的特征是否一致这个问题。如果比较XYJaccard相似系数,只比较xnyn中相同的个数。

 


发表评论