自然语言理解机制

                                                           周锡令

                                                 北京信息工程学院

 

    让计算机理解自然语言是当前的热门话题之一。然而,什么是“理解”?机器有没有可能具有“理解”的能力?一直是有点含糊不清的问题。有人说,如果计算机能够把一种自然语言翻译成另外一种,就算是理解了。又有人说,如果计算机能够把一个句子分析成一棵句法树,就算是理解了。这种说法有点像在回答“什么是马?”的问题时说“马能跑,马吃草料”一样,不能说完全不对,但是令人觉得没有说到点子上,没有揭示理解过程的实质。

 

上小学的时候,我们的主要任务之一是“认字”。那时我们头脑中的印象是:只要认识了“字”,知道每个字的意义,就能读书看报。等到上中学,我们跟着外语老师在课堂上把主要时间用来分析英语句子的结构,这时我们才知道:为了看懂文章,除了知道“字”和“词”的意义以外,还要掌握对句子加以分析的能力。由于我们在能够记事的年龄就已经大致掌握了分析中文句子的能力,因而听自己的母语时并不自觉有这一过程。只是在学习另外一门语法不同的语言时,才感觉到语法的重要。就好像人们的心脏和肺部虽然一直在不停地搏动和呼吸,而人们平时并不自觉,只有到了生病导致心慌或者呼吸困难时才感觉到这一重要而不可缺少的生命过程一样。

 

待到参加工作,野心勃勃地想让计算机也能理解自然语言的时候,我们一开始也是这样想的:只要在计算机中装备电子词典,编写出指导计算机分析句法的程序,计算机就大致上能理解并进一步翻译用自然语言写出的文章了。

 

然而几十年来的实践告诉我们,这种想法错了。于是我们不能不怀疑,我们是不是还遗漏了一项对理解自然语言十分重要的机制?

 

答案是肯定的:为了理解自然语言,还需要些别的东西,这就是语言接受者头脑中的“知识”。自然语言理解最重要的本质就是 外来符号信息在信息接受者已有知识上的嫁接过程

自然语言理解 是 外来符号信息 在信息接受者已有知识上的 嫁接过程

如果在书上读到 “湖广熟,天下足” 这句话, 要理解它,必须有以下知识:

l        地理知识:知道“湖广”是中国南方省份的名字

l        经济知识:知道“湖广”是中国南方盛产稻米的地区

l        人文科学知识:知道在中国的历史上,天灾人祸不断。保证天下的老百姓有饭吃,一直是历代朝廷的头等大事

 

把这些知识都融合到这句话里面去,才能知道它的意思是:“湖南,湖北,广东地区的稻米一旦成熟,天下老百姓的粮食就够吃了”。

 

有人会争议道:这个例子使用的是文言文,如果是普通人讲的“口语”,就不会有这种问题。但此事不尽然。“他是吃股票的。”这句话小孩大约听不懂,然而一般市民都听得懂。因为后者知道现在有许多人在“炒股”,而“吃”有“靠什么为生”的意思。

 

当然还可以争议道:这个例子使用的是不正规的市井语言,如果是既可以口头说,又可以印到正规出版物上的 “白话式书面语言”,就不会有这种问题。的确,用“白话”书写的自然语言,大大减轻了阅读者调用自己头脑中知识的负担。然而仍旧有相当数量的句子需要读者或听者调用相关的知识才能加以理解。看见“鲁迅回忆录”这几个字,你必须知道鲁迅虽然写了很多杂文,但却没有像外国总统或其他名人那样写过自传体的“回忆录”的事实,才能知道这五个字是其他人回忆鲁迅而写出的“关于鲁迅的回忆录”。对于脍炙人口的例句:“鸡不吃了”,你必须运用对周围环境的知识才能正确理解这句话的含义。如果是在收音机的广播剧里听到这句话,或者在小说中读到这句话,那就要运用先前听到的故事情节来判断当时的情景是在饭桌上还是养鸡场里。

 

事情还不止于此,语言符号与知识之间的“嫁接”过程还常常引起对外来符号信息的自动矫正或扭曲现象。

理解过程中的矫正和扭曲

