融合HowNet和词林信息含量的词语相似度计算

2022-05-27 01:06:50陈靖元卢记仓
小型微型计算机系统 2022年6期
关键词:知网体系结构词语

陈靖元,周 刚,卢记仓

1(郑州大学 中原网络安全研究院,郑州 450000)

2(数学工程与先进计算国家重点实验室,郑州 450000)

1 引 言

词语相似度计算是自然语言研究中的基础任务,该任务的研究直接关系知识获取[1]、词义消歧[2]、信息检索[3]、机器翻译[4]、文本分类[5]等自然语言处理领域中的上层工作[6].

目前学术界常见的词语相似度计算方法可以为两类[7]:一类是利用大规模语料来进行统计分析,这种做法的假设是,凡是语义相近的词语,它们的上下文也应该相似[8];另一种根据某种世界知识或分类体系来计算,通常是基于某个由专家构建的完备知识库中的信息来进行词语相似度计算.表1中将两类计算策略进行简单对比.

表1 两类词语相似度计算方法比较

在英文词语相似度研究体系中,基于知识库WordNet[9]的相似度计算已日臻完善,基于信息含量(information content,IC)的计算是主流的方法[10],而在基于信息含量的中文词语相似度研究体系中,效果比较好词语相似度计算方法却并不常见.

针对于目前中文词语相似度计算体系中基于信息含量的算法研究不足的问题,本文将综合考虑HowNet信息含量和同义词词林[11]信息含量,并使用一种动态融合策略计算出最终的词语相似度.

2 研究背景

2.1 《HowNet》介绍

《HowNet》(中文名称《知网》,以下简称知网)是董振东父子毕30年之功建立的一个以概念为描述对象的中英文语言常识知识库.其中包含了由22976条中英文词条,35202个概念和定义概念所使用的2196个义原(1)http://www.keenage.com.在知网中,义原即最基本、不宜再分割的最小语义单位.

知网中的表现形式由记录组成,每一条记录为一个概念,主要包括词语词形、词语例子,词语情感,词语词性和概念定义几部分.每一个词可以表达为一个或多个概念.表2给出知网中“打”的第8个概念的例子.

表2 知网中“打”的第8个概念样例

概念定义是由语义表达式来进行描述的,按照刘群等人[12]的划分方法,语义表达式包含“第一义原描述”,“其他义原描述”,“关系义原描述”和“关系符号描述”4种表达式.语义表达式中的基本单位为义原,义原通过符号连接在一起形成表达式.可见,义原是知网体系结构中的最小意义单位,这与我们日常表达时使用的最小意义单位的细粒度有所不同.

有学者将义原分为“基本义原”,“语法义原”和“关系义原”3大类,将连接义原用的符号分为“逻辑符号”,“关系符号”和“特殊符号”.根据义原的上下位关系,可以将其组成一个树状的层次体系结构,如图1所示.这个体系结构是学者们进行相似度计算和改进的基础.

图1 知网义原层次体系结构

2.2 《同义词词林》介绍

《同义词词林》最初是由梅家驹等[11]于1983年构建,现代学者常用的版本为《哈工大信息检索研究室同义词词林扩展版》(2)http://ir.hit.edu.cn/demo/ltp/Sharing_Plan.htm(以下简称词林),其中包括了77343 条词语和90114条概念.词林以图2中的树状结构将所有词语编织在一起,这些词语被分为大类、中类和小类这3种形式中,小类之下又可以细分为词群和原子词群.其中词群是将小类中的词语根据词语之间的词义相关性和词义相似性进行划分,而原子词群又在词群的基础上进行划分,每个原子词群中的词语相关性很大且词语语义也基本相同.

图2 词林概念层次体系结构

在使用时,词林以文件的形式存储在本地,文件中的每一行代表一个原子词群,包含一个或多个概念,表3展示该文件的部分样例.

表3 词林文本存储样例

其中每行的前8位表示每个原子词群的编码,编码的意义见表4.编码位是按照从左到右的顺序排列.第8位的标记有3种,分别是“=”、“#”和“@”.其中“=”代表“相等”、“同义”;“#”代表“不等”、“同类”,属于相关词语;“@”代表“自我封闭”、“独立”,表示该词语在词典中既没有同义词,也没有相关词.

表4 词林中词语编码表

3 相关工作

最早的基于信息含量的词语相似度算法提出于1995年,Resnik[13]在研究中提到两个词语的相似度取决于他们的共享信息有多少.在一个具有良好分类层次结构的知识库中,两个概念(每个词可能被表达为多个概念,不同的概念存在于层级结构的不同节点上)的共享信息可以通过它们的最近公共父节点所蕴含的信息含量来度量.基于这种考虑,词语相似度计算可以分为主要的两部分:信息含量的计算和基于信息含量的词语相似度计算.

3.1 信息含量的计算

