基于语义树的中文词语相似度计算与分析

2010-06-05 06:31:56尹存燕陈家骏
中文信息学报 2010年6期
关键词:句法语义词语

张 亮,尹存燕,陈家骏

(1. 南京大学 计算机软件新技术国家重点实验室,江苏 南京 210093;

2. 江苏警官学院 公安科技系,江苏 南京 210000)

1 引言

词是研究语句的基本语义单元和句法单位,词之间的相似度与相关度的分析是研究词语相互关系的核心内容之一,在信息检索、信息抽取、词义排歧、机器翻译、句法分析等处理中有很重要的作用。

常见的词语相似度计算方法主要有两类[1], 一种是根据世界知识(Ontology) 或分类体系(Taxonomy)计算,一种是利用大规模语料库进行统计。

根据世界知识计算词语语义距离的方法,一般是利用一部同义词词典(Thesaurus)。一般同义词词典都是将所有的词组织在一棵或几棵树状的层次结构中,一棵树形图中,任何两个节点之间有且只有一条路径[2]。于是,这条路径的长度就可以作为这两个概念的语义距离的一种度量。刘群等人利用《知网》计算语义相似度,但无法计算不同词性之间的相似度;李素建综合了《知网》和同义词词林计算语义相似度,但由于《知网》与同义词词林是完全不同的组织方式, 所以计算结果不太理想。

统计方法则是在大规模语料中统计分析每个词的特征词向量, 然后利用这些向量之间的相似度(用向量的夹角余弦计算) 作为这两个词的相似度。这种做法的假设是,凡是语义相近的词,他们的上下文也应该相似。李涓子利用这种思想来实现语义的自动排歧[3];鲁松研究了如何利用词语的相关性来计算词语的相似度[4]。Dagan使用了更为复杂的概率模型来计算词语的距离[5]。

这两种方法各有特点:基于世界知识的方法简单有效,也比较直观、易于理解,与人的学习理解方式类似,但这种方法需要有较完备的知识库的支撑,另外,这种方法比较准确地反映了词语之间语义方面的相似性和差异,而对于词语之间的句法和语用特点考虑得比较少。基于语料库的方法比较客观,综合反映了词语在句法、语义、语用等方面的相似性和差异。但是,这种方法比较依赖于训练所用的语料库,计算量大,计算方法复杂,另外,受数据稀疏和数据噪声的干扰较大,有时会出现明显的错误。

本文基于新版《知网》进行词语相似度计算,从功用角度(如句法分析)将词语相似度细化为语义特征相似度和句法特征相似度,改进了传统的基于《知网》的相似度计算方法,通过构建多维语义树,将词相似分析转化为树的相似分析,设计了一个新的词语相似度计算模型。

2 语义资源平台《知网》

《知网》(HowNet)[6]是目前国内外汉语自然语言处理中使用较为广泛的语义资源平台,是一个以汉语和英语的词语所代表的概念为描述对象,以揭示概念与概念之间以及概念所具有的属性之间的关系为基本内容的常识知识库。这里的概念简而言之是一词多义中的一个“义”,是计算语义的依据。《知网》定义了一套释义元语言,即义原(Sememe)对概念进行刻画和描述,义原本身是不易再分割的意义最小单位,具有唯一性和确定性。由义原构筑起来的《知网》概念层次体系(Taxonomy)是一棵概念分类树,如图1所示,将所有的概念从top-down的视角划分为事件Event、实体Entity、属性Attribute、属性值Attribute Value、次要特征Secondary Feature等几个特征类别。《知网》着力描述了概念之间和概念属性之间的各种关系,主要包括上下位关系、同义关系、反义关系、对义关系、属性—宿主关系、部件—整体关系、材料—成品关系、事件—角色关系[7]。与一般作为语言处理资源的词典相比, 《知网》具有的特点见图1。

图1 HowNet的概念层次结构

(1) 释义元语言——义原的定义和使用,使得概念描述具有较好的概括性和确定性;

(2) 设计并使用了一种知识词典的描述语言(KDML)规范概念的描述格式,保证了知识词典的形式化, 提高了概念的可计算性。

(3) 概念定义时纵向归类与横向关联相结合,描述结构清晰,便于计算机处理。

3 词语相似度讨论

Dekang Lin认为任何两个事物的相似度取决于它们的共性(Commonality)和个性(Differentces)[8],他从信息理论的角度给出任意两个事物相似度的通用公式:

(1)

其中分子是描述A、B共性所需要的信息量的大小,分母是完整的描述出A、B所需要的信息量大小。