人工智能领域的专家曾经遇到一个问题:在向计算机中的知识库中添加“新知识”时,如果新知识与知识库中已有知识相矛盾,应该如何处理才能保证“知识库完整性”?

 

一种办法是认为新来的知识是如此权威,一定是正确的。因此只有将知识库中已有知识加以适当改造,使之与新来的知识相容。这种做法叫做“知识顺应Knowledge accomodate)”。

 

另一种办法是认为知识库中已有知识是正确的。因此只接纳新知识中的正确部分,或者将新知识加以适当改造,使之与库中已有知识相容。这种做法叫做“知识同化Knowledge Assimilation)”。

 

人在接收语言符号信息时,显然也有类似过程。当外来信息与己身的知识或信念发生矛盾时,人们会觉得非常不安乃至觉得痛苦。由于人们总是偏向于认为自己头脑中已有的知识是通过长期的努力和生活经验积累下来的,轻易不会放弃。因此“知识顺应” 这种痛苦的思想改造过程只有在特殊情况下才会出现。 一般在聆听或阅读自然语言携带来的信息时,大量出现的是“知识同化”现象,也就是说,我们总是设法把外来的语言信息尽可能以与自己已有知识和信念相容的方式加以“理解”。下面举两个例子:

 

1:

我们都注意到,听者能够根据自己的生活常识,把说话者所说语句中的不合理处纠正过来。当我们听到有人说:“上午打了一场篮球,累得够呛。洗了一个澡,睡了一小时午觉,才恢复了疲劳”。我们根据生活常识知道,“洗了一个澡,睡了一小时午觉”之后,一定是精神抖擞。因此立即把“恢复了疲劳”矫正为“恢复from疲劳”。 反之,当我们听到某人“经过疗养恢复健康”时,立即理解为:“恢复to健康”。[可见,汉语除了“缺乏形态”之外,在用来表示词与词之间的关系的介词的使用上,也是比较松弛的。需要读者(听者)依据他的知识来猜测。]

 

2:

每当一个新词(例如“面向对象”,“知识经济”,“信息时代”)出现并流行开来,不同领域的专家对同一个名词术语往往有不同的理解,对他所感兴趣的事物全都贴上流行的标签,从而在交流时造成种种障碍。这种全世界普遍出现的现象生动地说明了不同知识背景和生活经历的人对同一语言符号在理解过程中进行了不同的改造。

 

3:

当然也有向误解、曲解方向扭曲的例子。林彪摔死在蒙古温都尔汗以后,各地传达了中央下发的文件。随后在成都市井地区的不识字的老妪之间就流传着如下的故事:

 

林彪带了一群(叶群)老婆,坐了三个撮箕(三叉戟)飞跑了,结果掉到井里(蒙古境内),捞起来还是温都都的(温都尔汗)。

 

这样的误解显然和听者十分熟悉旧戏文里有关古代皇帝宫闱轶事和《封神榜》之类的神话故事,而从来没有听说过“三叉戟”“温都尔汗”这些时髦名词有关。

 

由此可见,人们在理解他人的言语时,时常揉进新知识与已有知识之间的“嫁接、改造”过程。这一点无论是词语义项的判断还是语法方面的分析过程都没有包含进去的。这种新知识与已有知识之间的“嫁接、改造”过程往往带有“猜谜”的性质。我以为,逢年过节时我们常做的“猜谜”游戏,乃是日常生活中语言理解过程的这种特性的夸张与变形。

嫁接过程中知识的动态变化

如果英汉翻译软件在一篇故事中读到以下一段话:

 

1935年和我在重庆预见张先生。他告诉我一件事....”

 

计算机从第一句话得知了故事发生的时间,因此第二句话中的“告诉”必须使用过去式。为了做到这一点,计算机必须把第一句话带来的新知识保存在堆栈中与此故事有关的帧里,直到读完故事之后才可以撤销这一记忆。

理解的深度

对同样一段话,不同的人理解的结果和深度不一样。其原因显然就是由于各人的知识量与结构不同,从而与各人头脑中已有知识结合的程度大不一样。

 

丈夫气气喘嘘嘘地从外面回来,对家里人说他跟着公共汽车跑了两站路,节省了五毛钱。妻子顶了一句:

 

       “下次你跟着出租车跑回来,还可以省十元钱。”

 

