一种基于大知识库的亲属关系自动推理模型

2010-06-04 07:05陈振宇袁毓林张秀松
中文信息学报 2010年3期
关键词:谓词弟妹阿兰

陈振宇,袁毓林,张秀松,周 强

(1. 北京大学 中文系 汉语语言学研究中心,北京 100871;2. 淸华大学 信息技术研究院 语音和语言技术中心,北京 100084)

1 引言

在计算机工程与设计中,已经有一些研究者对以亲属关系为特定领域的专家系统进行了研究。建立基于调查的有关人物的亲属关系知识库,是目前常用的一种技术。有人据此建立了关于《红楼梦》人物关系的专家问答系统[1],也有人对亲属关系常识以及人物信息的表示与存储进行了研究[2-3]。

我们认为,亲属关系专家系统应由以下三个部分组成:

1) 预备研究工作:即从认知的角度建立亲属关系的理想认知模型。在其基础上,建立“抽象亲属关系大知识库”。它包括亲属关系的定义、性质、逆关系和传递关系等内容。

2) 后台工作:针对特定人群进行调查。调查的数据往往不完整,必须运用大知识库作为推理的依据,将所有可能存在的亲属关系补足出来,得到完备的“具体人物亲属关系大知识库”。

3) 前台工作:即前台问答系统,它主要由查询机制构成。

现有的专家系统,更多地关注调查数据的储存、管理,以及问答查询系统的设定等问题[4-5],很少考虑到调查数据的非完备性。例如,我们可能调查到阿兰是老张的侄媳,老张是张三的伯父,但没有调查张三与阿兰是什么关系。这种数据缺失必须由系统自动补充。

一些研究者试图通过自动推理来完成这一任务。一是选取若干基本的亲属基元,如父、母、子、女、妻(夫)、兄、弟、姐、妹等,用它们来描写其他亲属关系。只需给出亲属基元的转换表格,就可以通过一定的运算来实现其他亲属关系之间的自动转换[6]。二是选取若干基本的语义特征,如亲子、配偶、性别、年龄等,用它们描写任一亲属关系。只需给出基本语义特征之间的逻辑运算,就可以实现任一亲属关系之间的自动转换[3,7-8]。但这种研究目前还做不到准确和高效。上述自动推理系统,大多只是一种“玩具系统”。

我们采取“大知识库—小运算”的技术路线;利用在语言研究中发现的汉语亲属关系的词汇—语法表达及其情景语义的种种特点[9-22],对亲属关系进行分组和排序;然后一组一组地由人工进行精确的描写,努力将任意两个亲属关系之间可能存在的联系路径全部找出来。由于对亲属关系描写得足够详尽,覆盖了现代汉语中的全部(至少是大多数)的亲属关系;因而计算起来比较简单,编程实现也相对容易。

本方案暂不考虑以下两种因素:(1)影响亲属关系形成、变化等的时间因素;(2)一夫多妻、离异、再婚、收养等改变亲属关系的因素。另外,在调查工作以及问答系统中,都涉及对自然语言的问句进行加工处理的问题,这也需要一个特定的知识库“词汇—句法知识库”,这也包括在大知识库中。汉语人名的自动识别研究已经开展多年,有丰富的成果[23-24];本方案默认人名已经识别。

2 基本概念

亲属关系名词可以看作是一个逻辑谓词,记为“R(x,y)”,x、y为变元,即亲属关系所联系的两个人物,前一个为称呼人,后一个为被称呼人。表达式“R(x,y)”相当于自然语言的“x叫y为R”。例如,“父亲(张三、老张)”即代表“张三叫老张为父亲”或“老张是张三的父亲”等语句。

为了准确地描写亲属关系,有时需要指明有关人物的特定性质,共有三种:1)变元的性别,如“x男”指x为男性;2)变元之间的年龄关系,如“x>y”指x的年龄比y大;3)对独生状况的说明,如“x独”指x是独生子女。