1) Dekang Lin的这一理论是目前绝大多数中文词语语义相似度计算模型的基本思想,尽管刘群等提出两个词语的相似度是它们在不同的上下文中可以互相替换且不改变文本的句法语义结构的可能性大小,但在其计算模型中并没有突出可替换性这一特征。词语相似度主要从语义分析的角度出发,通过比较词的义项,计算共同部分的大小,比较抽象的讨论和计算两个词之间的语义距离,这虽然可以为信息检索、机器翻译等其他自然语言处理提供一定的帮助,但是功用性不是很强,语义距离与可替换性有时并不一致,如Similarity(盗墓人,盗墓)> Similarity(盗墓人,小偷),Similarity(雨伞,打伞)>Similarity(雨伞,雨衣),即前者的语义相似度大于后者的语义相似度,但是它们的可替换性正好相反。

2) 我们认为词语相似度是一个比较粗泛的概念,根据应用需求,起码应该可以细化为语义特征相似度和句法特征相似度。词语的语义特征相似度,也就是在同一个语境中,两个词相互替换,而不改变整个语境的语义;句法特征相似度,也就是两个词互换,而不改变原有的句法结构或依存关系,这对基于语料库的句法结构排歧有很好的帮助作用,如图2所示,词w4被某个与其相似度较高的词wi替代,无论是句法树还是依存关系,都没有变化。语义特征相似度高则句法特征相似度高,反之不一定。如“他认为这是一个好主意。”其中的“好”,被“馊”替换,语义相反,但是句法关系不变,因此在基于语料的句法分析中,这类语义相反,但句法结构一样的语料,同样具有很好的参考价值。

图2 图中的词W4被Wi替换后,句法和依存关系不变

4 基于《知网》的词语相似度分析

从相关文献看,目前基于《知网》的语言分析与处理绝大多数还是以旧版本(《知网》2000)作为平台,其实新版(《知网》2007)的概念描述架构已经有了质的不同,概念的定义由主类义原及其特性描述组成:1)主类义原相当于旧版中的第一义原,是所定义概念的最基本的意义; 2)特性描述利用动态角色和特征标注复杂概念,内容上体现概念之间的关联,形式上可以为嵌套结构。整个概念的定义可以转化为一棵语义树,如图3所示。

图3 HowNet中概念的描述框架

如前所述,在《知网》中,词是用概念来描述的,一个词可以表达为几个概念,而概念则用义原来描述。假设词W1有n个概念C11,C12, …,C1 n,词W2有m个概念C21,C22, …,C2m,则本文中词语W1和W2的相似度是其所有概念之间相似度绝对值的最大值,如公式(2)所示,其符号取该对概念相似度的符号。

(2)

根据《知网》的概念定义,两个概念之间的相似度计算可以从以下几个方面进行。

4.1 两个概念的主类义原相似度计算

主类义原确定了概念的最基本的意义,实际上是给概念尽可能细地分类,主类义原相似度计算核心是如何计算两个义原的语义距离。义原相似度的计算一般依据义原的层次体系(上下位关系) 来计算,这种基于树状层次结构计算语义相似度的研究已经十分成熟。Eneko Agirre[9]、Dekang Lin、刘群等都提出了自己的公式,BUDAN-ITSKY对基于WordNet的几种计算方法进行了比较[10]。他们的方法可以分为两大类:一种是基于两个节点之间的路径长度,一种是基于两个节点所含的共有信息大小。

a. 基于节点间的路径长度(其中α是一个可调节的参数。α的含义是:当相似度为0.5时的词语距离值):

(3)

吴健、李峰[11-13]等认为在路径距离相同的情况, 层次越深的节点具有越高的相似度,在公式(3)的基础上,加入了义原节点层次深度的影响。

b. 基于两个节点所含的共有信息大小(Sp表示离它们最近的共同祖先,P(S)是该节点的子节点个数与树中的所有节点个数的比) :

(4)

我们认为,义原相似度应当同时反映出两个义原在树中的距离和两个义原公共信息的大小,同时由于Taxonomy中的义原树具有语义分类内涵以及节点上下位关系,处于下位的节点与上位节点同类,并且是在上位节点的语义基础上,加入更多的语义成分。义原树具有如下性质:

性质1:约定节点树中节点S所承载的语义信息由语义特征集合Semantic(S)表示。 对于树中的任意两个节点S1和S2,若S1≠S2,则Semantic(S1)≠Semantic(S2);

性质2:若存在节点S1和S2,且S1是S2的上位节点,则Semantic(S1)是Semantic(S2)的真子集,即Semantic(S1)⊂Semantic(S2);