汉语句法分析程序可以对这句话进行分词、确定词性、划分短句、画出句法树。但是对这句话的语义一无所知。这种理解只停留在语法分析的层面上。

 

这个家庭的五岁的儿子能够理解大人所说的话的字面上的行为方面的含义。认为他妈妈就是要他爸爸下次跟着出租车跑回来。这种理解停留在字面本身的语义层次上。

 

有一定文化修养和社会知识的成人,才听得出这句话的幽默含义和“弦外之音”。

 

报上登载的各国首脑互访的消息对普通平民来说,只是意味着他们飞来飞去互相表示友好而已。但是对于熟悉世界局势和内幕新闻的外交界的人士,这种消息蕴含着丰富的内涵和对今后国际形势发展的预示。

 

可见,理解的深度实际上是对“外来语言符号信息与 信息接受者所拥有的知识相结合的深度与广度的一种衡量”。由此产生了一个问题,对于某种应用目的(例如机器翻译)来说,需要的理解的深度是多少呢?

翻译和理解的关系

文字翻译历来有“硬译”和“意译”之争。“硬译”派强调多保留原文形式方面的东西,而把“与信息接受者的知识相结合的过程”较多地留给译文读者自己去完成。这种做法显然会给译文的读者留下沉重的负担,好象去咀嚼一些很坚硬难以消化的食物。但“硬译”可以避免一些由于译者水平不够只好胡猜乱懵而产生的无法恢复的信息扭曲。“意译”派强调译文的“顺”,但是如果翻译者知识水平不够,就会传出译文读者无法纠正的错误信息。

 

翻译者是否只有在对原文内容透彻理解的基础之后才能进行翻译?对这一问题的回答要看情况而定。

 

对于形式化的人工语言,翻译者只需辨别原文中形式上的各种结构,然后进行词语和结构的替换就可以完成翻译工作,而且不丢失语义。“C语言编译器”,“从Fortran语言到C语言的转换工具程序”,都是明显的例子。那么,C编译器在作这件事的时候是否达到了理解的层次呢?恐怕不少人认为,compiler 只是一种翻译机械,因为它决不可能获得程序员在阅读C源程序时对其内容的理解(每一行语句、每一个子程序有什么功能等等)。但如果使用拟人的说法,把C编译器看成是一个知识面非常狭窄的“人”,他所拥有的知识只是C语言的词法和句法知识。它在扫描源程序的过程中,会有如下的感觉:“哈哈!这一串字符是一个 if….else…then… 语句。哦!这一串字符很像一个 function 的头部,…".如此等等,这就是来自源程序的符号信息与C编译器内部知识的结合过程。因此,可以认为C编译器对源程序能够进行某种程度的理解,只不过层次较浅(限于句法层次,达不到功能和用途的层次)而已。

 

对于自然语言,有一些句子,特别是比较简单、完整和规范化(well-formed)、的句子,似乎也可以简单地用“词语替换”、然后适当调整语序的办法来完成翻译过程。当然,也有相当一部分句子需要听(读)者用自己的知识来加以补充之后才能形成语义比较完整的语句。这时候,翻译者的知识水平就显得十分重要了。

 

试设想有一位以中文为母语的计算机专家C和另一位以英文为母语的计算机专家通过翻译I聊天。翻译I是英语文学系毕业,对计算机软件一无所知,就出现可以下场景

1:

E说:“There are about 300 application programming interface functions in this system.”

I 把它逐字翻译成:“这一系统里含有300个左右的应用编程接口函数。”

尽管I根本不知道“应用编程接口”是什么东西,但是C却能完全领悟E的意思。这是因为E和C的头脑中都有这一词汇并知晓它在软件中的含义。
这个例子说明:对于双方共享的知识,词语只需起“调用对方头脑中相应知识的作用”,翻译者可以只具有浅层的理解。

2:

会谈过程中,谈到对Smith先生的意见。C说:“Smith先生是个二百五。”

I如果把它逐字翻译成:“Mr. Smith is two hundred and fifty.”E就会莫名其妙。这是因为C头脑中有如下常识:“二百五”是一个数词,但如果把它和某个人物联系起来,它就具有“傻冒、浅薄”的含义。然而E的头脑中完全没有这样的知识。因此,为了正确地完成翻译任务,I 一方面必须也有这一社会常识,另一方面,又知道在英语中,“two hundred and fifty”并无这一含义,从而改用 “stupid person”或者“smatterer”的字眼。