Resnik[13]将一个概念的信息含量定义见式(1):

ICResnik(C)=-logP(C)

(1)

公式(1)中P(C)为某个概念在给定总体中的出现概率,这个方法可以保证在树状结构中随着节点的深度增加,某个概念出现的可能性就越低,同时概念所蕴含的信息量就越高,这符合了信息论中的思想.在实际应用中,Seco等[14]在公式(1)的基础上提出基于WordNet信息含量的计算见公式(2):

(2)

sumnodes表示层次体系结构中的节点总数,hypo(C)表示概念C在层次结构中所有下位节点的总数量.公式(2)表明层次越高的概念节点所蕴含的信息含量越少,但是没有对于不同深度的节点具有相同数量的下位节点的情况的进行区分.针对此误差,Zhou等[15]在公式(2)中融入了概念节点的深度因素,如公式(3)所示:

(3)

deep(C)为概念C在层次结构中的深度,deepmax为层次结构的最大深度.在基于知网信息含量的词语相似度计算中,由于计算时所用层次结构不同,张波等[16]将式(3)中的深度因素部分修改为线性计算,同时测得当k=0.8时效果最佳,如公式(4)所示:

(4)

3.2 基于信息含量的词语相似度计算

Resnik[13]提出的基于信息含量的词语相似度计算公式见式(5):

SimResnik(C1,C2)=IC(LCA(C1,C2))

(5)

LCA(C1,C2)表示概念C1和C2的最近公共父节点,IC(C)表示概念C的信息含量.沿着信息论的脉络,Jiang和Conrath[17]结合式(5)提出了一种通过概念间的语义距离来衡量相似度的方法,该方法可表述为式(6):

DisJ&C(C1,C2)=IC(C1)+IC(C2)-2IC(LCA(C1,C2))

(6)

该方法主要关注的是两个概念之间的差异性.彭琪等[18]在此基础上,根据词林拓扑结构的特性提出的相似度计算公式如式(7)所示:

(7)

公式(7)中MaxDIFF为词林中任意两节点的最大差异,值为2,MinDIFF为任意两节点的最小差异,值为0.与式(7)不同的是,Lin[19]认为应当兼顾概念之间的共性和差异性来计算概念的相似度,计算公式见式(8):

(8)

公式(8)的分子部分代表概念C1和C2的共性,分母部分通过计算两概念的信息含量之和来代表概念之间的差异性.

4 融合知网和词林的词语相似度计算

知识库通常是由专家构建的完备体系结构,在构建过程中不可避免地会受专家的主观影响.本文改进朱新华等[20]研究中提到的一种动态加权策略综合考虑两种算法来得到词语的相似度,这种融合策略本质上可以达到风险平摊的效果.同时,作为语义知识词典,知网和词林自身也存在一些完备性问题,即它不可能收录现实世界中的所有词汇,所以必然会有一部分词语在知网或词林中不存在,从而导致相似度无法进行计算,而融合两个词典可以扩充知识的完备性.在基于知网计算相似度时,本文采用知网义项网[16]作为计算概念信息含量的层次体系结构,由于义项网中每个概念的上位节点数量随着深度的增加而呈指数级增加,下位节点数量随着深度的增加而呈指数级减少,所以以公式(4)计算知网中每个概念的信息含量,并通过Lin提出的公式(8)来计算两个概念之间相似度.

在基于词林计算相似度时,本文使用改进的同义词词林[18]作为计算概念所用的层次体系机构,将可以指代某一事物的概念从原子词群中抽取出来,并参考WordNet中的层次体系结构,并将该概念放置在更高的分类节点中,使得层次结构中所有的节点都拥有具体的概念,如表5所示.使用公式(3)计算词林每个概念的信息含量,经MC30数据集测试,k在0.85-0.95之间时计算结果与人工判定值之间的皮尔森相关系数最高,本文设定k=0.9.而在衡量概念相似度时,由于词林的体系结构更能反映词语之间的差异性,本文使用式(7)来计算两概念之间的相似度.

表5 改进后的词林文本存储样例

融合算法的总体思想为:对于任意两个词语W1和W2,若词语在知识库中存在不止一个概念时,计算出两个词语所具有的所有概念之间的相似度的最大值,如公式(9)所示:

(9)

其中:C1i,i=1,2,3,…,n为词语W1中的所有概念,C2j,j=1,2,3,…,m为词语W2中的所有概念.将基于知网信息含量计算出的相似度记为sim1,基于词林信息含量计算出的相似度记sim2,然后按照式(10)进行加权融合得出最后的词语相似度.

SIM=λswin1+(1-λ)sim2

(10)

其中sim1,sim2和λ的值根据如下的动态策略进行计算:

如图3所示,记仅被知网收录的词语集为A,记仅被词林收录的词语集为B,同时被收录的词语集记为C.