由亲属关系或亲属关系与性质构成的逻辑式,称为“亲属关系表达式”。比如,“[父∨母(x,x1)]∧女(x1,y)∧y>x”,表示x1是x的父或母,并且y是x1的女儿,并且y年龄大于x;换算过来,即y是x的姐姐。为了简化书写,我们规定:“R1∨R2(x,y)←→R1(x,y)∨R2(x,y)”。

对亲属关系表达式之间关系的描写称为“判断”,它分为蕴含判断与等于判断两种。

1)一个(组)关系蕴含另一(组)关系,记为“R1—→R2”,如“妻(x,y)—→[父∨母(x,x1)]∧儿媳(x1,y)”,即如果y是x的妻子,则存在一个中介x1,x1是x的父或母,并且y是x1的儿媳,即“我的妻子肯定是我的父母的儿媳”。但这一关系不能反过来,“我的父母的儿媳”不一定是“我的妻子”,她也可能是“我的嫂子或弟妹”。

2)一个(组)关系等于另一(组)关系,记为“R1←→R2”,如“妻(x,y)←→夫(y,x)”,即y是x的妻子,等于x是y的丈夫。

3 抽象亲属关系大知识库

3.1 现代汉语常见亲属关系及其认知模型

现代汉语常见亲属关系的认知模型,如图1所示。大约两百多个亲属关系名词可以归入大约70余种亲属关系,可分为父党、母党、妻党、夫家、子族、女族、兄弟一族、姐妹一族八个部分,为了便于描写,亲属关系的序号也按这八个部分依次编号,如“1父、2母、3亲、4夫、5妻、6配偶、7子、8女、9孩子、10兄、11弟、12兄弟1、13姐、14妹、15姐妹1……”。(亲属名词之后的数字,表示该多义词的某个特定的义项,下同。)这一排序十分重要,因为父党与母党、妻党与夫家、子族与女族、兄弟一族与姐妹一族它们两两基本对称,这样可以大大提高人工标写的效率。

3.2 外围知识库——知识库

3.2.1 亲属关系名词与名词库

亲属关系与亲属关系名词不同,前者是抽象的,后者是具体的。在具体语言中,一个亲属关系可以由多个亲属关系名词来表示,如“父、父亲、爸爸、爹爹、爹、爹地、家父”等都表示同一个亲属关系:父。而一个亲属关系名词一般只表示某一特定的亲属关系。

这些亲属关系名词可用于不同的句式,例如:

句 式 逻辑意义

x+和+y+是+R1R2 R2(x,y)∧R1(y,x)

x+和+y+是+R R(x,y)∧R(y,x)

y+是+x+的+R R(x,y)

y+和+z+是+x+的+R1R2

R1(x,y)∧R2(x,z)

y+是+x+家+的+R R(x,y)

x+的+R+叫+y R(x,y)

x+有+个+R+叫+y R(x,y)

x+有+y+这个+R R(x,y)

x+喊/叫/称/呼+y+(为+)R R(x,y)

……

亲属关系与亲属关系名词之间的对应关系,以及亲属关系名词所能出现的有关句式,都在“名词及其句式库”中一一列出。

3.2.2 亲属关系中的事件、谓词及谓词库

形成亲属关系的事件,共分四类:

1) 称呼事件,其谓词有“称、称呼、喊、唤、叫、为”等。

2) 婚姻事件,图1中用无方向的虚线表示。其谓词有“(出)嫁、结1、结合、结婚、结亲、娉娶、娶、入赘、讨、迎娶、招、找”等。

3) 生育事件,图1中用实线箭头表示,箭头起点为生育者,终点为被生育者。其谓词分为两类:一是不要求生育者性别,如“生、养、有”等,一是要求生育者为女性,如“产、分娩、诞”等,在翻译时必须同时加上性别性质。生育事件是一对多的关系。