这个例子说明:对于双方非共享的知识,翻译者需要具有深层的对语句内容的理解,并加以适当处理,向对方传递某种知识,才能完成翻译任务。

 

自然语言翻译软件的正确率一直停留在60%左右的原因似乎就在于:对后一类需要理解其内容以便向对方传递某种知识才能完成翻译任务的语句缺乏有效的处理手段。原因很明显:计算机缺乏知识。更具体地说,计算机缺乏以下两件东西:

(1) 必要的社会常识和专业领域知识

(2) 运用这些知识来理解、补充、校正外来语言符号信息的能力。

我觉得,自然语言翻译与人工语言翻译之间的最大区别就在这里。

自然语言处理软件的功能边界和考核问题

任何工程都需要消耗资源,而资源总是有限度的。另一方面,从语言学的角度观察,自然语言本身就是一个没有边界的开放系统。若涉及到知识,“吾生有涯,而知也无涯”,就更没有边际了。即便是作为万物之灵的人,如果撇开群体,只讨论具体的一个一个的人,他的知识面和他所能阅读的范围也是十分有限的。因此对于自然语言信息处理软件,更需要以合理的方式加以分级,并提出不同的要求。

 

以通用机器翻译软件为例,我们不妨设计三种用来评估翻译软件的题库

 

l        题库A:包含那些只需要做到对词语、句法分析即可完成翻译工作的语句

l        题库B:包含那些需要对语句或语句中某一部分的内容有所理解才能完成翻译工作的语句。为此要求计算机装备有一定自然与社会科学常识以及运用这些常识来理解语句中有关内容的能力。由于“常识”也是无边际的,因此可以设计若干分题库:
… 题库B1:学龄前常识水平
… 题库B2:小学毕业生常识水平
… 题库B3:初中毕业生常识水平
… 题库B4:高中毕业生常识水平

l        题库C:包含若干前后有联系的语句群,以考核翻译软件动态增删知识的能力。

 

然而,什么是“学龄前常识水平”,“ 小学毕业生常识水平”,…呢?吁,这又是一项有待开展的基础研究工作,并已超出本文的范围,在此姑且置之弗论吧。然而在此之前,我们总得想一个临时性的解决办法。我认为,在面向自然语言理解的常识库未能实现之前,通过人机交互对原始自然语言文本进行改写或者添加注解是当前实现计算机自然语言理解的具有现实性的途径。关于这一想法的实现拟在另一文中讨论。

面向计算机的汉语标注和改写

为了帮助因知识水平不够而无法读懂某一类文章的人们,我们常用改写成平易浅显的文体,例如书店中常见的英语文学普及读物:《简爱(缩写本)》,《聊斋(白话本)》等。或者用添加注解的办法给他们补充知识:例如添加了许多注解的《唐诗三百首》《宋词选注》,《唐宋传奇》等等。

 

由于当前的计算机在知识水平方面远逊于人,为了让计算机来理解利用自然语言书写的文献,也可以采取同样的措施。如果写作者是在计算机上撰写文章,那么让计算机采取“我很笨,但我勤学好问,决不‘不懂装懂’”的态度,通过写作软件与作者的对话,让写作者适当地改写,或者实时地添加注解,形成加有标注的汉字流,就可以达到帮助计算机理解正文的目的。

 

1:

写作者在计算机上写道:“她打了一件浅兰色的长袖毛衣。”

计算机从机内词典中 查到“打”字有二十多个义项,拿不准该使用那一个,就列出一张清单让写作者选择。

写作者用鼠标点选“编织”。

计算机就加上一个标注成为〖她打(编织)了一件浅兰色的长袖毛衣。〗放在机器里供随后的处理使用。

2:

写作者在计算机上写道:“湖广熟,天下足。”

计算机问:“湖广”是什么东西?

写作者答:就是“湖南、湖北、广东地区。”

计算机问:你的意思是“湖南、湖北、广东地区熟了”?