图3 词语在知网和词林中的分布图

1)当W1∈C,W2∈C时,sim1和sim2分别为两词语基于知网信息含量和词林信息含量计算出的相似度值.经测试,λ=0.4时性能最佳(下文若未经强调,默认λ=0.4).

2)当W1∈A,W2∈A时,令λ=1,即SIM=sim1.同理当W1∈B,W2∈B时,SIM=λsim2.

3)当W1∈A,W2∈B时,在词林中查找W2的同义词集,并将同义词集中的词语依次与W1进行基于知网的相似度计算,取其中的最大值作为两个词语的相似度,记作sim1;在知网中查找与W1最相似度的前n个词语(本文中n取10),依次与W2进行基于词林的相似度计算,取其中的最大值作为两个词语的相似度,记作sim2.

4)当W1∈A,W2∈C时,首先对W1和W2进行基于知网的相似度计算,结果记作sim1;在知网中查找与W1最相似度的前n个词语,依次与W1进行基于词林的相似度计算,取其中的最大值作为两个词语的相似度,记作sim2.此时需将参数λ调整为0.6.

5)当W1∈B,W2∈C时,首先对W1和W2进行基于词林的相似度计算,结果记作sim2;然后在词林中查找W1的同义词集,并将同义词集中的词语依次与W2进行基于知网的相似度计算,取其中的最大值作为sim1.

对于未登录词,本文方法暂不给予考虑.

5 实验与分析

5.1 对比实验

MC30数据集[21]为Miller和Charles在1991年发布的30对词语,并取38个专家评价的平均值作为人工判定标准,词对间的相似度值在0~1之间,是目前学术界使用最广泛的词语相似度测试数据集.皮尔森相关系数用来评估两个随机变量之间的相关程度,取值范围在-1~1之间,值越大表示两个变量越相关,反之越不相关.本文采用MC30数据集作为实验评测数据,将本文方法所计算出的词语相似度值,分别和Seco,Zhou,Resnik,Lin,刘群,张波等人的方法进行对比,对比结果见表6.同时列出了这几种方法与人工判定值之间的皮尔森相关系数,见表7.为解释本文方法所出现的误差原因,表8列出了本文方法与人工判定值之间的绝对值误差.

表6 MC30数据集相似度计算对比

表7 不同算法与人工判定值之间的皮尔森相关系数

表8 本文方法实验结果与MC30人工判定值的绝对值误差

5.2 结果分析

通过上述实验与结果对比,可以得出以下结论:

1)对比表6和表7,可以得出本文采用的基于知网和词林信息含量的词语相似度计算结果与人工判定值之间的皮尔森相关系数达到最高,这证明本文使用的方法较为符合人类的主观判断,可以达到实用水平.

2)对比表8,本文方法与人工判定值误差较大的几个词对依次为“食物-水果”,“兄弟-和尚”,“魔术师-巫师”,“海岸-海滨”,“庇护所-精神病院”等.这主要是由于这些词对即使是真正的专家们来判断,也很难对它们的相似度值作出统一的判断.所以我们应当允许计算结果与判定值之间存在一定误差.另外应当注意的是,MC30数据集是由外国学者选取的单词,后经翻译选取最相近的中文词而来,这不可避免地会造成一些认知上的误差.

3)在词语相似度计算的所有对比实验中,两种融合知网和词林的计算方法总体而言皆可以达到令人满意的效果.若我们把所有的人类知识库作为理想中的数据,这种融合多词典的策略本质上是一种随机抽样实验,实验结果证明可以达到减小误差的效果.

6 结束语

本文充分利用了词语在不同的体系结构中所包含的信息含量,得到了一种融合知网和词林的词语相似度计算方法.该方法的实验结果与MC30人工判定值高度相似,说明了本文的方法在实用中可以基本符合人类的主观判断.在实验中我们也发现了一些词对与人工判定值之间差异较大,这种情况主要是由于这些词对本身就容易令人有不同的主观意见,另外在词对的翻译过程中也可能造成误差.融合多知识库的算法本质上是一种随机抽样算法,可以达到风险平摊的效果,本文初做尝试,未来将尝试融合中文概念辞书(CDD)[22],现代汉语语义词典[23]等知识库,这样得到的词语相似度应该能够具有更可靠的结果.

猜你喜欢
知网体系结构词语
著作权使用声明
纯碱工业(2023年6期)2023-04-21 16:18:44
容易混淆的词语
找词语
基于知网的翻译研究方向毕业论文写作
现代交际(2017年13期)2017-07-18 09:53:01
近三年维吾尔语言研究情况综述
词语欣赏
基于粒计算的武器装备体系结构超网络模型
作战体系结构稳定性突变分析
HowNet在自然语言处理领域的研究现状与分析
科技视界(2016年5期)2016-02-22 11:41:39
基于DODAF的装备体系结构设计