性质3:若存在节点S1和S2,S1≠S2,S1和S2具有共同的祖先S3,则Semantic(S3)= Semantic(S1)∩Semantic(S2);Semantic(S′) = Semantic(S1)-Semantic(S2),S′为一个虚拟的节点,Semantic(S′) ⊆Semantic(S1) 且Semantic(S′)∩Semantic(S2)=∅。

根据以上性质的描述可知,与节点承载的语义信息量与其到根节点的距离正相关,节点语义信息的重要程度与其到根节点的距离负相关,也就是说,离根节点越近,对语义区分的贡献值越大,这对两个词语的可相互替换程度有重要的影响。

公式(5)是我们的义原相似度计算公式,其中,其中α是一个可调节的参数,取值越大则层次的区分越小,m、h、n分别为节点1、节点2和节点1与节点2的最近的共同祖先的层次数。

(5)

4.2 两个概念的语义树相似度计算

新版《知网》中概念的描述是一棵以主类义原为根的语义树,树中每一个节点都是一个义原,除根节点外,每个节点与其父节点之间的关系用一个动态角色和特征加以标识。两个概念的相似度,是指概念类型相似程度以及概念中相同的特性描述的广度与深度。这样两个概念描述的相似度计算就转化为对应的两个语义树的最大匹配。

如图4所示,词语“儿科医生”与“患儿”的概念描述中,主类义原都是“人”,虚线部分勾勒出两棵语义树中最大相似部分。

图4 词语“儿科医生”与“患儿”的概念语义树对照图(虚线勾勒出最大相似部分)

计算两棵语义树的最大相似度算法:

1) 将两个概念描述分别转换为两棵Tree1,Tree2(根节点为主类义原,除根节点外,其他节点除包含本身的义原外,还有与父节点的关系值,即动态角色和特征);

2) 广度优先遍历Tree1,将遍历节点存入队列Queue中;

3) 如果Queue≠∅,取出Queue中第一个元素,赋值给变量Tree1_x;否则转7);

4) 广度优先遍历Tree2,若存在某节点与Tree1_x相等,则将其赋值给Tree2_y,并转5);若遍历完毕,则转3);

5) 分别在Tree1和Tree2中,检查是否存在Tree1_x的子节点与Tree2_y的子节点相等,并且对应的动态角色和特征相等,若存在分别将其存入队列Queue1和Queue2,转6);若不存在,则转4);

6) 如果Queue1=∅,则转4);否则取出Queue1中第一个元素,赋值给变量Tree1_x;取出Queue2中第一个元素,赋值给变量Tree2_y,转5);

7) 结束处理。

注:结束处理是将匹配中记录下来的相似块按大小和先后顺序进行比较,大者优先,若大小一样,则排在前面的优先;广度优先遍历,可以保证如果存在同样的相似块,则层次高的排在前面。

4.3 两个概念的主类义原框架相似度计算

如前所述,主类义原是对一个概念的根本属性的规定,是概念的第一义原,在形式上表现为紧邻标识符“DEF”后面的义原。所谓义原框架是对在义原树上的义原的本质属性的描述,是在语义分类的基础上,对义原本身语义的更细致的刻划。如“人”作为entity分类树上的一个义原节点,其义原框架为:DEF={AnimalHuman|动物:HostOf={Ability|能力}{Name|姓名}{Wisdom|智慧},{speak|说:agent={~}},{think|思考:agent={~}}}。两个概念的主类义原框架相似度计算是在提取两个概念的主类义原的基础上,做义原框架的相似度计算,是对4.1节中主类义原相似度计算的补充,其计算方法与概念语义树相似度计算一致。

4.4 两个概念反义和对义关系的计算

从语义树角度看,反义义原节点之间(或对义义原节点之间)的绝对距离不大,甚至很小,它们之间语义距离大,是描述对象属性或动态特征的语义极性的表现,如“喜欢”与“厌恶”、“抽象”与“具体”等,它们在义原树上的垂直关系如下所示:

喜欢:事件 → 静态 → 状态 → 精神状态 → 态度 → 好态 → 喜欢

厌恶:事件 → 静态 → 状态 → 精神状态 → 态度 → 坏态 → 厌恶

抽象:属性值 → 特性值 → 内容值 → 抽象性值 → 抽象

具体:属性值 → 特性值 → 内容值 → 抽象性值 → 具体

由于对象属性或动态特征的语义极性存在,依据《知网》的概念描述体系结构,我们给出本文中概念的相似度的定义。