写作者觉得不对,补充道:“湖南、湖北、广东地区的稻米熟了”

如此下去…,直到双方都满意为止。

 

在计算机中装备知识的问题

综上所述,为了使计算机能够对自然语言信息加以处理,需要给计算机装备:

l        以电子词典。分词与句法分析程序为代表的语言知识

l        以社会生活常识、文化知识为代表的“常识”

l        如果要在某专业领域内使用,则还需要装备专门的“领域知识”

l        运用上述“知识”的能力。这种能力大约也需要以某种形式的知识-“运用知识的知识”-或称“元知识”

怎样在计算机中装备知识是一个极具有挑战性的问题。人工智能专家在各种专业领域知识的表达方面已经进行了许多工作,然而在“社会生活常识、文化知识”方面如何表达却似乎讨论不多。

 

在机器翻译领域,目前可以见到的知识装备形式有:

l        用来携载语言知识的电子词典。分词与句法分析程序值得提出的是,如果扩大电子词典的边界,把“短语”也收罗进去,那么有许多原来需要利用生活常识加以处理的问题也可以通过查词典的方式加以解决。(见以下“模式识别 与 语法分析 之间的界限”一节)。

l        用来处理各种特殊语法现象的大量“规则”。它们在某种程度上以混合的方式表达了一些语法知识和生活常识。然而如果这些规则是以不断补窟隆的方式产生的,就不会有很强的系统性,甚至出现自我矛盾的现象。

l        科学院声学所黄曾阳先生开创的“层次概念网络体系HNC”是我首次听闻的在语言理解方面认真开展的系统性的“常识”表达工作,而其“效应转移链”和“句类分析”则可能体现了运用上述“常识”的手段。我怀着很大的兴趣关注与期待这一工作可能带来的成果。

易理解性(可读性)问题 - 语言和文章的通顺、流畅性

和自然语言理解相关的一个问题是语言或文章的“易理解性”。“某某人的文章流畅或者生涩”的这类说法从语言的角度表明理解一次谈话或者一篇文章的难易程度。“流畅”或者“生涩”只是我们对主观上的感觉的粗略描述。语言学家们能不能从客观的角度探讨一下,语言或文章中是哪方面的因素或者性质会会影响“可读性”,从而造成我们的“流畅”或者“生涩”感觉呢?我想把自己的一些感觉列出如下,供有关专家参考:

l        由下向上捆绑时需要的回溯次数
听他人说话时,语气的停顿和声调的抑扬可以帮助我们大致划分句子的结构。然而在读别人的文章时,我们就要进行“把字组成词、把词合成短语、短语合成句或子句”的捆绑工作。进行这种捆绑工作时,我们是依据字与字、词与词之间的“亲和力”来判断的。由于捆绑的方式不止一种,在阅读长句、特别是翻译文章中的长句时,我们常常会发现第一次的尝试无法进行到底,不得不从头已另一种方式再试一次。这类回溯常常令人气馁。专业术语译名的不恰当选择常常带来这方面的困扰。最显著的例子之一是,软件中把 class 译为“类”。由于在与软件有关的文章中 class 的使用频率很高,而“类”字又可以和许多汉字有很强的亲和力,从而是人常常拿不准如何捆绑。例如遇到:
       “这类声明......”,
这种句型时, 您就拿不准
 它是指:  "这个 /类/ 声明了......" (This class declares ....),
 还是指:  "这一类的/声明/ ......." (This kind of  declaration .....),
 还是指:  "这一/类声明/ ........." (This declaration of class ....).

l        翻译文章难读的原因
不同的自然语言有不同的词法和句法规则,因而对不同的句式和句型会有不同的适应性。以英语为例:一方面英语句子中的词语之间有间隔、免除了“分词”之苦。另一方面由于词语有形态变化,对某一词语的较长的修饰成分可以放在被修饰词语的后面(也就是说短语或句子的中心词位置靠前),因即使写出较长的句子,也能让读者比较容易地捕捉住句子的中心词及主要(重点)成分。