设A为一对多关系中“一”的一方,而B为“多”的一方,“一对多”关系导致了两种情况:1)它们只能是蕴含判断,如“父(x,y)—→祖/祖母(x,x1)∧子(x1,y)”。2)在描写B中各人之间的关系,并且是通过A来描写时,可以是等于判断,不过,是一个多项的等于判断,如“祖(x,y)←→父(x,x1)∧父(x1,y)←→伯(x,x1)∧父(x1,y)←→叔(x,x1)∧父(x1,y)←→姑(x,x1)∧父(x1,y)”,如果不能把所有的项全部列举出来,也会导致运算的失误。

4) 同胞事件,图1中用无方向的实线表示。汉语一般没有表示同胞事件形成的谓词。单从建亲事件的角度讲,它完全是由亲子关系衍推而来的,是非必要的。但是我们发现,同胞事件对计算亲属关系等级是必需的。因为一般认为兄弟姐妹和父母子女夫妻一样,都是称呼人的最亲近的亲属,所以图中也把它标出。同胞事件也是复杂的一对多的关系。

各个亲属关系谓词也分别用于不同的句式,例如:

句 式 逻辑意义

x+__+y+(为/作+)R R(x,y)

x+管y+__+R R(x,y)

x+把y+__+作+R R(x,y)

y+被x+__+作+R R(x,y)

x+__+y+这个儿子/女儿 R(x,y)

x+跟y+____(+为+夫妻/夫妇)

夫(x,y)∧妻(y,x)

x+__+y+为+妻/老婆 妻(x,y)

y+被x+__+作+妻子/老婆 妻(x,y)

y+__+给x+为+妻/老婆 妻(x,y)

y家+__+x+为+女婿 夫(y,x)

x+__+到+y家+作+媳妇/女婿

妻/夫(y,x)

……

亲属关系谓词所能出现的有关句式,都在“谓词及其句式库”中一一列出。

图1 亲属关系分布示意图

3.3 核心知识库

3.3.1 性质判断及性质库

性质判断指把特定亲属关系中包含的特定性质要求明确地表达出来,比如“兄(x,y)←→兄(x,y)∧y男∧y>x”。所有可能的各种性质判断,集合起来成为“性质库”。

3.3.2 逆判断及逆判断库

在两个相关的亲属关系中,如果称呼人与被称呼人的称谓地位正好互换,则这两个关系之间有“逆判断”,其公式为:“—R1(x,y)←→R2(y,x)”(“—”为逆的标号)。其中,R2称为R1的“逆关系”,反之亦然。

汉语中存在大量的亲属关系对子,如“父母—子女、夫—妻、兄弟—姐妹、祖父母—孙子女、舅舅—外甥”等等,逆判断就是用来刻画这一语义内容的。例如“—夫(x,y)←→妻(y,x)”。在逆判断中,有时需要加上某种性质,例如“—子(x,y)←→[父∨母(y,x)]∧y男”。所有亲属关系的逆判断,集合起来成为“逆判断库”。

3.3.3 传递判断及传递判断库

一个亲属关系可以分解为两个亲属关系通过某中介人构成的组合,从而形成“传递判断”,其公式为:“R(x,y)←→R1(x,x1)∧R2(x1,y)”(中介人为x1)。例如“嫂(x,y)←→兄(x,x1)∧妻(x1,y)”。

传递判断中,要明确从称呼人到被称呼人究竟有多少条路径,每条路径究竟可以通过那些中介人。例如“父(x,y)←→母(x,x1)∧夫(x1,y)”、“父(x,y)—→祖父(x,x1)∧子(x1,y)”、“父(x,y)—→外祖父(x,x1)∧女媳(x1,y)”、“父(x,y)←→[兄∨弟∨姐∨妹(x,x1)]∧父(x1,y)”、“父(x,y)—→[子∨女(x,x1)]∧[祖父∨外祖父(x1,y)]”、“父(x,y)—→叔父(x,x1)∧兄(x1,y)”、“父(x,y)—→舅舅(x,x1)∧[姐夫∨妹夫(x1,y)]”、“父(x,y)—→[堂兄∨堂弟∨堂姐∨堂妹(x,x1)]∧[叔父∨伯父(x1,y)]”……。这些路径有的是蕴含判断,有的是等于判断。