定义1:概念C1、C2的相似度Similarity(C1,C2)是在《知网》概念描述框架的基础上,根据C1、C2的概念类别、语义特性描述和主类义原框架等几个方面的相似程度,并考虑C1、C2的语义极性,而计算出的一个综合值。Similarity(C1,C2)∈[-1,+1],Similarity(C1,C2)反映C1、C2的语义特征相似度,Similarity(C1,C2)的绝对值反映C1、C2的句法特征相似度。

如果概念C1、C2是反义或对义关系,则Similarity(C1,C2)=-1;

如果概念C1、C2的上位义原是反义或对义关系,则Similarity(C1,C2)=-1;

如果概念C1、C2中存在反义或对义关系,则Similarity(C1,C2)为负值。

根据《知网》反义词表和对义词表进行反义和对义的计算。

4.5 词语相似度的综合计算

我们在4.1~4.2节的基础上,下面给出基于《知网》的词语相似度的完整计算公式。

(6)

其中,C1、C2是进行相似度计算的两个概念,θ是决定Similarity(C1,C2)符号的系数,如果C1、C2概念特性描述中含有反义或对义关系,则θ=-1,否则θ=+1;Sim1(C1,C2)是C1,C2的主类义原相似度计算,Sim2(C1,C2)是C1,C2的语义树相似度计算,Sim3(C1,C2)是C1,C2的主类义原框架相似度计算β1、β2、β3分别是对应计算的权重,β1+β2+β3=1,β3≤β1≤β2。γ为惩罚因子,如果C1,C2的特性描述中存在某个共同的Event,并同时存在依附于该Event的不同的动态角色与特征关系,则γ=0.5,否则γ=1。如在词语“儿科医生”与“患儿”的概念语义树对照图中,“儿科医生”与“患儿”具有相同的主类义原“人”,在特性描述中都有“医治”这个Event,但在“儿科医生”中,主类义原“人”是Event“医治”的agent;在“患儿”中,主类义原“人”是Event“医治”的patient,即他们的动态角色不同。

由于概念相似度的计算的功用目的,有必要突出语义分析和句法分析中的词语可替换性。深入研究知网的概念表达体系结构,我们发现概念的主类义原确定了概念的最基本的意义,是概念语义分类的依据,而无论是词语的语义特征还是句法特征,都与概念语义分类密切相关,为体现这一特性,我们将公式(6)修正为公式(7)。

(7)

在公式(6)的基础上,对语义树相似度计算Sim2(C1,C2)乘上主类义原相似度计算Sim1(C1,C2),这一修改的含义是:如果Sim1(C1,C2)值较大,则公式(6)的计算值接近于公式(7),如果Sim1(C1,C2)值较小,则第二项的计算值较小,整个公式的计算值就较小。

5 相关实验与结果分析

由于目前对中文词语相似度还没有形成统一的规范,也没有相关标注语料提供实验平台,因此中文词语相似度计算的实验设计与数据筛选困难较大,如果随机的选取一些词语,很难说明问题。我们从本文中文词语相似度的功用目的出发,在遴选实验数据时侧重那些能说明语义特征和句法特征以及语义相关性的词语。

表1是实验中的相关参数,分为3个不同的参数组,通过不同参数的权重的不同设置,观察实验结果的合理性。

表1 相关参数设置

表2是相关实验结果。实验数据表明,主类义原及其框架对概念之间的类别区别贡献较大,如在参数组1和参数组3中,由于β1和β3的值设置的相对较高,在(“盗墓人”、“盗墓”)和(“盗墓人”、“小偷”)、(“雨伞”、“打伞”)和(“雨伞”、“雨衣”)这几组数据的计算中,能较好地体现类别区别。

表2 实验结果

续表

“色调”的DEF={Hue|浓淡:host={Color|颜色}},“蓝色”的DEF={blue|蓝},其对应的主类义原的上位关系链分别为:属性→外观→浓淡,属性值→外观值→颜色值→蓝,也就是说这连个看似关系密切的词语,在《知网》的概念架构中分别属于“属性”和“属性值”两个不同的类别,因此计算相似度为0。从能否替换的角度看,这两个词确实可替换性较差,但是它们确实存在一定的语义关联,针对不同的应用目标,在相似度计算中,应考虑进属性和属性值之间的关系。

实验结果中的正负值,较好地反映出语义特征相似度和句法特征相似度,如(“合算”、“得不偿失”),语义相反,但句法结构中具有替代性。“鱼类”和“鲤鱼”的相似度为1,是因为它们的DEF都是{fish|鱼}。HowNet中有一些词语的定义的细致程度还有待进一步的完善。