汉语在以上几方面和英语相反,因而不适于书写太长的句子。英语特别是日语中的句子可以长到好几行。如果保持原来的句式,翻译成中文之后,动词名词不分,主动被动混淆,时态和其他词语形态变化等附属信息统统丢失,句子中心词的位置被推到后面,读者的“猜谜”负担就大大地增加了,有时甚至会造成
“已经知道这个句子的意思的人能够看懂,而正需要从其中获取知识的人则怎么也读不通”的结果。我国理工科博士生的论文中,经常出现这种现象。因为他们多半读了大量的外文资料,用汉语来表达时,保持原来的句式当然省事,而且他们自己读起来也觉得很流畅易懂。因为读自己的文章只不过是调动他们头脑中早已存有的相关的知识而已,即使句子再浓缩一些也不影响理解过程。

这并不是说汉语就不如英语,而是说各有所长与所短。汉语最大的优点是“简洁”。我们的祖宗历来崇尚文字的“凝练”。话说得越精炼,越容易记得住,越能流传千古。汉语的特点使得它宜于用来书写短句。英语中的一个长句应该对应汉语中的一个句群。(这意味着,汉语中,句间的耦合程度要比英语大。很可能,汉语中的一个句群才相当于英语中的 Sentence 的概念。) 除此之外,汉语虽然有分词的麻烦,但是有一些与其他汉字结合能力很弱的
小字眼(例如虚词,方向词) 可以用来: [我想不出这些”小字眼“应该叫什么词,暂时胡编乱造一下]
―― 作为“分隔符”或“锚点”使得读者一眼就能看出句子成分之间的边界。
―― 使具有多种词性的词语(例如“记录”)在句中的词性鲜明化。
文章写得流畅的人多半善于使用这种“小字眼”使得读者在阅读时“捆绑”过很少需要回溯,或者用不着来回地去猜测某个词是动词还是名词。反过来,省略掉这些“小字眼”往往增加了阅读的困难。例如:最近看到的一篇博士生论文中有这样一句话:

 

该技术利用项目文档中记录的应用系统的语境信息分类和组织框架等可复用资源。

 

第一次读起来有点儿费劲。如果加上几个“小字眼”:

 

该技术利用项目文档中记录的应用系统的语境信息分类和组织框架等可复用资源。

 

就容易理解得多。

-加“了”不仅显示地表明了“利用”是一个动词,而且说明了“过去时态”。

-初次看到原句中“文档中记录”这一字符串,很容易理解为“某某文档中的记录”。把“记录的”改成“所记录的”显示地表明了“记录”是一个动词。

当然,把“分类”当作及物动词来使用依然不大符合汉语的习惯,因此最好进一步改为:

该技术利用项目文档中记录的应用系统的语境信息框架等可复用资源进行分类和组织。

l        可预测性
良好的造句风格能够使读者在阅读的中途对随后的字句怀抱着某种预期。

下面一句话:

           程序文件应明确受权批准设计更改的人员

是对英文句子“Procedure should identify the personnel authorized to approve design changes.”的直译。其中, “
明确,“受权,“批准,“设计,“更改”五个动词紧密并列, 如果不是预先已经看懂(猜懂)过这个句子, 多半叫人不知所云。然而,读原文却没有这个问题。对于这种情况, 翻译者应该想法去掉由于汉语缺乏形态变化而带来的模糊性。例如, 把它译成:

 

        程序文件 应明确 哪些人员才 有权批准 “设计更改”。

 

当读者读到“哪些人员才”时,他就会自然预期后面应该紧接着什么样的信息。类似地,以下句子:

 

                   TickIT审核员的一般指南

 

是对“Guideline for TickIT Auditor” 的直译,给人十分模糊的感觉。它可以被理解为“审核员拥有的的一般指南”,也可以理解为“审核员使用的一般指南”。这是由于原文中的“for”没有被译出的缘故。若把它套进“供…使用的…" 句式中:

 

                   TickIT审核员使用的一般指南

 

读来便顺畅得多。

 

如上所述,小字眼(例如:而,以致于,从而,…)通常具有比较孤立的性质,和其他汉字没有什么亲和力。它们的使用一方面减少了句法分析(或者说自下而上的捆绑过程)中的组合歧义出现的可能性,另一方面又有明确词性或暗示性的预期作用。因此虚词的掌握与灵活使用是提高汉语文章可读性的重要手段。目前专业性的翻译资料的可读性差,重要原因之一是译者未能充分调用虚词手段来弥补汉语“不分词、无形态”的缺陷。不知道现在中学语文老师是否可以多总结并传授一些这方面的知识?

 