有时,一条路径上有两个或两个以上中介人;它们就有一个组合问题。例如:“嫂(x,y)←→兄(x,x1)∧妻(x1,y)”、“嫂(x,y)—→父∨母(x,x1)∧儿媳(x1,y)”“嫂(x,y)—→父∨母(x,x1)∧子(x1,x2)∧妻(x2,y)”、“嫂(x,y)←→父∨母(x,x1)∧子(x1,x2)∧妻(x2,y)∧x2>x”……。

怎样才能描写足够多的传递路径,以至于穷尽可能有的传递路径,这是整个亲属关系的语义描写的重点和难点。本方案遵循以下基本原则:

原则Ⅰ:描写应尽可能详尽,从而使运算步骤最少。

原则Ⅱ:尽可能用等于判断代替相应的蕴含判断,仅在迫不得已时用蕴含判断。

原则Ⅲ:只描写右向的蕴含判断,不描写左向的蕴含判断。

原则Ⅳ:对传递判断的描写尽可能采用级数较少的传递链条,一般只须描写有二或三个中介人的传递判断即可。

原则Ⅴ:判断的等式右边不能包含左边的内容。

我们是从亲属关系的语义性质出发,来完成这一任务,而不是盲目地排列矩阵。具体的做法是:

1) 按亲属关系的层次进行排列组合

越靠近称呼人的节点之间关系越复杂,所以我们采用由里向外,逐步推进的办法。先第0级亲属关系与第0级亲属关系搭配,然后第1级亲属关系与第0级亲属关系搭配,然后第1级亲属关系与第1级亲属关系搭配,然后第0级亲属关系与第2级亲属关系搭配,……,依此类推。

2) 层次内部分组排序

每一级的亲属关系,应按父党、母党、妻党、夫家、子族、女族、兄弟一族、姐妹一族八个部分的顺序排列,以保障相似或对称的亲属关系可以放在一起处理。

3) 标明默认传递判断

当有多条传递路径时,往往其中某一条相对重要一些。在不需要全部可能的答案时,优先选择这一路径;这条路径就是“默认传递判断”,例如:“堂妹(x,y)—→[伯母∨叔母∨婶(x,x1)]∧[[女(x1,y)]∨[[大伯∨小叔(x1,x2)]∧女(x2,y)]∨[夫(x1,x2)∧侄女(x2,y)]]”。我的堂妹可能是我的伯母、叔母或婶的女儿,也可能是她们的大伯或小叔的女儿,即她们的丈夫的侄女;但是,后一选项过于迂回。在一般情况下,人们需要(或首先想到)的往往是前一选项。

完全靠人工标写默认的传递,往往主观随意性较大。我们规定了两个原则:

a. 如果某一路径所表示的亲属关系,在图1的认知图中属于第0级或第1级的亲属关系,则该路径为默认传递判断。如上例的“女(x1,y)”为第0级,所以为默认的。

b. 如果某一路径所表示的亲属关系,在图1的认知图中属于第2级或第2级以上的亲属关系,则当且仅当它是级数最少的路径时,才是默认的传递判断;如果有比它级数更少的路径时,它就不是默认的。例如,“弟(x,y)—→堂兄/堂姐(x,x1)∧堂弟(x1,y)”,其中“堂弟(x1,y)”是第2级,但没有比它更短的链条了,所以它也是默认的。

在确定图1亲属关系远近等级时,等级数等于该亲属关系与称呼人之间的连结线的数目减1。比如,“兄”通过一个同胞关系直接连结到称呼人,所以它是0级。

图1所示亲属关系的传递判断,共有3 660余条,集合起来成为“传递库”。这是亲属关系推理(或转换)问题中最为庞大的语义知识库。在每一条传递判断中,都标出其中的一个为默认传递判断。

4 利用大知识库实现任意亲属关系的自动转换运算

下面以“已知阿兰是老张的侄媳,老张是张三的伯父,问张三与阿兰是什么关系?”为例,来说明运算的过程。

