关于自然语言理解的理解,本文主要内容关键词为:自然语言论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
自从去年读了朱德熙教授写的小册子《语法答问》,这才知道我对汉语语法一窍不通。不管是讲了几十年的母语却依然对自己的母语语法茫然而觉得惭愧,还是虽然不懂语法却并不妨碍自己讲汉语甚至写文章而感到骄傲,对我们普通人来说,我们是怎样学会说话和听懂别人讲话的,依然是一个很大的谜。
语言学家和计算语言学家对这个问题的研究已很精深。和他们相比,我们只能靠直觉来捉摸这个问题。借用《君王论》的作者在解释他身为一个普通臣民却来写“应该怎样当皇帝”的书并非僭越时所用的话:“风景画家如想描绘山岭与高地,他们就得置身于卑谷。”卑谷中普通人的直觉有时说不定也能触发专家们的一两点灵感。这就是写这篇短文的目的。
1.人们相互交流时使用的“多层信息结构”
人们在生活中不断积累对周围客观世界以及对自己内心世界的认识的同时,也力图把这些认识反映到符号系统中。包括自然语言在内的符号系统的威力与影响是如此强大和无所不在,以致于人们有时候会陷于“执迷于文字语言,反而打消自家性灵”的错误。按禅师们的说法,就是“落入言筌”。(“言筌”者,语言的笼子也。)反映在自然语言理解的研究方面,我们是不是有时也过分强调了语言在人与人之间沟通过程中的地位,忘记了交流双方的共同的知识基础也十分重要,甚至是更本质的一种因素。
支持以上猜想的第一个证据是:除了人类以外,动物界中不存在像人类自然语言这样复杂的符号系统,可是动物与动物之间显然是可以交流沟通的。这就说明,语言在生物体交流沟通中起的是“锦上添花”的作用。
证据之二是:外国专家来华作报告时,英语语言水平很高的外语专业毕业生的口译效果往往不如外语水平虽低但对专业十分熟悉的专业技术人员。
人们交流(说话,写文章)的目的是什么?答曰:是为了传递信息。那么传递信息的目的又是什么?按信息论的观点是为了减少“不确定性”。举例来说,一位家住北京的朋友要告诉我他的电话号码:在他说话以前,从00000000到99999999范围内这近一亿个号码对我来说都有可能是他的电话号码。他每说出一位数字,这一不确定性便减少一个数量级。等到八位数字都说完,不确定性就消失了。
信息接受者在加工对方发出的的字句流以期减少信息的不确定性时,实际上并不是完全依赖字句流,而是往往同时考察了以语言为中心的“多层信息结构”。这种“多层信息结构”可以大致表述如下:
层次 语音文章
1
当前语句中的语音流 当前语句中的文字流
2
上文(以前说过的话) 上下文
3
腔调,重音,音隔 文章格式,插图
4
口形,表情,姿态,手势 文章体例(敬体),用词色彩
5
情景(对话者周围环境)发表文章的书刊,日期
6
社会历史背景社会历史背景
一些典型的例子如:
(1)当前语句中如果使用了代词,接受者理解时就要用到层次2中的信息。
(2)为了分辨对方说的是“<乒乓球>拍卖完了”还是“<乒乓球拍>卖完了”,接受者进行理解时就要用到层次3中的信息。
(3)在阅读英文教科书中“The boy saw a girl with a telescope.”这句英文时,如果文字旁边有插图,就可以判断到底是男孩还是女孩拿着望远镜,也要用到层次3中的信息。
(4)听到说“你真行!”,为了判断对方到底是表扬还是挖苦,就要用到层次4中的信息。
(5)当你在街上远远听到有人嚷:“一块一块,一块一块”时,你多半弄不懂他的意思。待你走到他跟前,看见说话人前面的小桌上放着切开的西瓜,你马上就明白他的意思是:“一块(钱买)一块(西瓜)”。括号中被他省略的字眼完全由层次5中的信息补足了。
(6)听到有人说:“鸡不吃了”这四个字时,为了判断到底是鸡不吃东西还是人不吃鸡,就要用到层次5(周围环境是养鸡场还是餐馆)中的信息。
(7)如果上述那位北京的朋友在告诉电话号码时只说了后七位数,从理论上说,可能作为他的真正电话号码的数字仍有十种。可是由于我知道北京电话升到八位的时间还不久,而且一般家用电话升位的规则是前面加6。就这样,我利用层次6中的信息消除了剩下的不确定性。
(8)在大街上看到“电脑培训”字样,为了知道这指的是“计算机操作使用训练”而不是“计算机辅助教学”,就要对当前社会上“会使用计算机的人好找工作”的情况有所了解。(层次6的知识)
2.共同的知识是自然语言理解的重要基础
设想如下情景:一个幼儿玩弄烛火被烫伤了手指,他大约会举着手指说“痛”“火”这两个字。这两个字不成句,两个字之间似乎也没有什么语法关系,但是对于他的父母来说已经足够了,一切都已了然。汉语中十分古怪的双字词“救火”的来源恐怕也是如此:首先是呼吁抢救生命财产,其次是要说明原因:起火了。“救”和“火”原本应该是彼此分离的两个字,两者之间并没有把这两个字连读时的语序所指示的那种语法关系。如果真要按一般的语法关系去理解,那就不是要去扑灭火,而是要添柴泼油免得火熄灭了。
以上例子说明:如果“语境”提供的信息强烈、鲜明,交谈时只要补充一两个“关键字眼”就足够了。而且它们之间的次序也不怎么重要。
如果要交流的信息比较复杂,可能就无法仅用少数几个“关键字眼”来表达。但是若交谈的双方都具有有关的共同知识,那往往就可以通过“对相关知识的引用”来传达信息。
当前畅销书《数字化生存》的作者在该书中举了一个例子:几位朋友聚会,当谈话中提到某一话题时,由于他和他太太之间对于这件事有某种共同的知识,他只用一个比特(眨一下眼睛)就达到了“相视一笑,莫逆于心”的目的。其中所传递的信息如果要传递给另外一个没有这种共同知识的人,可能要花费十万比特才行。这个例子说明:当“语境”给谈话双方明显地暗示了双方共同熟知的某一主题或者故事时,一个比特就能传递十分复杂的信息内容。在日常生活中,我们所说的“默契”“递一个眼色”“用眼睛说话”都属于这一类情况。
要是“语境”未能向对方直接提示一个具体的故事,那仍然可以以某种编码的形式来“引用”对方脑海中已有的故事情节。《数字化生存》一书的作者紧接着上例说:“有对夫妇把数百个笑话记得滚瓜烂熟,因此只需提到笑话的编号,彼此就能心领神会。寥寥几个数码就会唤醒他们对整个故事的回忆,使他们大笑不止。”其实,这种做法在汉语里真是司空见惯,那就是成语的使用,只不过我们不是利用“数码”而是利用几个(在大多数情况下是四个)汉字作成的“字符编码”罢了。除了“成语”之外,家喻户晓的诗词、古文中的脍炙人口的名句都可以起类似的作用。喜欢用典故的古人对这种方式更是乐此不疲。
虽然古代形成的“成语”已经相对固定,但当今社会却大量地产生与古代成语类似的“现代缩略语”,诸如宣传精神文明的“五讲四美”、市容整顿中的“退路进厅”之类。这些缩略语虽然寿命有限,但其使用频率在一段时期却非常之高。如果真想用计算机处理自然汉语,对这种语言现象显然不能置之不理。看起来我们需要在计算机中安装一个允许用户自己动态装填新出现的缩略语的设施,就好比KV300防病毒软件允许用户自行升级,以对付时时刻刻会出现的新病毒一样。
如果事情更复杂一点,需要传递更加复杂的思想,那就意味着要将“知识”由一方传递给另一方,这时就真正需要“讲故事”了。“知识”通常表述了客观世界中存在的事物(对象、实体)以及事物与事物之间的关系,它们呈现出各种复杂的结构。这种结构必须以某种方式映射到语言中的字词流中。这转而又意昧着语言中必须含有某种双方都同意以特定方式去理解的结构。这时,“语法”的作用和必要性就开始显现出来了。
3.惯用句型
不少人有这样的经验:从小学,经过中学、大学,学习了十几年的英文,课堂上天天分析文法,最后可以看看专业书籍,但说不出,听不懂。后来学了《英语900句》,听说能力就进展快多了。《英语900句》这本书里基本上不讲语法,或者把语法材料放在非常次要的地位。它只是让你反复作Pattern DriLL(句型练习)。小孩子学说话也从来不专门去学习什么语法,他只是听大人讲话,一句一句地记住各种句型以及适合使用这种句型的场合。以后遇到类似情景,就拿出来用,常常令做父母的惊奇不已。听话和说话的时候,在时间上根本不允许你做什么语法分析和综合。在噪音嘈杂的地方,你只要断断续续听见几个关键字,利用惯用句型匹配法和外层的信息,你往往也能理解对方。
依赖“语法分析”的手段来进行理解的办法主要用于阅读结构复杂的长句子。反过来说,在说话时,由于时间上不允许做这样的语法分析,你就听不到复杂的长句。
4.语法
“语法”是一个叫人想不大清楚的问题。语法是怎么产生的,它的本质到底是什么?为什么学习母语时不用去读语法教科书,而在学外语时却要?在自然语言沉重而缓慢的进化过程中,尽管各种新的词汇和语法现象不断地产生,淘汰筛选的规则似乎只有一条:不妨碍交流,保持信息传递过程中有一定的确定性和简洁性就可以了。正因为如此,语法规则总是人为的、后加上去的东西,是一种事后的归纳。那里面总是存在许多例外。于是,不同的学者很可能归纳出不同的理论来。在当今汉语语法的种种概念主要存在于学术界中,绝大多数普通人基本上没有这方面的概念。在这样的情况下,我们可以认为:其间的优劣可以用“谁的理论更能符合大多数实际存在的语法现象,最有规律性和简明易记,例外的情况最少,谁的理论就最好”来判断。然而语法规则的制定仍旧有它的积极意义。规则一旦制定出来,并且通过教育工作获得社会的承认,就有助于表达、交流复杂的思想。而且,一旦某种语法理论得到了大多数人的承认,尤其是得到官方主管教育和语言文字部门的认可和强有力的支持,这种理论就会取得正统的地位,反过来制约语言进化中的的无序性,形成一种良性的循环机制。
不少人探讨过:与其他语言相比较,汉语有什么特点。公认的说法之一就是“汉语缺乏形态变化”。从我们普通人的观点看,这意味着汉语在“多层信息结构”的第一第二层中放进了较多的,允许通过外层信息来加以修改的不确定性。“鸡不吃了”这句话中的“吃”可以是主动式动词,也可以是被动式动词。如果讲这话的地点是在养鸡场,它就被限定为主动式动词;如果讲这话的地点是在餐桌上,它就被限定为被动式动词,或者像上面所说的把这四个字看成“鸡”和“不吃了”两个离散意群。这种做法在英语,俄语,日语里都是不允许的,在汉语里就可以。这种特点是好还是不好呢?
如果说它好,我们就说汉语是高度灵活的,并且是简明的。依靠“多层信息结构”的外层信息,可以使话说得言简意赅。反之,如果要把信息全部集中到“多层信息结构”中的第一、第二层,话就要说得比较啰嗦。当我们阅读法律条文、飞机票扉页上的合同条款这类不论在何种场合都期望只能有一种准确的理解的文字时,总会觉得很费劲。这大概也是中国人学习俄语或日语时,常常觉得这些外国话很啰嗦的原因。如果说它不好,那就是鲁迅在他的杂文中多次提到汉语的不严密性。灵活性和不严密性是一件事物的两面。朱德熙先生的语法体系中有两个特点。一是“特别强调形式的作用”,重视“结构上的平行性”,二是“以词组为本位”。第一个特点和普通人相通。我想,讲汉语的人中,百分之九十九的人没有“主谓结构”“偏正结构”“连动式”之类的概念,他们只是凭“语感”,而“结构上的平行性”正是语感的来源。至于第二个特点,熟悉递归下降法的软件人员大概是最喜欢不过的了。
5.使用自然语言的两种方式
由此可见,人与人之间沟通时使用语言的方式可以分为两种。一种是主要依赖于语境和会话双方的共同知识背景,语言中的字句只起“画龙点睛”的作用。在这种方式里,语法往往得不到尊重,语义甚至可以逆语法规则而行。“救火”和“恢复疲劳”就是这种语言的典型例子。另一种方式中,语境和双方的共同知识背景退居次要地位,信息主要依靠具有比较严格语法结构的字句流来传达。当然,两者之间的界限不是截然的,人们在使用语言的时候,两种方式有时是混合交织在一起的。
可是,这样的划分还是有益处的。首先是因为人们理解这两种语言成分时使用的机制不同。理解前一种成分的机制类似于“猜谜”,而理解后一种成分的机制则主要依靠“分析”。在过去若干年里,计算语言学界主要集中力量研究语法在其中起主导作用的后一种语言成分。其理由是容易理解的。因为这一种语言成分有规律,值得研究,有搞头,而且所有的人工语言也都完全属于这一类。但若忽略了以“猜谜”为基本特点的第一种成分,或者不分彼此地把研究第二种语言成分的方法和工具扩张到第一种语言成分,企图形成一个囊括全部语言现象的语法,那样做就太被动了。
6.模糊性的追求
以上讲到的“离散意群”表达方式有点和计算机程序中的“参数传递”方式相近。成语和典故的使用就相当于“对象引用”(Reference of Object)了。其实还可以有其他的类比。使用计算机的人都熟悉“*”和“?”这样的通配符。在自然语言中也有类似现象。例如,在文化素养高的人群里,也有类似的语言现象:电视剧里的老朋友中的一方于一忍再忍之后不得不对另一方所说的台词:“你要再这样下去,我就’甚么’了”是为了缓和口吻的威胁性。(东方之子》节目里接受采访的人物在听到采访记者的赞扬之后,面对麦克风回答说:“我当然要尽力把我的作品搞得‘甚么’一点”。回答者如此谦虚,连“好’字都不愿意直接说出来。这样的说话方式好比图象处理中的柔化(blur)处理,有意增加了语言的模糊性。
的确,在许多场合,人们会郑重其事地期望所用的语言传递带有不确定性的信息。在生活中有时会听到一些带有弦外之音的话,即是典型的例子。
在考虑自然语言的计算机处理问题时,至少在目前,我们追求的还是“不确定性”越少越好。在当前技术水平下,很显然最多只能让计算机去处理第一第二层次中的信息。这就意味着:信息源(不管它是人还是另一台计算机)应该尽可能把有用(非冗余)信息集中在第一、二层,最好全部集中在第一层。如若不然,由于计算机收不到更外层中的信息,不确切性便不能全部消除。举例来说,如果让计算机进行机器翻译,只给它一句英文句子:”The boy saw a girl with a telescope.”而不带其他信息,那么正确的译文应该是两句:“那男孩看见了一个带着望远镜的女孩。”“那男孩通过望远镜看见了一个女孩。”以保证原文和译文都带有同样的不确切性。
所以,在讨论“面向计算机的受限汉语”时,仅仅依靠写作工具是不够的。写作者在自己的心目中必须有明确的“我现在的写作对象是计算机”这样一种概念。这正好像虽然有了C+这类面向对象的编程语言,如果写程序的人心目中没有面向对象的风格,还是写不出具有OO风格的程序一样。
7.我们应该在怎样的自然语言级别上和计算机沟通
从事人工智能研究工作的专家多年以来一直在把各种专业领域里面的知识往计算机里面装。可是近年来他们发现,要真正发挥专家系统的作用,扩大其应用领域,起限制作用的因素往往并不是计算机拥有的专业知识不够,而是计算机缺乏常识。而让计算机拥有常识,并能加以运用,却不是一件容易的事情。
从事自然语言理解工作的计算语言学专家们是否也遇到了类似的情况?以“离散意群”“成语、典故引用”“通配词”“歧义性追求”以及部分的“句型匹配法”为特征的第一种语言成分看起来没有以“具有严密紧凑语法”为特征的第二种语言成分那么“有深度”,可是要理解它必须“拥有知识”,并能把收到的字句与所拥有的知识紧密结合起来完成“猜谜”过程。这好比把已有的知识和新收到的字句形成一组边界条件,计算机必须通过某种过程寻求满足所有边界条件的解。这一工作也许更难,更具有人工智能的特点。
我们应该采取甚么样的步骤来推进计算机的自然语言处理工作呢?首先要接受的一个观点是“受限”。既然每个人的接受能力无论从词汇量、专业知识、生活常识那一方面来说都是有局限性的,对计算机的要求更应该有一个范围,并且要尽量排除语义对通话双方所处环境的依赖性。
其次,要去掉“人为地添加模糊性”的要求。
由于现今我们研究的汉语语法基本上是“描述性语法”,我们在制定汉语语法规则的时候,应该只在语言的第二种成分的范围之内进行研究总结。否则,我们制定出来的规则将会是互相抵触,矛盾重重,难以自拔。
既然共同的知识背景是交流沟通的重要基础,那么我们在设计面向计算机的受限汉语之前,就应该先规定好能够和我们对话的计算机系统所具有的知识水平。一个显然需要但不那么容易达到目标是:
——认识三千左右最常用的汉字
——认识按某种标准所规定的汉语词库中所包含的常用词
——汉语成语小词典中的部分内容
——有一个供用户动态增添“流行缩写词”的库设施
——掌握常用“汉语句型?00种”并具有相应的匹配识别能力
——小学毕业程度的自然科学与社会科学常识
——一般城市人口的生活常识
为计算机系统装备这些知识显然不是轻而易举的事。费这么大的功夫当然是为了要它替我们干活。因此,这一计算机系统还应该具有“应用”以上知识的知识。举例来说,如果是为了让这一台计算机把我们所写的受限汉语翻译成英文送上Internet,那么它还应该拥有相应的翻译能力。
标签:自然语言理解论文;