模式识别与 语法分析 之间的界限

认识客观事物的方法有两种。对于比较简单,一下子就能把握的对象,往往采用模式识别办法。例如,识别一个图标,认出一个汉字、一个双字词。对于内部结构比较复杂的事物,例如一个长句、一整篇文章,我们的大脑一下子把握不住,就只好采用分析的办法来各个击破:先辨别出内部的结构,然后一一识别结构中的每一部件,最后再将它们综合起来,形成一个总的印象。显然,只要有可能,我们总是优先使用前一种方法,以获得高的效率。

 

具有不同阅读能力的人,两者的分界是不一样的。刚识字的孩子,要用手指点着方块字一个一个地念。经常阅读的人显然可以一眼把握更多的字句。读书破万卷的人在读他本行的书籍时,也许真能一目十行。中学老师教我们“快读”的办法是:不要从左到右逐行扫描,而是把眼光放在每一行的中部,从上向下扫描。对于套句连篇、了无新意的大块文章,很多人都是采取这种阅读方法,以珍惜生命。

 

那么,对计算机而言,这个分界划在哪里为好呢?我感觉目前的中文信息处理软件把这个界限定得似乎低了一点。当前的做法是:

l        在“字”的一级,我们通过OCR技术来识别,或者通过输入方法的使用把字的识别过程交给用户去作。

l        在“词”这一级,我们是通过分词算法与“查词典”的方式让机器来识别“词”的意义和属性。

l        对于短语或者更大一些的结构,则完全依赖分析方法。例如,有一篇文章在讨论《动名语义关系》时作如下分析和解释:

    “吃食堂”表示动作和处所,

    “吃快餐”表示动作和方式,

    “吃公家”表示动作和对象, 等等。

可是我还听到过“吃亚运会”,“吃利息”,“吃老本”,“吃官司”。上海方言里以“吃”打头的这类说法还有很多:“吃瘪(受压制)”,“吃生活(挨打)”,“吃排头(挨训斥)”等等。如果把这些字词都作为分析的对象,企图归纳出若干规则时,恐怕最终会陷进去无法自圆其说。

 

与人相比,计算机最不善于作分析,而更善于“博闻强记”。计算机中除了“词典”以外,为什么不能有"惯用语典"或者“短语典”?为什么不把上述难以用规则对其内部加以分析的短语收入“短语典”呢?这样作恐怕要灵活得多。我们在生活中听到别人说这类短语以及像“救火”,“恢复疲劳”,“爱听不听”时,似乎从来不去作深入短语内部的语法和语义分析,而是从大脑中直接调出他的意义。

 

类似地,除了短语,对于某些常用的句型,像“兹定于...”,“如果...否则...”,“只要...,那就...”,以及某些八股文章,是不是可以收入“带参数的句典”? 可以认为,基于实例的机器翻译软件是采取这种思想方法(paradigm)的典型例子。

 

结论

l        语言理解是外来语言符号信息在信息接受者已有知识上的嫁接过程,其中包含了由于“知识同化”而带来的矫正、补充和扭曲现象。

l        理解过程有深浅之分。这取决于语言符号接受者的知识水准与结构。对于一个用来处理语言信息的软件产品,所需的理解深度视应用目的而定。

对于人工定义的形式化语言,理解的深度可以限于词法与句法分析层次。或者说,我们在定义这样的语言时,就是要求做到这一点。
对于自然语言,由于我们在生活中使用解自己的母语的时候,总是假定对方具有一定知识水平,从而习惯于以调动对方已有知识的方式来说话和写文章,以求得语言的简洁。因此,如果要求计算机来处理这样的语言信息,计算机也必须拥有相应水准的知识,并以某种适当的方式与外来的语言符号相结合,才能达到我们的要求。

l        面向自然语言理解的常识库的规划和设计应该提到日程上来。

在面向自然语言理解的常识库未能实现之前,通过人机交互对原始自然语言文本进行改写或者添加注解是当前实现计算机自然语言理解的具有现实性的途径。
阅读更多

没有更多推荐了,返回首页