汉语亲属关系的语义表示和自动推理,本文主要内容关键词为:亲属关系论文,汉语论文,语义论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
0.引言:语义特征分析法的局限与改进
语义特征分析法,是语义学研究中的一种基本而经典的方法。但是,这种方法现有的描写手段,只适合用来分析在概念上比较简单的词语,不足以用来分析概念结构相对复杂的词语。特别是从计算机理解自然语言的角度看,这种方法有下列两个缺点:
第一,语义特征的选择很难达到完备性的要求。当我们面对一个具体问题的时候,应该选择哪些特征,必须同时满足“充分”和“必要”这两个方面的要求——既要选择足够多的特征来构成一个“完备特征集合”,使我们的语义描写没有遗漏;同时这些特征又必须是“最小完备特征集合”,即该集合中的每一个特征都是完全独立的,它不能由同一集合中的其他特征通过运算而推导出来。后一个要求是为了避免“冗余”特征的出现。
第二,语义特征描写很难找到与它相匹配的运算推理。从逻辑上来讲,运算推理才是一个认识系统的核心,各种分类和描写都是为它服务的。所以,一套特征描写必须是能够运算的,否则对于处理自然语言的计算机系统来说是无效的。
那么,怎样来解决这两个问题呢?我们尝试在计算语言学背景上,以亲属称谓词语为实验对象,改进和拓展语义特征分析法,使之能够反映更具结构性的语义关系信息。本文介绍我们在这方面的一个具体的研究案例——基于语义特征的亲属关系的语义表示和自动推理。我们通过对汉语亲属词语的概念结构的语义分析,提取7个能够反映语义关系的语义特征,作为描写亲属关系的最小完备特征集合;并根据亲属关系这个特定认知领域的语义关系特点,构造一套运算推理规则,最终设计了一套运算系统,从而实现了亲属关系推理(转换)的自动运算。在我们设定的可能世界模型中,该系统可以解决任意一对亲属关系之间的自动转换问题;如果已知A、B两人之间与B、C两人之间的亲属关系,那么可以自动推断A、C两人之间的亲属关系。我们希望本文的研究,能为语义特征分析法的发展及其跟形式语义学的结合,特别是语义研究与工程实践的结合,摸索出一条行之有效的、具有可操作性的道路。
1.亲属关系词语的语义描写和形式表示
1.1 前人的有关研究和技术背景
亲属词语怎样来分析和释义?亲属关系怎样来定义和推导?这是传统的词汇学和词典编纂学所关心的问题,也是现代语义学、逻辑学和计算语言学所关心的一个重要问题。
早在传统语义学阶段,语言学家就借鉴人类学、文化学等社会科学的研究,试图通过提取有限的特征,来定义特定的亲属关系。在我国也有一些这方面的探索,比如,石安石(1998)借鉴人类学家Lounsbury在20世纪60年代创立的方法,采用了“辈分、近亲、姻亲、姻亲(1对0)、性别(n)、性别(1)、长幼(1对0)、长幼(2对1)”等8个语义成分,来描写汉语亲属词语,并定义汉语亲属关系。但是这些描写都不完备,因此,无法运用于亲属关系之间的运算推理。
在日常的文本阅读、史实勘定、民事诉讼、宗谱排序等社会活动中,我们经常碰到亲属关系的推算和排列问题。比如,已知:“阿兰是张三的表妹,海堂是张三的伯父;”问:“海堂与阿兰是什么关系?”诸如此类的问题,在逻辑和语义学上属于“亲属关系转换(或推理)”问题,即根据有关人物之间已知的亲属关系,来求得他们之间未知的亲属关系。于是,开发一种亲属关系的自动推理系统成为一种现实的要求。而这又有赖于对亲属词语的语义进行深入和系统的分析。由于前人的语义特征分析不能达到这一点,因而人们转向其他的技术路线。
第一种是采用“大知识库”的技术路线。通过人工方法给所有常见的亲属关系进行穷尽性的配对,将所有配对的结果汇聚在一起,构造大型的亲属关系知识库。一旦碰到相关的问题,只需要到知识库中去检索,就可直接提取出答案。有人据此建立了关于《红楼梦》人物关系的专家问答系统(王树西等,2003),我们也建立了一个通用的大知识库模型(陈振宇、袁毓林、张秀松、周强,2009a)。这种方法的缺点是,完全靠人工去采集相关知识,不仅工作量大,而且还无法保证所获取的知识达到百分之百的覆盖率和准确性。
第二种是采用“亲属基元”的技术路线。选取若干基本的亲属关系,主要是最亲近的父、母、子、女、妻、夫、兄、弟、姐、妹等,用它们来描写其他亲属关系。这样,只需给出这些基本亲属关系的转换表格,就可以通过一定的运算来实现其他亲属关系之间的转换。但是,以往的研究由于不能很好地解决逻辑运算问题,通常只能对近亲关系进行推理,稍远一点的亲属关系就推算不出。所以,目前仅是开发了一些简单关系的换算程序,远远谈不上实用。我们在解决了相关的逻辑运算问题之后,开发了一个比较完善的系统(陈振宇、袁毓林、张秀松、周强,2009b),运算规则充足,达到了完备性的要求。
本文是在陈振宇、袁毓林、张秀松、周强(2009b)的基础上,进一步深化和求精得来的。最初的设想是,查核该文所设计的系统中究竟有哪些语义特征和语义规则是不能省去的,哪些是可以省去而不会导致系统功能下降的。这就迫使我们回过头去省视语义特征分析法。因为,采用语义特征的描写显然比采用亲属基元的描写更为简便。考察的结果是,发现语义特征分析法经过改造后完全可以胜任这一工作,只是以往的研究没有抓住问题的关键罢了。
1.2 汉语亲属词语的七大语义特征
我们发现,以前对亲属关系的语义特征分析,主要有三大缺陷:第一,没有紧扣亲属关系的认知图式,所选取的特征没有反映建亲事件的序列;第二,只看到表面的语义特征,没有发现那些“隐藏”在亲属关系背后的“隐性特征”;第三,没有区分亲属词语的意义结构中的属性特征与关系特征,缺少一套有效的把有关语义特征转变为关系谓词的描写方法。
所谓建亲事件,指特定的造成亲属关系的事件。从认知的角度看,当我们只考虑血缘关系,且暂不考虑一夫多妻、离异、再婚(续娶和改嫁)等改变亲属关系的因素(这是本文设定的基本前提,即据以进行语义解释的可能世界模型)时,基本的建亲事件只有两种:1)结婚事件,一女一男结合形成了婚姻关系;2)生育事件,他们生下了小孩,跟小孩形成生育关系。这些小孩之间的同胞关系是从生育关系上派生出来的。这样,跟亲属词语相关的诸多语义要素,可以还原和简化为两种:husband(x,y)和child(x,y),可以称为核心亲属关系。其他所有亲属关系的主干,都是由这两个建亲事件衍生出来的复合体。例如:
内兄(x、y)→husband(x1,x)∧child(x2,x1)∧child(x2,y)
这是把“x叫y内兄”(y是x的内兄)分解为三个建亲事件的复合:有一个x1,x是x1的丈夫;另有一个x2,x1和y都是x2的孩子。也即“内兄是妻子的兄弟姐妹之一”。(当然,这里还没有引进性别和年龄关系特征,所以对“内兄”的语义描写是不够充分的。)
有些研究者采用marriage,而不是husband这一语义特征。我们认为,从认知和计算两个维度看,后者比前者更为优越:一方面那个生孩子的女人如果有一个[合法的]丈夫,那么蕴涵她有一个[合法的]婚姻;另一方面husband(x,y)具有单向性(即反对称性:husband(x,y)≠husband(y,x)),而marriage(x,y)具有双向性(即对称性:marriage(x,y)=marriage(x,y)),单向关系比双向关系受到更多的约束,也更便于计算处理。
我们发现,几乎所有研究者都看到了性别(male,female)和年龄关系(elder)等显性的特征,它们规定了一个人在亲属关系这种社会网络中的基本位置。我们也认为必须把这三个特征纳入最小完备特征集合。但是,大多数研究者都忽视了两个极为重要的隐性特征:“自己”(self)和“独一”(alone)。事实上,没有它们就不能全面反映有关亲属关系的基本性质,有些推理运算就会出错,乃至于完全无法进行。下面对这两个语义特征略做讨论。
“自己”反映了亲属关系网络中个体的“同一性”。有的研究者也注意到这一特征,比如,胡明晓(2007)将它引入其亲属基元体系,用的符号是Me。但是,为什么这个语义特征是必需的,胡文语焉不详。我们认为,从认知的角度看,判断x和y两个个体是否同一个人,是断定各种可能的亲属关系的一个基本前提。很难想象,一个语义逻辑系统可以没有“相等”一类概念而安然无恙。另一方面,从运算的角度讲,如果说逻辑“并”(∧)相当于乘法,而逻辑“或”(∨)相当于加法;那么self就是自然数1,有着不可或缺的微妙的功能:在乘法运算中可以起到化简的作用,在加法运算中又能防止某些重要亲属关系的遗漏。
“独一”反映了亲属关系网络中个体的“唯一性”。陈振宇、袁毓林、张秀松、周强(2009b)把它作为一个关键性的性质引入描写和运算系统,用来反映谓词的变元之间的对应关系。在二元亲属关系中,如果其中一方只有一个,则该方就是alone。如在“husband(x,y)”中,因为受一夫一妻制这种可能世界模型的限制,x和y都只有一个,所以它们是alone(x)和alone(y)。而在“父(x,y)=child(y,x)∧male(y)”中,父亲只有一个,故y是alone(y);但孩子可以有多个,所以x不具有alone这一性质。唯一性这个语义特征在逆运算中可以用来确定有关论元是否有同一性,从而得到self(x,y)关系,这称为“自反性”运算。当两个二元亲属关系的谓词一样,且有一个相同的变元,该变元在表达式中的位置也相同时,这两个关系互为“逆关系”。比如,“child(x,x1)”和“child(y,x1)”的关系谓词都是child,有相同的变元x1,而x1在前后两个关系中都处于第二个变元的位置。简言之,x1是x的孩子,而x1又是y的孩子;x与y的关系是由“从x到x1”和“从x1到y”两种相逆的关系决定的。在相逆关系中,只要变元x与y具有唯一性,则它们具有同一性。比如,把本例改为“child(x,x1)∧male(x)”和“child(y,x1)∧male(y)”,则x和y都具有唯一性。于是,我们就可以得出结论:x和y之间具有同一性,它们之间是一种具有自反性的关系——自己。即:
child(x,x1)∧male(x)∧child(y,x1)∧male(y)=self(x,y)
这是因为“child(x,x1)∧male(x)”指x是x1的爸爸,“child(y,x1)∧male(y)”也指y是x1的爸爸,由于本方案假定一个人只有一个爸爸,所以x就是y。
分析表明,要描写所有的汉语亲属词语及其所表示的亲属关系,至少需要以下7个语义特征;在亲属关系的概念领域内,它们构成语义学和逻辑学意义上的最小完备特征集合:
(1)husband(x,y) x叫y丈夫(即:x嫁给y、y是x的丈夫)
(2)child(x,y)x叫y孩子(即:x生下y、y是x的孩子)
(3)self(x,y) x叫y自己(即:y与x是同一个人)
(4)male(x)x为男性
(5)female(x) x为女性
(6)elder(x,y)x叫y哥/姐(即:y出生时间在x之前。请注意,即使是孪生子,也有出生时间上的前后区别。)
(7)alone(x)
x是唯一的
在上述语义特征中,有的是可以转化的。比如,有特征husband(x,y),就一定有alone(x)、alone(y)、male(y)、female(x)。从这一点看,alone、male、female三个特征有一定的派生性。但是,这种派生是有限的,并不是在任何条件下都是必然的。比如,有特征child(x,y),其中x、y的性别和唯一性都不可知;遇到“女儿、儿子、独子”等亲属关系,我们都必须另加上性别和唯一性的条件,如“独女(x,y)=child(x,y)∧female(y)∧alone(y)”。所以,这三个特征都是必要的,上述语义特征系统是最小完备的特征集合。
1.3 亲属关系词语的语义描写和形式表示
用上述七大语义特征,可以充分地描写任何一个亲属关系词语的语义。比较而言,传统的语义特征分析法在描写词语的语义时,往往是把有关的语义特征“堆放”在一起,不太考虑这些特征在有关概念结构中的语义和逻辑关系,也不大讲究用什么样的表达式来进行描写。我们认为,只有把词语的有关语义特征有机地整合在一起,形成完整和一致的语义结构,并尽可能用较具形式化的方式来表示,才算是完成丁语义描写的任务。对于自然语言的词语和句子的意义表示来说,一阶谓词逻辑表达式是一种比较合适的形式。为了方便,我们称由某一亲属词语的语义特征以及这些特征之间的关系构成的逻辑表达式为该亲属关系的定义。语义特征之间的逻辑关系,主要是逻辑谓词和一阶逻辑所用的联结词“∧”(并)、“∨”(或)。
我们把每一个特征转译为一个逻辑谓词,将所涉及的个体(人)作为它的变元。比如,“husband(x,y)”指“y是x的丈夫”。然后用“∧”和“∨”把它们联结起来,组成逻辑表达式;其中,“并”和“或”满足交换律,且“并”对“或”有分配律;这与一阶逻辑中的运算没有区别。下面是我们对一部分亲属关系词语的语义描写和形式表示:
表1 汉语亲属关系定义举例
续表
例如,“表兄(x,y)”是一种相当复杂的亲属关系,它有两种可能,即有两个选言枝:
[child(x1,x)∧male(x1)∧child(x2,x1)∧child(x2,x3)∧female(x3)∧child(x3,y)∧male(y)∧elder(x,y)]∨[child(x1,x)∧female(x1)∧child(x2,x1)∧child(x2,x3)∧child(x3,y)∧male(y)∧elder(x,y)]
第一选言枝共分四段:“child(x1,x)∧male(x1)”是指x1是x的父亲,“child(x2,x1)∧child(x2,x3)∧female(x3)”是指x3是x1的姐妹,“child(x3,y)∧male(y)”是指y是x3的儿子,最后“elder(x,y)”指y比x先出生。四段合在一起表示“y是x的父亲的姐妹的儿子,且y比x年龄大”。第二选言枝也分四段:“child(x1,x)∧female(x1)”是指x1是x的母亲,“child(x2,x1)∧child(x2,x3)”是指x3是x1的兄弟姐妹,“child(x3,y)∧male(y)”是指y是x3的儿子,最后“elder(x,y)”指y比x先出生。四段合在一起表示“y是x的母亲的兄弟姐妹的儿子,且y比x年龄大”。
两个选言枝之间是“或”的关系,y是x的表哥,或者是指“y是x的父亲的姐妹的儿子,且y比x年龄大”,或者是指“y是x的母亲的兄弟姐妹的儿子,且y比x年龄大”。
2.亲属关系的推理和运算
2.1 简单合一运算的局限性
在运用语义特征描写亲属词语之间的语义关系,从而揭示有关人物之间的亲属关系时,以往的研究通常只考虑最简单的运算——“合一运算”:如果一个亲属关系A,其语义特征是另一亲属关系B的语义特征的一个子集,则A与B之间的关系,就是集合{B}-{A}所剩下的那些语义内容所表示的关系。比如,已知:“老张是张三的父亲,翠花是张三的伯母”,求解:“老张和翠花之间的关系”。查定义表,我们有:
父(张三,老张)=child(老张,张三)∧male(老张)Ⅰ
伯母(张三,翠花)=child(xl,张三)∧male(x1)∧child(x2,x1)∧child(x2,x3)∧elder(x1,x3)∧husband(翠花,x3) Ⅱ
可以看到,父亲的表达式正是伯母的表达式的一部分(即粗体有下划线的部分)。于是,通过合一运算,得到x1=老张;推出老张与翠花之间的关系就是剩下的那一部分内容:
child(x2,老张)∧child(x2,x3)∧elder(老张,x3)∧husband(翠花,x3)
再查定义表可知,“翠花是老张的嫂嫂”。
可见,合一运算有巨大的优势:计算简便,效率很高,非常适合于编程实现。但是,它也有着极大的局限:稍微复杂一点的问题就会出错,或者根本不能运算。比如,在很多情况下,两个亲属关系根本就没有相同的部分。例如,“老张是张三的父亲,翠花是张三的舅母”;求解:“老张和翠花之间的关系”。查定义表,我们有:
舅母(张三,翠花)=child(x1,张三)∧female(x1)∧child(x2,x1)∧child(x2,x3)∧husband(翠花,x3) Ⅲ
粗体有下划线的部分与父亲的表达式I不一样,根本不能合一。那么,能否仅凭第一个child就得出x1是老张呢?不行,因为在“父亲”表达式中,老张是male,而在舅母的表达式中,x1是female,它们的性质完全不同。
有的时候,两个表达式貌似有相同的部分,可以进行替换运算;但其实是一个“陷阱”,会导致得出不正确的结论。比如,“老张是张三的父亲,黑皮是老张的儿子”;求解:“张三和黑皮之间的关系”。查定义表,我们有:
子(老张,黑皮)=child(老张,黑皮)∧male(黑皮)Ⅳ
把它与父亲的表达式Ⅰ比较,似乎“child(老张,张三)”和“child(老张,黑皮)”完全一致,可以通过合一得出结论:“张三=黑皮”;再考察性质“male(老张)”和“male(黑皮)”,跟这一结论也不矛盾。但是,这一结论是片面的,完整的结论是“黑皮或者是张三的哥哥,或者是张三的弟弟,或者是张三本人”。只有把这三种可能性都表示出来,才是完整的答案。在诸如此类的个例的研究中,我们发现:如果在进行合一运算之前,先按照一定的规则进行有关特征和特征组合之间的转换运算,那么一定能推得完整的解。
2.2 语义特征之间的转换规则
根据上文的讨论,合一运算是最后一步;此前需先进行7个特征以及特征组合之间的转换运算。通过大量的实例分析,我们总结出下列7个特征及其组合之间的转换运算规则(见表2)。
表2 亲属关系转换运算最小完备规则集合
注:R指任一亲属关系,“R(…x…)”指所有有变元x的亲属关系R,不管R是一元还是二元谓词,下同。
表2中的规则既是充分的,也是必要的。按照这些规则在运算中的不同功能,我们把它们分为两类:辅助规则和化简规则。
1)辅助规则。在计算中,先要对已知定义进行信息整理,利用辅助运算中的有关规则,将表达式中“蕴含”的(entailed)全部语义内容明确地表示出来。整理完毕的表达式称为“完全表达式”。下面对有关的辅助规则略做说明:
[law1]:如果表达式中出现了语义特征husband,则将它的两个变元的性别和唯一性性质都写出来,因为在本方案设立的可能世界模型中,婚姻关系中男、女角色是固定的,且各只有一个配偶。
[law2]:如果表达式中明确表示出了是母亲(law2a)或父亲(law2b),则将他的唯一性性质写出来。
[law3]:如果x、y都是同一孩子的父母,则他们或者是夫妻,或者是同一人。
[law4]:当x、y都大于x1(law4a)或都小于x1(law4b)时,x、y的年龄关系共有三种可能:或者x大于y,或者y大于x,或者x、y相等。注意,这里根据数学原理,把年龄相等记为“elder(x,y)∧elder(y,x)”,即y大于x同时x也大于y。
[law5]:elder满足传递律。
[law6]:law6a指,如果任何两个x、y,他们都是同一父母的孩子,则或者x年龄大于y,或者y大于x,或者x、y年龄相等。
与之相仿的law6b则是关于堂亲和表亲的,如果任何两个x、y,他们都是堂兄弟姐妹或表兄弟姐妹,则也需把他们的年龄关系全面写出。
[law7]:任何一个人,如果表达式中没有明确表示其性别,则可能为男,可能为女。
在检索出定义,合并为逻辑表达式后,首先要进行辅助运算,逐一在已知表达式中搜索,看有无满足辅助规则输入条件的地方,只要有,就运用规则转换为输出的形式。辅助运算的步骤是:第一步先运用law1、law2、law3、law4、law5;第二步再运用law6、law7,每一步内谁先谁后无所谓。这是因为如果在前面已经表明特定个体之间的年龄关系,那就不再需要运用law6来赋予他们年龄关系;如果已知某一个体的性别,就不再需要运用law7来赋予他性别属性。
2)化简规则。当辅助运算把信息全部整理完毕之后,才能利用化简运算中的有关规则,把表达式转换为“最简表达式”。下面对有关的化简规则略做说明:
[law8]:如果y是x的丈夫的孩子(law8a),那么y也就是x的孩子,同理,如果y是x的妻子的孩子(law8b),那么y也就是x的孩子。
[law9]:如果x、y是同一父母的孩子,且他们出生时间相等,那么实际上他们具有唯一性。该规则输出既可以写成“child(x1,x)∧child(x1,y)∧alone(x)”,也可以写成“child(x1,x)∧child(x1,y)∧alone(y)”,因为它们不过是为law10提供输入,而在law10中它们完全等价,遵循“最简化”原则,只要写出其中一个即可。
[law10]:这就是“自反性”运算:如果x和y都与x1有相同的关系,且x和y中只要有一个是唯一的,那么x和y是同一个人。例如x是x1的独子,y也是x1的儿子,则x和y同一。law10a、law10b、law10c、law10d是law10的四种不同组合。
[law11]:对于逻辑“并”而言,self相当于乘法中的1,可以约去,并将相应的变元进行替换。
化简运算即逐一在完全表达式中搜索,看有无满足化简规则的输入条件的地方;只要有就进行化简。化简运算的步骤是:第一步先运用law8、law9,谁先谁后无所谓;第二步运用law10,第三步再运用law11。这时先判断有无alone,如果有再“喂入”law10,看能否变为self;如果有self,再“喂入”law11,以便将它约去,实现变元的替换。
2.3 语义特征alone的局部性
在亲属词语的7个语义特征中,除alone以外,其他6个都是一旦成立,则默认其保持不变,并在整个运算过程中都起作用。比如,有“female(x)”,则在该运算的任何地方x都是女性;有“husband(x1,x2)”,则在该运算的任何地方x1都是x2的妻子,x2都是x1的丈夫。但是,alone这一特征比较特殊,它在某些运算步骤中起作用,而在另外一些运算步骤中不起作用。比如,当两个选言枝分别有“alone(x)”这一性质时,这一性质不一定能够提升到整体表达式中。例如:
[child(x,y)∧male(x)∧alone(x)]∨[child(x,y)∧female(x)∧alone(x)]=child(x,y) Ⅴ
这是因为:当x为男性时,x在“child(x,y)”中为唯一的,即只有一个x为y的父亲;当x为女性时,x在“child(x,y)”中也为唯一的,即只有一个x为y的母亲。但是把两者合在一起时,x在“child(x,y)”中就不是唯一的了,可能是y的父亲,也可能是y的母亲。
语义特征alone的这一性质称为“局部性”(locality),指特定变元x仅对特定的特征或特征组合而言是唯一的;一旦这一特征或特征组合不存在或改变了,那么x的唯一性特征也必须删去。我们通过在特征谓词上添加上标的方法,来标明唯一性特征的局部区域。以下几条规则中有alone,因此必须加上适当的局部区域限制标记:
在lawl中,x、y的唯一性是仅对“husband(x,y)”而言的,故在husband及两个alone上添加同一上标。
在law2中,alone要和husband和male/female都是同一上标,这是因为只有这两个条件同时满足时,唯一性才成立。有了这一限制,前面的Ⅴ就得到了恰当解释:
在law9中,由于不必把x和y的唯一性一起标明,所以也不必在两个child上加上标,当采用“alone(x)”时,只需与“child(x1,x)”同上标就行。
在law10a中,只有当“alone(x)”是针对“R(x,x1)”的唯一性时,才能转换为“self(x,y)”,所以也要有相同的上标。Law10中的其他三条也都是如此。
alone的局部性限制,在运算过程中具有不可替代的作用。下面是一个例子:
姐夫=child(x1,x)∧child(x1,x2)∧elder(x,x2)∧husband(x2,y)
对它运用law1,如果不考虑alone的局部性,会得到:
=child(x1,x)∧child(x1,x2)∧elder(x,x2)∧husband(x2,y)∧male(y)∧female(x2)∧alone(y)∧alone(x2)
又由于“child(x1,x)∧child(x1,x2)”与“alone(x2)”合并在一起,满足law10b,所以有:
=self(x,x2)∧elder(x,x2)∧husband(x2,y)∧male(y)∧female(x2)∧alone(y)
显然这是错误的,因为x2既然比x年龄大,那么就不可能和x是同一个人。
要避免犯这样的错误,必须加上局部性标记。比如,对“姐夫”运用law1得:
这时,“child(x1,x)∧child(x1,x2)”与“(x2)”不满足law10b,因此就不会错误地多算一步。
2.4 亲属关系自动推理的运算流程
一个完整的运算推理系统,仅有几条辅助运算和化简运算之类的规则是不够的,还必须制定更高层次的控制性规则,来规定分别运用这些规则的条件和顺序。下面,我们用一个流程图,来表示基于语义特征分析的亲属关系自动推理的具体的操作过程。详见下页图1。
控制规则是一种元规则(meta-rule),它不仅规定了不同的运算规则的使用条件和先后顺序,还规定了运算的具体进程和最终目标。下面举一个例子来说明:
已知:老张是张三的父亲,翠花是张三的伯母;求解:老张与翠花的关系。
解答:检索定义库有:
父(张三,老张)=child(老张,张三)∧male(老张);
伯母(张三,翠花)=child(x1,张三)∧male(x1)∧child(x2,x1)∧child(x2,x3)∧elder(x1,x3)∧husband(翠花,x3)。
合并得:child(老张,张三)∧male(老张)∧child(x1,张三)∧male(x1)∧child(x2,x1)∧child(x2,x3)∧elder(x1,x3)∧husband(翠花,x3)。
在第一选言枝中,既有“female(老张)”,又有“male(老张)”,二者矛盾,故删去该选言枝;在第二选言枝中,既有“female(x1)”,又有“male(x1)”,二者矛盾,故删去该选言枝;最后仅保留第三选言枝,得:
最后,检索定义库得到:“翠花是老张的嫂嫂”。
这种运算跟前面的简单合一运算所得的结果是一样的,但运算过程复杂了许多。道理很简单,完备性与简便性是成反比的,为了保证完备性,就必须牺牲简便性。这是我们不得不付出的代价,因为只有这种具有完备性的运算系统,才能完成简单合一运算不能完成的任务。比如,上文讨论的问题,已知:“老张是张三的父亲,翠花是张三的舅母”;求解:“老张和翠花之间的关系”,采用简单的合一运算是得不到结果的,采用我们这里提出的系统,可以得到正确的结果:“翠花是老张的内兄或内弟的妻子”。具体的运算过程从略。
3.结语
本文提出的基于基本语义特征的亲属关系的表示和推理方案,具有下列优点:
1)描写亲属词语所需的语义特征和推导亲属关系所需的运算规则,都大大地减少了;在建立亲属关系的自动推理系统时,只需要一个很小的知识库就足够了。
2)这套语义特征及其相关的转换规则,不仅覆盖了所有的亲属关系,而且还具有数学上的先验正确性,准确率达到百分之百。
3)完备的规则和完整的运算流程,圆满地解决了“死循环”、“误推导”等计算问题。
4)适用于一切语言中的亲属关系自动转换,只需给出该语言中亲属关系的具体定义。
5)只需改变有关参数的设定,就可以很方便地反映一夫多妻、离异、再婚(续娶和改嫁)、收养等因素造成的更为复杂的社会关系及相应的错综参差的亲属称谓。适用于动态的、多样化的社会学系统。比如,可以通过取消“husband(x,y)”中x的唯一性来体现“一夫多妻”关系,通过引入“adopt(x,y)”来反映领养关系等。这也是我们下一步的工作重点。
本方案的缺点是,运算量大大地增加了,为程序实现带来了相当的难度。不过,这并不是不可克服的困难。可以先编一个程序,用本方案的方法建立大知识库,再用大知识库方案编制实际使用的程序,从而将完备性与高效率完美地结合在一起。而这一切进步,都源于深入的语义特征和语义关系分析方法的应用。这强化了我们多年来的一个信念,语言学知识应该是自然语言的信息处理的基础,绕开句法、语义知识进行语言计算无异于缘木求鱼。
标签:亲属关系论文; 语义分析论文; 逻辑运算论文; 关系运算论文; 集合运算论文; 关系逻辑论文; 父亲论文; alone论文;