词语相似度算法研究综述
2015-09-08李慧
李慧
[摘要]词语相似度计算方法在信息检索、词义消歧、机器翻译等自然语言处理领域有着广泛的应用。现有的词语相似度算法主要分为基于统计和基于语义资源两类方法,前者是从大规模的语料中统计与词语共现的上下文信息以计算其相似度,而后者利用人工构建的语义词典或语义网络计算相似度。本文比较分析了两类词语相似度算法,重点介绍了基于Web语料库和基于雏基百科的算法,并总结了各自的特点和不足之处。最后提出,在信息技术的影响下,基于维基百科和基于混合技术的词语相似度算法以及关联数据驱动的相似性计算具有潜在的发展趋势。
[关键词]词语相似度;语义资源;语料库;维基百科;WordNet
[中图分类号]TP18
[文献标识码]A
[文章编号]1008-0821(2015)04-0172-06
词语之间的语义相似性研究是自然语言处理以及人工智能领域的基础性研究,如搜索、聚类以及歧义消除等,需要依赖于包含现实世界概念与关系的范围广泛的知识组织体系。自然语言的词语之间有着非常复杂的关系,如上下位关系、同义关系、反义关系等。词语相似度是对词语间复杂关系的数量化,是词语间语义相似紧密程度的一种定量度量。目前,词语相似度的研究可以分为两类,一类是基于语料库的算法,通过统计大规模语料库,根据词语间信息量或者词语共现频率来计算词语相似度。利用统计技术计算词语间语义相似度是一种无监督的机器学习方法。第二类是基于语义资源的算法,也可被称为基于本体的词语相似度算法,主要根据手工建立的语义网络,通过计算词语间距离得到词语相似度。另外,还有一类基于混合技术的词语相似度算法,通过将基于统计和基于语义的词语相似度算法集合起来,发挥各自算法的优势来计算词语相似度。
1 基于统计的词语相似度算法
这种方法是利用词语之间的相关性来计算词语相似度,假设语义相似的词语之间具有相同的上下文信息,根据上下文信息的概率分布作为相似度计算的依据。根据所用语料库的类型,可将其分为基于传统大规模语料库的方法和基于Web语料库的方法。
1.1基于传统大规模语料库的词语相似度算法
语料库是人们针对某一特定领域收集和整理的大量文档的集合,在利用大规模语料库进行词语相似度计算的研究中,很多学者应用了传统的互信息方法。L.Lillian利用相关熵,P.Brown等通过计算平均互信息来计算词语相似度。Dagan等使用了更为复杂的概率模型来计算词语的距离。Salton等提出词包法,通过构建词语语境向量,计算向量夹角余弦值来计算词语相似度。Deerwester等在词包方法的基础上提出潜在语义分析法(LSA),通过构建词汇——文档矩阵来解决数据稀疏的问题。赵军等在其提出的算法中,对关联频率分布规范化,通过计算词的属性向量间的距离来计算词语相似度。章志凌等基于统计的方法提出了基于词汇空间和关系空间的Corpus库,该库使用词语空间和关系空间结构化地存储了词语和其上下文之间的统计信息,为词语相似度的计算提供数据支持。
基于传统语料库的方法严重依赖于训练所用的语料库,语料库是提前准备好的,这种方法不能避免词汇不断更新,也无法计算未登录词相似度的问题,无法消除数据噪音的问题。另外,基于统计的算法没有考虑词汇的语义背景信息,这也大大降低了结果的准确度。
1.2基于Web语料库的词语相似度算法
随着互联网技术的飞速发展,Web语料库的出现为语料库的建设和研究提供了新的思路和方法。Web语料库以网络文本为基础,网络检索软件为技术手段,其词汇共现特征可被直接用来词语相似度的计算。商业搜索引擎提供了Web语料库的访问途径,能够方便快速地获取词语在Web数据库中单独出现、共同出现以及所处语境等信息,从而进行词语相似度的计算。目前,基于Web语料库,利用搜索引擎进行词语相似度计算的研究中,具有代表性的算法有PMI-IR、LC-IR以及Web-PMI算法。
P.Turney提出了PMI-IR(Pointwise Mutual Information using Information Retrieval)算法,通过搜索引擎获取数据,利用点互信息(PMI)以及搜索引擎检索返回的页面数作为词语相似度计算的指标。D.Higgins提出的LC-IR(Local Context-Information Retrieval)算法与PMI-IR算法相似,也采用Alta Vista搜索引擎,依赖于词语共现的频率统计信息。但是,LC-IR采用了不同的相似度度量标准,使用了词语被发现彼此相邻的频率,而不是词语在彼此10个字窗口内被发现的频率。该方法在一定程度上减少了PMI-IR算法存在的偶然共现词语对计算结果的干扰。在PMI-IR算法的基础上,D.Bollegala等提出了Web-PMI算法,通过搜索引擎返回的页面数来定义两个不同的词语P、Q以及P和Q的相似度,同时,还提出了一个使用从文本片段中自动提取的语法模式来计算词语相似度的新方法。再利用支持向量机将这些不同的相似度的值进行集成。实验数据表明该方法远远优于之前研究中基于Web语义相似性的计算方法。
此外,Rudi L.C.等利用信息论、压缩原理、柯尔莫哥洛夫复杂性、语义学等知识,把Internet作为一个大型的语料库,以Google搜索返回的结果数做为计算的数据依据,提出了一种语义相关性计算方法,设NGD(Normalized Google Distance,介于0与1之间)表示标准谷歌距离,用以衡量语义相关性的大小,f(x)和f(y)分别表示包含概念x和y的网页数,N表示Google引用的互联网上网页总数,那么概念x和y间的语义相关性计算公式可以表示称:
2 基于语义资源的词语相似度算法
词语所处的语境在一定程度上反映词语语义,但基于语料库的方法对训练所用语料库有很强的依赖性,而且计算量大,计算方法复杂,同时存在着数据稀疏的问题。如果采用人工标注的语义词典计算词语相似度,能够较好地减少数据稀疏和数据噪音对计算结果产生的影响。语义词典规范地描述了词语之间的上下位关系、同义关系、反义关系等,是词语相似度计算的重要依据。随着互联网技术的发展,维基百科作为一个公开的数据库,蕴含丰富的语义知识,数据范围广,更新速度快,也同样具有良好的结构化信息,目前已有许多学者选取维基百科作为数据资源进行词语相似度的相关研究。endprint
2.1基于传统语义词典的算法
2.1.1基于WordNet的算法
WordNet是一个包含了语义信息的英语词典,是一个在线的词汇参照系统。R.Rada等利用WordNet,提出了一种基于距离的语义相关度计算方法,其基本思想是通过两个词语在本体树状分类体系或者语义词典中的最短路径长度来计算它们之间的相关度,二者距离越小,那么它们的相关度越大,反之,距离越大,其相关度越小。Richardson又在此基础上,加入权重值,对最短路径法提出了改进。考虑词语在WordNet中的层次信息和边所表征的关联度,将表示该词语涉及的边的进行加权求和,这样得到的词语语义相关度的结果也将更准确。
Hirst等从一个新的角度来阐述基于距离的计算方法,如果两个词语相关,那么它们之间存在一条较短路径,并且遍历过程不需要或者很好改变路径,并提出独立的计算公式来证明结果确实具有一定的优化。Jiang等在使用共享父节点和被比较词语包含的信息的同时,直接通过语义距离计算词语的相关度,充分结合了距离和信息内容,较之以往的方法,它的效果更好。Philip Resnik提出了一种基于节点共享信息内容概念的语义相似性度量方法,在解决句法和语义模糊的问题上充分利用了分类相似,针对人类相似性基准集的判断实验表明,该方法的性能优于传统的边缘统计方法。Agirre等提出了一种针对词汇歧义的解决方法,该方法依赖于WordNet中名词分类的使用,同时定义了概念密度公式。该自动计算的方法不需要手工编码的词汇条目,手工标注的文字,也不需要任何一种培训过程。吴思颖等利用中文WordNet,在其同义词集的上下位关系图中,引入了距离、密度、深度3个因素来估计同义词集之间的相似度。Sussna在考察WordNet词义网密度、节点深度、链接类型等因素后,提出了一种基于词义网边的词语之间的相似度量方法。除WordNet外,其他应用较为广泛的语义词典还包括MindNet和FrameNet等,但应用思想都是一样的。
2.1.2基于知网(HowNet)、《同义词词林》的算法
近年来,随着“知网”等本体知识模型的出现和不断完善,针对汉语词语相似度方面的研究又开始盛行起来。该技术的基本假设是,在本体中距离越近的义原或词汇,它们的相似度越大。国内学者一般是借助于知网或者《同义词词林》来进行研究。
刘群等提出一种基于知网的词汇语义相似度计算方法。该方法在计算两个概念的语义表达式之间的相似度时,采用了“整体的相似度等于部分相似度加权平均”的做法。对于两个义原的相似度,采用根据上下位关系得到语义距离并进行转换的方法。夏天提出了一种基于知网、面向语义的相似度计算方法,并通过概念切分解决了知网中未登录词的语义相似度计算的难题。王斌采用树形图中节点之间路径的方法,利用《同义词词林》来计算汉语词语之间的相似度。《同义词词林》将所有的词组织在一棵或几棵树状的层次结构中,在一棵树形图中,任何两个节点之间有且只有一条路径,在计算词语相似度时,通过计算这条路径的长度来计算概念语义距离,进而作为词语相似度的一种度量。吕立辉等利用《同义词词林》,综合考虑词语在词典中的密度信息和路径信息,并模拟计算函数来计算相似度。李素建等人提出了一种综合利用了知网和《同义词词林》来计算汉语词语语义相似度的方法。许云提出了一种利用知网来计算语义相关度的方法。知网中描述语义的基本单位是义原,所以该算法通过计算义原相关度和义原关联度来计算词语的语义相关度。
2.2基于维基百科的算法
维基百科是一种基于Web2.0技术的合作型知识库。维基百科可以被看作含有语义词典功能的大型语料库,其独特的信息组织方式,使它成为了科研中重要的语义数据资源。维基百科作为词语相似度计算的资源基础,比搜索引擎的知识结构更合理,比WordNet覆盖范围更广泛。
自然语言语义相关度的计算需要访问大量特定领域或者常识性的世界知识。Strube等最早利用维基百科计算词语相似度,通过实验在不同的基准数据集上比较了基于维基百科的算法与基于WordNet的算法,利用WikiRelate!算法可以比较不同词性的词语之间的语义相似度,同时发现当应用于最大可用数据集时,维基百科优于WordNet。随后,Gabrilovich等提出了基于维基百科文章内容的显性语义分析法(ESA)。ESA是一种基于来自维基百科高维空间文本概念的新的方法,使用机器学习技术将文本的含义表达为基于维基百科概念的加权向量。由于自然概念的使用,ESA模型更容易被用户理解。基于维基百科的词语相似度算法取得了领域内最精确的结果,得到了广泛应用,许多学者也在已有算法基础上进行了改进。Milne提出了利用维基百科文档内链接信息计算词语相关度的方法WLVM(Wikipedia Link Vector Model),这种方法与ESA和WikiRelate!方法相似,不同的是,该方法只利用了链接结构和文章标题等信息来计算相关度,而没有利用维基百科中所有的文本内容,虽然计算方法变得更加简单,但其准确性远远落后于ESA方法。Yeh等为了解决资源整合问题,通过运用基于维基百科图形的个性化的PageRank来计算词语相似度。该研究评估了图形建立,包括链路选择策略的方法,以及用于表示图形节点分布的输入文本的两种方法。Radinsky等认为通过研究随着词语时间推移的使用模式也可以获取大量的相关信息,进而提出了一种新的语义关联模型,即时空语义分析(TSA)。ESA方法将词语语义表示为概念向量,而在TSA方法中,每个概念被表示为文档语料库中的时间序列。这是第一次将时间信息引入到语义关联模型的研究中。实验表明,TSA比ESA方法取得了更好的效果。盛志超等通过研究发现,WikiRelate!算法仅依靠类别信息作为背景知识,而ESA算法虽然在精度上有了较大提高,但其并没有充分利用类别信息以及内链接信息,于是提出了基于维基百科页面网的词语相似度算法,结合了页面的内容信息、网络信息以及类别信息,提高了计算结果的准确率。endprint
2.3基于百度百科的算法
百度百科是一个基于Web2.0技术的中文百科全书,现已成为互联网上规模最大、使用最广泛的开放式中文电子百科全书,也成为由互联网用户以自由贡献、共同协作的方式构建大规模知识资源的典范。作为语料库,百度百科包含了数百万的文档资源,质量上和数量上都有着其它语料库无法比拟的优势。
詹志建等提出了一种新的基于百度百科的词语相似度量方法,通过分析百度百科词条信息,从表征词条的解释内容方面综合分析词条相似度,并定义了词条间的相似度计算公式,通过计算部分之间的相似度得到整体的相似度。作者具体讨论应用这种算法在百科名片、词条正文、开放分类和相关词条部分的相似度计算,对其再加权就得到整体的相似度结果。与传统的基于语义词典和大规模语料库的方法不同,这种方法通过计算表征百科词条各个部分内容的相似度加权得到词条的相似度,实验结果也表明,与已有的相似度计算方法对比,提出的算法更加有效合理。
3 基于混合技术的词语相似度算法
综上可见,基于统计的方法比较客观,但依赖于训练所用的语料库,受数据稀疏和数据噪声的干扰较大。基于语义资源的方法简单有效,但得到的结果受研究者的主观意识影响较大。若将基于统计和基于语义资源的方法结合起来,发挥两种算法各自的优势进行词汇间的语义相似度计算,有可能弥补各自算法的不足,达到更符合人们客观需要的计算结果。
Li等探讨了基于多个信息源的词语相似度计算方法,其中包括语义词典的结构化语义信息以及语料库中的信息内容,将词语在层次树中最短路径和密度等信息进行非线性结合来计算词语相似度,实验证明该方法优于传统的相似度度量方法。魏(韦华)等从基于信息量的方法、基于距离的方法和混合方法3个角度分类总结了基于本体的术语间语义相似度的计算方法。在此基础上,提出了基于有向无环图和内在信息量的混合方法。该方法避免了分析语料库的问题,具有比较高的准确度。郭丽等综合应用了传统基于知网和基于互信息的方法,从语义和统计相融合的角度提出了词语相似度的算法,结果表明本算法可以得到更符合人们预期的结果。蔡东风等人结合知网提出了一种基于语境的词语相似度算法,通过构造隶属函数计算词语上下文信息的模糊重要度,有效地解决数据噪声问题。
通过分析前人研究成果发现,将基于统计和基于语义资源的方法结合起来,能够在一定程度上弥补两种算法的不足,得到与客观实际符合程度更大的词语相似度。但是这两类方法也包含很多不同的方法,具体的融合技术还有待深入研究,这也可以成为词语相似度研究的一个分支。
4 分析与结论
基于上述研究综述,表1从类别、数据来源、主要优缺点等角度对词语相似度的算法进行了分析总结,并介绍了各个类别中的代表算法及其研究者。得到以下两点结论:
4.1基于维基百科的词语相似度算法具有潜在的发展趋势
与传统的语义词典相比,维基百科具有知识覆盖范围广,结构化程度高等优点,同时其语义资源还可以及时更新,提高相似度计算的准确率。研究表明,在大数据集上,基于维基百科的算法远好于WordNet的算法。目前基于维基百科的算法利用了维基百科分类图、文档图以及内链接等信息,未来的研究可以进一步探索对维基百科中其他语义知识的运用。另外,由于分类图在结构上与语义词典比较相似,而且其记录的语义关系比较精确,可以将基于传统语义词典的方法应用到维基百科的分类图资源上来因此,基于维基百科分类图的相似度算法值得进一步的探索和研究。
4.2基于混合技术的词语相似度算法存在很大的发展空间
在词语相似度算法中,由于基于统计的方法依赖于所用语料库,计算量大,计算方法复杂,同时存在着数据稀疏和数据噪音的问题;而基于语义资源的方法受所用语义词典的限制,无法反应客观实际情况。目前相关研究表明,基于混合技术的算法,利用本体知识弥补基于统计算法中的数据稀疏和数据噪音问题,可以取得比较客观和精确的计算结果。将语料库以及语义词典合理融合作为背景信息,可以综合考虑词汇之间的多种语义关系,使各种语义信息进行优势互补,从而提高词语相似度计算结果的精确度。然而,语料库以及语义词典毕竟是两类结构组织不同的数据资源,基于统计和基于语义的算法的原理也存在着根本性的不同,因此,在不同方法的融合技术上还有待进一步研究和实践。
4.3信息技术影响下的算法将为词语相似度研究提供新的思路
随着信息技术的发展和研究的不断深入,词语相似度的计算精确度逐步提高。从前面关于基于Web语料库以及基于维基百科的词语相似度算法介绍即可看出这种趋势。基于Web语料库的算法利用了搜索引擎技术,把利用词语共现信息计算相似度的方法应用在广泛丰富的Web文本资源中;而基于维基百科的算法把维基百科看作具有语义词典功能的大型语料库,利用其独特的信息组织方式来计算词语相似度,目前有学者在维基百科和其他语义资源融合算法方面的研究中也取得了不错的成果,这些方法将为词语相似度的计算提供新的观点和平台。
4.4语义网技术的最新发展为词汇相似度的计算开辟了新的途径
随着语义网技术的不断深化,Tim Berners-Lee于2006年提出关联数据(Linked Data)的概念,它是一种适用于语义网(Semantic Web)的数据存在形式。关联开放数据(Linking Open Data)运动启动后,LOD集中数据量不断扩大,这些数据集应用在包括信息检索、推荐系统等多个领域中,而将LOD数据集应用在相似性计算必然是未来的发展方向之一。目前在利用WordNet进行相似性计算中,WordNet由于自身的限制,容纳的词汇量具有一定的限度,在这种情况下,可以利用关联数据来实现对WordNet的补充,因此在映射本体时,可以增加概念匹配度,增强词汇相似度计算的准确性。
(本文责任编辑:孙国雷)endprint