1) 检索“名词及其句式库”和“谓词及其句式库”,把自然语言的句子翻译成有关的语义表达式。另外,在翻译时,任意指定一个已知的亲属关系为第一已知关系,另一个为第二已知关系。如:

第一已知关系:阿兰是老张的侄媳⟺侄媳(老张,阿兰)

第二已知关系:老张是张三的伯父⟺伯父(张三,老张)

2) 在“传递库”中检索第一已知关系的所有传递判断,如检索“侄媳”,有许多条;把“老张”和“阿兰”代入相应的变元x和y后,可以发现:所有这些传递判断中等式右边的“老张”都处于称呼人的位置。但是,因为在第二已知关系中,“老张”处于被称呼人的位置;所以不可能相合。因此,必须求第二已知关系的逆判断,检索“逆判断库”,把“张三”和“老张”代入相应的变元x和y后,可以得到:

—伯父(张三,老张)—→[侄∨侄女(老张,张三)]∧老张男

3) 我们采用简单的合一运算方式,其操作如下:

由第二已知关系及其逆判断得到以下关系和性质为真:

侄∨侄女(老张,张三)

(1)

在第一已知关系的传递判断中,有两条如下:

侄媳(老张,阿兰)—→侄(老张,x1)∧[[妻∨嫂∨弟妹∨堂嫂∨堂弟妹(x1,阿兰)]∨[父(x1,x2)∧侄媳(x2,阿兰)]∨[[堂兄∨堂弟(x1,x2)]∧妻(x2,阿兰)]]

侄媳(老张,阿兰)—→侄女(老张,x1)∧[[嫂∨弟妹∨堂嫂∨堂弟妹(x1,阿兰)]∨[父(x1,x2)∧侄媳(x2,阿兰)]∨[[堂兄∨堂弟(x1,x2)]∧妻(x2,阿兰)]]

因此以下关系为真:

侄(老张,x1)∧x1男

(2)

侄女(老张,x1)∧x1女

(3)

[妻∨嫂∨弟妹∨堂嫂∨堂弟妹(x1,阿兰)]∧x1男

(4)

[嫂∨弟妹∨堂嫂∨堂弟妹(x1,阿兰)]∧x1女

(5)

当两个关系的亲属关系R一样,同一指称的人员位于同一论元位置,且同一论元位置的人员有同样的性质时,这两个关系可以合一。显然,关系(1)和关系(2)、(3)合一,故有:x1=张三。将“x1=张三”代入关系(4)、(5)得:

[妻∨嫂∨弟妹∨堂嫂∨堂弟妹(张三,阿兰)]∧张三男

(4’)

[嫂∨弟妹∨堂嫂∨堂弟妹(张三,阿兰)]∧张三女

(5’)

答:当张三是男性时,阿兰或者是张三的妻子,或者是张三的嫂子,或者是张三的弟妹,或者是张三的堂嫂,或者是张三的堂弟妹;当张三是女性时,阿兰或者是张三的嫂子,或者是张三的弟妹,或者是张三的堂嫂,或者是张三的堂弟妹。

又由第一已知关系的传递判断中的默认项可知:当张三是男性时,默认的答案是阿兰是张三的妻子或嫂子或弟妹;当张三是女性时,默认的答案是阿兰是张三的嫂子或弟妹。

5 结束语

现代汉语的亲属关系是一个相对封闭的系统,可以将其所有转换的排列组合都予以标出。其中的困难主要是组合的数量较为庞大,不易于人工操作。比如,70多个亲属关系便需5 000多格的矩阵。本文提出的方案优于前人的地方在于,通过对汉语亲属关系的词汇—语法表达的充分研究,来给汉语常见的亲属关系及其情景语义建立合适的认知模型;然后,在此基础上对亲属关系进行合理分组排序,并据此构造大型的汉语亲属关系知识库。这样,使得传递库能够较为方便、简明地建立起来。应该说,这是汉语句法—语义研究与计算语言学研究相结合的一项成果。