由于《知网》中,概念的语义是从概念特性描述、主类义原、主类义原框架3个方面进行定义的,具体到某些词语,在这3个方面的描述分量并不是很平衡,有些特性描述较细致,但义原或义原框架却较简略,而有些却正好相反。如“北”、“北部”,它们的主类义原框架描述较细致,且相似性高,因此在参数组3等到结果最大。固定地设定某组参数,对某些词效果叫好,可能对另外一些词,则不然。针对这一情况,进行参数的动态设定,即综合考虑概念定义的3个方面,动态调节参数。参数计算公式(8)所示:

(8)

其中,n1、m1分别为参与比较的两个概念的主类义原在义原树上的深度,n2、m2分别为两个概念的特性描述中的节点数目,n3、m3分别为两个主类义原框架中的节点数目。

6 结论与展望

词语相似度的分析与计算是自然语言处理关键技术之一,对句法分析、机器翻译、信息检索等能提供很好的帮助。本文充分分析和利用新版HowNet的概念架构和语义多维表达形式,从概念的主类义原、主类义原框架以及概念特性描述三个方面综合分析词语相似度,并从实际功用出发,将词语相似度细分为语义特征相似度和句法特征相似度,并在计算中区分和体现出两种相似度的不同。实验结果较为理想,与人的直观判断基本一致。

《知网》含有丰富的词汇语义知识和世界知识,尤其是新版《知网》除了规模有很大的扩充外,概念描述架构体系有了较大的改进和完善,为中文语义处理提供了很好的平台。在本文后继的工作中,将着力于挖掘和利用HowNet中的动态角色与特征提供的概念之间更为细致的语义关联,分析词语相似性与相关性之间的内在联系和转换。

致谢:衷心感谢语义分析与处理支撑平台——《知网》。

[1] 刘群,李素建. 基于《知网》的词汇语义相似度的计算[C]//第三届汉语词汇语义学研讨会. 中国台北,2002.

[2] Green, Rebecca and Bonnie J. Dorr. Inducing A Semantic Frame Lexicon from WordNet Data[C]//Proceedings of the 2nd Workshop on Text Meaning and Interpretation (ACL 2004).

[3] 李涓子.汉语词义排歧方法研究[D].清华大学博士论文,1999.

[4] 鲁松.自然语言中词相关性知识无导获取和均衡分类器的构建[D].中国科学院计算技术研究所博士论文.2001.

[5] Dagan I., Lee L. and Pereira F. (1999), Similarity-based models of word cooccurrence probabilities[C]//.Machine Learning, Special issue on Machine Learning and Natural Language, 1999.

[6] 董振东, 董强. 《知网》[DB/OL]. http://www.keenage.com

[7] 董振东,董强,郝长伶.《知网》的理论发现[J]. 中文信息学报,2007,21(4):3-9.

[8] Dekang Lin. An Information Theoretic Definition of Similarity Semantic distance in WordNet [C]//Proceedings of the Fifteenth International Conference on Machine Learning. 1998.

[9] Eneko Agirre, German Rigau. A Proposal for Word Sense Disambiguation using Conceptual Distance[C]//Proceedings of the First International Conference on Recent Advanced in NL P. 1995.

[10] BUDANITSKY, A. AND HIRST, G. Semantic distance in WordNet:An experimental, application oriented evaluation of five measures[C]//Workshop on WordNet and Other Lexical Resources, Second meeting of the North American Chapter of the Association for Computational Linguistics. 2001.

[11] 李峰,李芳. 中文词语语义相似度计算——基于《知网》2000[J]. 中文信息学报,2007,21(3):99-105.

[12] 吴健,吴朝晖,李莹,等. 基于本体论和词汇语义相似度的Web服务发现[J]. Chinese Journal of Computers,2005, 28 (4).

[13] 朱嫣岚,闵锦,周雅倩,黄萱菁,等. 基于HowNet的词汇语义倾向计算[J]. 中文信息学报, 2006, 20(1):14-20.

猜你喜欢
句法语义词语
容易混淆的词语
句法与句意(外一篇)
中华诗词(2021年3期)2021-12-31 08:07:22
述谓结构与英语句法配置
找词语
语言与语义
句法二题
中华诗词(2018年3期)2018-08-01 06:40:40
诗词联句句法梳理
中华诗词(2018年11期)2018-03-26 06:41:32
词语欣赏
“上”与“下”语义的不对称性及其认知阐释
现代语文(2016年21期)2016-05-25 13:13:44
一枚词语一门静