大数据搜索引擎原理分析
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.4 语义相似度

词语的语义相似度用来研究在特定环境下词语的相似性。在中文语义分析的应用中,需要用数值的方式来量化词语具体的相似程度。目前常见的语义相似度计算方法包括根据世界知识与分类体系计算,或者通过语料库统计学习的方式获得。在很久以前就有研究员提出,两个词语的语义相似度取决于词语之间的共性(Commonality)和个性(Differences),并且给出了一个参考公式:

根据上述语义相似度的表达公式,语义相似度与共性成正比、与个性成反比。然而确定词语之间的共性和个性是一个比较难的问题,因此学术界提出了基于义原的概念来表达词语之间的共性和个性。

《知网》(HowNet)是一个基于中文与英文的词语作为概念的表示,以这些词语为描述对象,以揭示概念与概念之间,以及概念所具有的属性之间的关系为基本内容的常识知识库,而这些概念可以理解为词语的语义。一个词语可能存在多个语义。对于语义的表述通过义原进行描述,义原是语义最小的计算单位。义原之间的关系也有很多种,如上下位关系、同义关系、反义关系等。《知网》上目前大概有1500个义原,这些义原大致分为以下几类。

(1)基本义原。Event\事件、Entity\实体、Attribute\属性值、aValue\属性值、quantity\数量、qValue\数量值、SecondaryFeature\次要特征。

(2)语法义原。syntax\语法。

(3)关系义原。EventRole\动态角色、EventFeatures\动态属性。如表3-18所示为一些词语的义原描述。

表3-18 一些词语的义原描述

在表3-18中,每条记录称为一个义项,一个词语可能有多个义项,每个义项的描述由多个义原组成,以逗号分隔。义原是用来补充解释义项的,义原中可能存在一个特殊符号:“#”表示相关;“^”表示不存在相关的可能。

约定两个词语的语义相似度是各个义项相似度的最大值。例如,针对词语“克里米亚”和“东三省”的语义相似度计算,实质上是求描述中各个义项的相似度,如下公式所示。

Sim(W克里米亚W东三省)=max(Sim(S克里米亚S东三省))

上面将词语的语义相似度归结于义项的相似度,但是义项最终又归结为用义原来表示,因此,义原的相似度计算是计算词语的语义相似度的基础。而义原又是通过树状的义原语义层次树来表示的,如图3-9所示。

图3-9 义原语义层次树

可以通过计算义原之间在义原语义层次树中的路径距离来表示语义相似度。距离越近,则语义相似度越高。以p表示义原,计算p1, p2义原相似度的公式如下所示,其中d表示p1, p2在义原语义层次树中的路径距离,a 是调节参数。

《知网》与传统的其他语义词典不同的是,它通过义原将词语包含的概念描述出来,而其他语义词典则通过树状结构将语义映射到树的体系中,通过树的距离、共享根节点来表达语义相似。因此,S克里米亚={p地方pp俄罗斯},而S东三省={p地方pppp中国},最终通过计算得出词语“克里米亚”与“东三省”的语义相似度为0.8。