[1] 王树西, 刘群, 白硕. 一个人物关系问答的专家系统[J]. 广西师范大学学报, 2003, (1): 32-36. 另见王树西. 红楼梦人物关系问答系统. 下载自中国科学院计算机研究所中文自然语言处理开放平台.

[2] 魏旺强, 靳小龙. 基于常识的亲属关系推理模型[J]. 计算机工程与应用, 2007,(17):83-85,114.

[3] 葛强. 亲属关系逻辑推理专家系统的研究[D]. 河南大学硕士学位论文, 2005.

[4] 郭茂祖, 孙华梅, 黄梯云. 专家系统中知识库组织与维护技术的研究[J]. 高技术通讯, 2002, (2): 1-4, 9.

[5] 刘小冬, 张蕾. “CAU”词及其知识图分析[J]. 中文信息学报,2002,16(6):38-44.

[6] 胡明晓. 基于亲属元的亲属运算模型研究[J]. 计算机工程与设计,2007,(6):2785-2787.

[7] 葛强, 郑逢斌, 汤赛丽, 侯丽敏, 周 舫. 基于语义网络的家族人物关系推理算法的研究[J]. 计算机时代, 2005, (6): 3-5.

[8] 邱震强. 汉语表亲属关系的义素系统的封闭性[J]. 柳州职业技术学院学报, 2003, (4): 47-50.

[9] 石安石. 语义研究[M]. 北京: 语文出版社, 1998.

[10] 贾彦德. 汉语语义学[M]. 北京: 北京大学出版社, 1999.

[11] 胡士云. 汉语亲属称谓研究[M]. 北京: 商务印书馆, 2007

[12] A. L. Kroeber. Process in the Chinese Kinship System’ [J]. American Anthropologist, 1933,35: 151-157.

[13] Ching-Chao Wu. The Chinese Family: Organization, Names, and Kinship Terms[J]. American Anthropologist, 1927,29: 316-325.

[14] H. Y. Feng. Teknonymy as a Formative Factor in the Chinese Kinship System[J]. American Anthropologist, 1936,38: 59-66.

[15] Geoffrey Leech. Semantics[M]. Middlesex: Penguin Books Ltd. 1974.

[16] Joseph H. Greenberg. Logical Analysis of Kinship[J]. Language, 1949,16: 58-64.

[17] Langacker, R. W. Foundations of Cognitive Grammar. [M]1987, Vol. 1, Theoretical Prerequisites. Vol. 2, Descriptive Application[M]. 1991,Stanford Cal.: Stanford University Press.

[18] Pustejovsky, J. The Generative Lexicon[M]. Cambridge, MA: MIT Press. 1995.

[19] Paul K. Benedict. Tibetan and Chinese Kinship Terms[J]. Harvard Journal of Asiatic Studies, 1942,6: 313-337.

[20] T. S. Chen&J. K. Shryock. Chinese Relationship Terms[J]. American Anthropologist, 1932,34: 623-669.

[21] Yuen Ren Chao(赵元任). Chinese Terms of Address[J]. Language,1956,32: 217-241.

[22] Yuen Ren Chao(赵元任). Aspects of Chinese Sociolinguistics[M]. Stanford:Stanford University Press. 1976.

[23] 毛婷婷, 李丽双, 黄德根. 基于混合模型的中国人名自动识别[J]. 中文信息学报, 2007, 21(2): 22-28.

[24] 罗智勇, 宋 柔. 一种基于可信度的人名识别方法[J]. 中文信息学报, 2005, 19(3): 67-72.

猜你喜欢
谓词弟妹阿兰
原始的塑造——多米尼克·阿兰作品欣赏
如果地球被我们吃掉了
我的奇葩老妈智慧多
被遮蔽的逻辑谓词
——论胡好对逻辑谓词的误读
党项语谓词前缀的分裂式
康德哲学中实在谓词难题的解决
唯美歌姬阿兰全新单曲《兰之乐光Lan of music light》正式首发
面对不愿要弟妹的孩子 家长的责任更大
旁敲侧击
记住生日有隐情