3 基于本体和语料库的综合词语相似度算法
词语语义相似性度量是扩展主题图主题融合的判决依据,其计算结果的精度直接决定融合的质量,是保证全局扩展主题图一致性和质量的关键。本章首先介绍已有的词语语义相似度算法,并进行归类,分析其优缺点。然后介绍课题相关的简易语料库的构建过程并详述基于语料库的语义相似度计算算法。最后提出一种利用本体和语料库的综合词语相似度算法—HCSC算法,并进行详细论述。 3.1 词语语义相似度算法概述
自然语言的词语之间有着非常复杂的关系,在实际的应用中,有时需要把这种复杂的关系用一种简单的数量用“数量”描述好吗?还是用“数据”来度量,而语义相似度就是其中的一种。语义相似度计算在很多领域中都有广泛的应用,例如信息检索、信息抽取、文本分类、词义排歧、基于实例的机器翻译等等。
3.1.1 词语语义相似度概念
词语语义相似度是语义相似度中的一个关键部分,词语与词语之间的关系是非常复杂的,很难使用一个统一的概念标准来度量。由于人们的认知、语言的使用场景不同,词语间的关系表现也不同。因此词语相似度是一个主观性很强的概念,在一个语境里,两个词汇非常相似,但在另一个语境,两者可能差异很大。例如“病毒”在生物领域就表示一种单细胞生命体,而在计算机领域则代表存在威胁的程序代码。所以,我们谈论的词语语义相似度一般是应用到特定领域,这样词语相似度的含义就比较明确。例如,在自动回答系统中,相似度的计算主要体现在计算用户问句和预定义的领域文本content的相同程度上;在基于实例的机器翻译中,词汇相似度主要用于衡量文本中词汇的可相互替换操作的程度;在文本检测领域,词汇相似度是度量文本相似的基础,表示文本间词汇的语义相关等等。
词语相关性[8]是度量两个词语关系的另一个重要指标,词语的相关性和相似性是一对紧密联系的概念。词语的相关性是对两个词语共现频率的定性描述,在主观上指人们对词语之间联系的紧密程度的感受。词语的相关性一般使用统计大规模文本库中词语的共现频率的方法来得到。如果两个词语与其他词语的相关程度很大,那么这两个词语所代表的概念也会比较接近,其相似度也会比较高—即二者成正比例关系。
Dekang Lin[26]定义任何两个事物的相似度取决于它们的共性(Commonality)和个性(Differentces),然后从信息论的角度给出任何两个事物相似度的通用公式(3-1):
Sim(A,B)?logp(common(A,B)) (3-1)
logp(description(A,B)) 其中分子式描述A、B共性所需要的信息量的大小;分母是完整的描述出A、B所需要的信息量大小。
刘群这有上标吗定义两个词语的相似度是它们在不同的上下文中可以相互替换且不改变文本的句法语义结构的可能性大小[8]。这种描述是Dekang Lin定义的具体化,是基于实例的机器翻译的研究背景。
在本文中,我们用一个浮点数来表示两个词语语义相似度的大小。假设有两个词汇W1和
W2,其语义相似度用Sim(W1,W2)来表示,取值范围为[0,1]。一个词汇与它本身的语义关
系单一,其相似度值是1。如果两个词语是一对反义词,即二者存在着对义、反义的语义关系,相似度值我们定义为0。两个词汇的语义关系和它们的词汇相似度存在着紧密的联系,从数学角度看,是一个反比关系。语义关系数值越大,其相似度数值越小;反之,语义关系数值越小,其相似度数值越大。
3.1.2 词语语义相似度方法分类
现有的词语语义相似度计算方法一般可分为两类:
一类是基于某种世界知识(如语义词典、本体等)的计算方法,该方法利用世界知识中概念之间的上下位、同义和反义等关系,计算两个概念的语义距离从而得到概念间的语义相似度,接着用概念间的相似度来衡量两个词语间的语义相似度。基于世界知识的方法前提是两个词语并非相互独立而是具有一定的语义相关性,并且两个词语在语义词典的结构层次网络图中存在一条通路将二者联系到一起。如存在通路则可以计算二者的相似度值,如不存在则认为二者相似度为0。
另一类是根据大规模语料库统计的方法,该方法基于文本中可以观察的语言事实—语境,假设一个理论基础“两个词语在语义上相似当且仅当两个词语处于相似的上下文使用环境”,基于大规模语料库用词语的上下文信息来度量语义相似度。方法的本质是用词语的上下文信息的概率分布来度量词语间的语义相似度—信息墒(信息统计)的方法。
3.1.3 词语语义相似度算法研究现状分析
1)基于世界知识的词汇相似度计算算法
基于语义词典的词语相似度计算方法建立在大规模语义词典的基础之上,在汉语语义词典方面,具有代表性的有《知网》(HowNet)、《同义词词林》等;英文方面的语义词典有WordNet,FrameNet,MindNet等。
世界知识不是在线的词汇数据库,而是一个由词汇组成的语义网(如图3-1同义词词林语义分类树),组织方法是:将所有的词组织在一棵或几棵树状的层次结构网络中,层次结构网络图中任意两个词语之间存在且只存在一条路径。那么就可以用路径的长度来度量两个
概念间的相似度,从而得到词语的相似度。
OAa01010102...0102...01......01b01a...01...01...01...01...01B??????LI01......02...??
图 3-1 《同义词词林》语义分类树形图
在国内,王斌有上标吗采用节点间路径长度来衡量其语义距离的方法,利用《同义词词林》来计算汉语词语之间的相似度[27]。刘群[8]等人提出一种基于《知网》的词汇语义相似度计算方法。该方法使用“整体的相似度等于部分相似度加权平均”的度量技术,计算两个概念的语义表达式之间的相似度,对于两个义原的相似度,使用根据上下位关系得到语义距离进行转换。北京信息科技大学的江敏[28]等提出了一种改进的基于《知网》的词语语义相似度计算算法,在原算法基础上进一步考虑义原的深度信息,并充分发掘使用《知网》义原间的反义、对义关系等关系来计算词语的相似度,得出词语相似度和它们所在层次总和成正比关系,和它们的层次差成反比关系。该算法在计算对义,反义关系的词对时,效果较为理想。在国外美国的蒙大拿州立大学的Shen Wan 和Rafal A.Angryk[9]提出了基于WordNet(词网)的上下文向量的语义相似度计算算法,该算法将一个概念的认知感觉定义为直接语义关联与与其相关的间接语义关联的综合体,通过计算两个概念对应上下文的空间向量的余弦值得到相似度的值。美国卡耐基梅隆大学的Satanjeev Banerjee[10]等提出了扩展注释重叠语义相似度计算算法,该算法利用了概念间的多种关联关系,属性间的联系进行多次字符串间的匹配,在进行加权整合计算相似度值。
基于语义词典的词语相似度计算方法直观、简单有效且易于理解,但是语义词典的完备与否对其影响较大,受未登录词问题的影响,而且受人的主观影响也比较大,有时不能反映客观事实。
2)基于大规模语料库统计的词汇相似度计算算法
语料库是基于大规模语料库统计的词汇相似度计算方法的基础,在国内很多研究机构建立了一些汉语语料库,如北京大学计算语言学研究所,中国科学院软件研究所,中国科学院自动化所和《人民日报》光盘数据库等等。但这些语料库语料规模小,不能涵盖特定领域的语料资源,缺少专业领域的语料。在国外,具有代表性的有:1960年初,由London大学R.Quirk建成的LLC语料库;1970年初,英国Lancaster大学,挪威Oslo大学和Bergen大学共同建立了当代英国英语的LOB语料库;20世纪80年代,由英国Birmingham大学与collins出版社共同合作,建立了规模达2000万词次的COBUILD语料库。这些语料库语料资源较为丰富,且涵盖面很广,但其针对的是非中文语言,对中文词语的相似度计算理论意义胜过实际使用。 基于大规模语料库统计的词语相似度计算采用上下文语境的统计描述方法,该方法建立在
“词语的上下文可以为词语定义提供足够信息”的论断基础之上。在国外如Dagan[29]使用了复杂的概率模型来计算词语的相似度,Brown[30]的基于平均互信息的方法等等,这些方法建立在两个词汇具有某种程度的语义相似当且仅当它们出现在相同的上下文中这一假设的基础上。也就是说凡是语义相近的词,它们的上下文也应该相似。国内,鲁松[31]利用词语的相关性来计算词语相似度,关毅[32]等提出基于统计的汉语词汇间语义相似度计算,上海交通大学的章志凌[33]等基于Corpus(语义关联库)的词义相似度计算方法充分利用词语空间和关系空间,从而结构化存储了词语和其上下文之间的统计信息。
基于大规模语料库的词语相似度计算算法充分利用了词语在语境中的相互作用的关联关系,能够通过上下文信息得到比较精确的词语语义相似度。但该方法对训练所用的语料库依赖性较大,计算方法比较复杂并且计算量很大—时间复杂度较高,而且易受到数据稀疏和数据噪声的干扰。
3.2 基于语料库的语义相似度计算算法
语料库简单可以理解为语言材料的仓库,本质是指在随机采样的基础上收集的有代表性的真实语言材料的集合,是语言运用的样本。现代的语料库是指存放在计算机里的原始语料文本或经过加工后带有语言学信息标注的语料文本。
语料库具备以下三个基本特征:1)语料库中存放的是在语言的实际使用中真实出现过的语言材料;2)语料库是以电子计算机为载体承载语言知识的基础资源;3)真实语料需要经过加工(分析和处理),才能成为有用的资源。
3.2.1 语料库的抽取、去噪、生成
1)建立特定领域的简易语料库
国内的语料库建立起步较晚,但通过国内学者的不断努力汉语语料库得到了不断发展和完善,语料库成为了研究中文信息处理的基本语言资源。目前的中文语料库还处在实验探索阶段,公开的语料库仅涵盖生活、法律领域,没有计算机领域的语料库。为了课题的需要,运算计算机领域的词汇语义相似度,故建立了一个简易的计算机领域语料库。 本文建立计算机领域简易语料库的流程如图3-2所示: (1) 短语集; (2) 基百科; (3) (4)
取谷歌搜索content的前100页的语料(snippets)片段,并取出其搜索结果Hits,对抽取的去除噪音数据,存档保存形成计算机学科特定的简易专用语料库。 将待计算的词语或短语,转化为标准的URL,通过HTTP协议访问谷歌和维从课题的标注库中取出标注的计算机领域几个学科的概念(术语),形成词语、
取维基百科对该词语或短语的解释片段(fragments);
词语集标注数据库GoogleSnippetsFragments去噪纯化计算机Corpus库短语集Wikipediaba
图 3-2 简易语料库生成流程图
2)语料纯化和中文分词
直接从网络上搜索的语料资源存在着很多的噪音数据,本文采用最大正向匹配和最大逆向匹配结合的分词方法来纯化数据。分词词典采用《知网》,同时引入自定义词集,从而保证待测试基准词不会被切分,例如“计算机网络”不会被分割为“计算机”和“网络”。在分词词典质量较高时,分词的准确率可以满足要求。这种分词方法的过程如下:
(1):预处理:在分词前先要对字符串进行预处理,将其中的数字和英文单词分开,只对中文词串进行切词;
(2):最大正向匹配法(MM):假设MaxLen为分词词典(知网与自定义词集的综合体)中最长的词条的汉字个数,MM法是从目标串STR最左侧选取MaxLen个字符的子串s1。将s1与词典中的词条进行匹配。若匹配成功,则得到一个切分词,然后从STR的MaxLen+1处再选取长为MaxLen的子串进行比较。若不成功,则选取长度为MaxLen-1的子串与词典进行匹配,直至选取的长度为1,此时直接算匹配成功;
(3):最大逆向匹配法(RMM):RMM法与MM法原理相同,只是方向不同。每次从目标串右侧依次选取子串与词典词条进行匹配;
(4):如果MM和RMM切分得到的词块个数相同则用RMM的切分结果,否则使用词块数少的切分结果。
RMM切分的结果较少出现歧义,如对于切分目标“化妆和服装”,MM的切分结果是“化妆\\ 和服 \\装”,RMM的切分结果是“化妆 \\和 \\服装”。因此将MM和RMM结合起来提高精度。
3.2.2 网络搜索双检验模型与基于语料库的语义相似度度量
搜索引擎虽然能提供实时的语料资源,但对每一个网页进行content分析是不现实的工作。因此语料库的生成过程选取了搜索结果页面的前100个snippets(content片段),如输入“路由器”,返回的snippets包括如下所示的一个语料片段(snippet)(图3-3):