惟存教育--科学课程 回到首页 回到主页

“俯下身来”和计算机讲话

――对《受限汉语》的反思

作者:周锡令
2007-4-10


在“理解”的基础上进行自然语言处理
俯下身来和计算机讲话
怎样才算“俯下身来”
自然语言只是对语境的补充
  ★物理环境
  ★知识环境
  ★公共知识背景内容的引用
“标注”比“受限”更重要
和“反对意见”的讨论
课题分解
  ★标点符号系统的扩展
  ★帮助“补足缺省成分”的人机交互辅助工具
  ★拟定句型集合
结束语
附录:对古文进行标注的例子
  第一步:加上标点符号
  第二步:把省略的语句成分补上去
  小结

在“理解”的基础上进行自然语言处理

  以机器翻译为代表的计算机自然语言处理已经进行了很多年,有很长一段时间人们认为这种工作可以归结为机械性质的“字符串的代换”工作,因此不需要对所处理的文字内容有所理解。在此看法基础上进行的工作一开始还有一定的成效,然后就长期停滞不前了。

  多年的经验使得越来越多的从事自然语言处理的工作者相信:要突破这一壁垒,使“计算机自然语言处理”工作更上一层楼,必须让计算机对所处理的文字内容有某种程度的理解。那么,作为一种机械的计算机在企图理解自然语言的时候,会遇到什么样的问题呢?

俯下身来和计算机讲话

  大家都知道,说话要看对象。和不同的对象说话,要使用不同的词汇、句型、语气……,这样才能使对方理解自己的意思。把在大学专业课堂上的讲话方式拿来讲给小学生听,肯定会失败。你必须俯下身来,用儿童熟悉的语汇和简单的句式叙述。同样地,把用来在“人与人”之间沟通信息的“自然语言”原封不动地交给既没有感知周围世界的“五官”,智力和知识水平又比“人”差远了的计算机去处理,当然也会“问题百出”。

  《受限汉语》就是基于以上认识而提出一个研究课题。我在1990-1995期间从事这一课题的研究时,心中一个非常朴实的想法就是:不管计算机怎样“笨”,我们只要把话语说得尽量简单明白,终究可以达到计算机可以正确处理的地步。需要解决的问题仅在于,我们自己能否忍受这样十分繁琐和水平低下的谈话方式。而《受限汉语》课题所研究的内容就是:
  (1)拟定一套简单而又完备的“句型”,它应当简单得让计算机很容易进行句法分析,但是又足够“完备”,具有足够的表达能力;
  (2)开发一个软件工具,引导用户使用这些句型来写出自己所要表达的意思。

怎样才算“俯下身来”

  句子、文章都是有内部结构的。但是对计算机说来,他所收到的乃是一维的字符流(character stream)。要从这“一维的字符流”中“看出”里面的语法结构,不是一件容易的事情。《受限汉语》的目标就是要把允许用户使用的语句的结构复杂性降到计算机能够处理的程度。从这个观点来看,当初的这个出发点也不算错,但是这并不是问题的全部。

  经验表明,这一做法遇到了两方面的困难:
  首先,自然语言中的符号串所传递的信息只是对语境(对谈双方共享的语境)中所含有的大量丰富信息的一种补充。因此,“语境中已为双方所共知的信息”往往可以在语句中被省略。要是遇到这种情况,无论你把句子的结构限制到怎样简单的地步,计算机都会晕头转向。

  其次,人们在说话时,从来不会先在心中意识到自己要去使用哪一种句型,只是根据自己所要表达的语意方面的要求,一个概念一个概念地说下去。因此,要求他一面遣词造句,一面还要照顾到计算机的水平去选择句型来说话,实在是一种令他感到非常别扭的事情。

自然语言只是对语境的补充

  对话双方都处在一定的环境中,不需要通过语言符号就可以从周围环境中提取的信息可以称之为“语境信息”。能够提供“语境信息”的环境有许多层次:

 ★物理环境

  “促膝谈心”可以说是谈话双方共享物理环境最多的一种情况。周围的风光,双方的眼神,面部表情,肢体动作,话语的声调……都可以传达很多信息,甚至是语言符号所难以传达的微妙的信息。如果话题所涉及的对象就在双方可视、可听闻的范围内,句子中即使缺少指称这一对象的成分,也不妨碍对方的理解。【例如,一面目视走进公园大门的某人,一面说:“来了,来了”这个句子中缺省的主语(谁来了?)已经由说话人的目光传递给听话人了。】

  “视频对话”就差了一点。这时双方各自所处的已经是两个不同的物理环境。但是双方的面部表情,话语的声调,甚至肢体动作……还可以互相看见,仍然可以通过它们传递一些信息。

  “电话交谈”又差了一点,面部表情,肢体动作……也看不到了。

  “书面信件来往”更是退了一步。大家都知道,同样一句话,配上不同的面部表情和声调,往往具有不同甚至是相反的含义。面部表情和声调的缺失常常引起误会。比如说,一面脸上带着诚挚的微笑,一面说:“你真行!”,和板着脸说这三个字时的含义完全相反。因此落笔写信时,在遣词造句方面就应该比口头谈话要采取更加慎重的态度。这一情况也说明:当前在MSN和QQ平台上通过短信交流时,在书写文字的同时,善于使用那些“表情符号”是如何的重要。

  从“促膝谈心”到“视频对话”到“电话交谈”到“书面信件来往”,对话双方共享的物理环境一步一步退化,对于说话人的说话水平就要求越来越高。于是讨论比较微妙敏感的话题时,经常听到人们说:“电话里讲不清楚,我们还是约一个时间当面讨论吧!”

  由于计算机当前都没有具备视、听、闻方面的感官和相应的感知能力,所以人和计算机的对话被限制在类似“书面信件来往”的低水平共享环境中,所以话语的组织需要特别完备和严密,才能达到互相正确理解的目的。

 ★知识环境

  对话双方除了“身处其中”的物理环境以外,还广泛利用双方共同的知识文化背景。

  1)长期的公共知识背景
  公共知识按人群划分。若以一般成年人作为一个群体,它们的公共知识就是“常识”。若按照人们从事工作的专业领域来划分群体,那么他们共有的专业知识也是他们的“公共知识背景”的一部分。

  2)短期的知识背景
  如果A和B讨论一部两人都在前不久看过的电影,或者共同目睹过的某一事件的全过程,那么他们所说的话,比起和另一位没有看过这部电影或者没有目睹过该事件发展过程的老兄C讨论时,就可以简短得多。

  3)前文传递的知识背景
  A在和B说话的过程中,已经说过并被B听到的话(前文)构成了另一种语境,也就是通常所说的“前后文(context)语境”。

 ★公共知识背景内容的引用

  对话双方有了公共知识背景,谈起话来就可以采取“引用”的方式使对话变得快捷、高效和浓缩。在自然语言中存在哪些“引用方式”及其分类是另一个需要单独研究的专门题目,以下只能举若干例子。

  肢体语言:在“促膝谈心”式的对话中,可以用肢体语言来指明使用周围语境环境里的某一对象来取代被省略的主语或者话题。例如前面所说例子中用眼睛注视某一人物,说:“来了,来了”。还可以利用“眨眼”,“讽刺性的冷笑”使所说的话的实际含义和字面上的含义相反。

  成语和典故:这个过程就好像在计算机程序里调用子程序库中的子程序一样。如果把古代发生过的知名故事看成一个“典故库”,那么汉语中“四个字四个字”的大量成语就是引用这些典故的子程序名。

“标注”比“受限”更重要

  用不着说,目前的计算机还没有配备如人脑所拥有那样广博的知识库,即使我们作出巨大的努力,为电脑建立起一个具有相当规模的知识库,它也不具有像中华文化经常要求的“举一反三”那样的“灵活而巧妙的运用”其中知识的能力。

  既然如此,我们对电脑说话的时候就只好“俯下身来”。各种编程语言(programming language)就是采取这一态度的成果。但是,当今的编程语言和在人和人交流中所产生的自然语言之间的差距太大了,而且这些编程语言主要是用来描述“算法”的。因此,现在我们要讨论的是,怎样在自然语言这一基点上采取措施来“俯就”计算机。

  这一点我们可以在生活中找到很好的先例,那就是许多学者和老师在普及中华古典文献的所采取的措施:

1.在形式方面,通过 “标点符号”对文章的内部结构进行标注。这是古文中从来没有过的东西。

2.在语意方面,对于因年代久远以至后人难以捉摸的典故(历史故事),则在正文中添加注解。比如说,文章中有“他家里这么困难,你给他补助一百块钱,简直是‘杯水车薪’。”这句话,就在相应注解中叙述‘杯水车薪’所指的这个故事。

3.在与白话文比较之下相对十分精炼的古文中,往往省略一些句子成分;在诗词等韵文中为了照顾格律的要求而违反通常的习惯,使用倒装句或缩略句。对此,需要把省略的东西补上去,把倒装句纠正过来。

  对于计算机,也可以采取类似的措施:

1.现代汉语的“标点符号系统”对文章内部结构进行的形式标注非常有效,但是对于智力低下的计算机来说,这一系统的标注能力还不够,还需要扩展。如何扩展呢?这是一个有待研究的问题。不过有些想法已经初见端倪,比如说:首先希望在“语块”之间添加分隔符号;其次,能不能把句子的“中心动词”标注出来?第三,在名词和动词容易混淆的地方能不能也加上词性标注?

2.在注解中叙述相应成语或者典故所指的故事,对于计算机来说还不够,因为它即使知道了这个故事,也没有能力“举一反三”地把“杯水车薪”理解为“钱不够”。所以要扩大词典,把这些典故都包含进去,直接解释为“给的东西太少,解决不了问题。”

3.对于句子中被省略成分,最好把省略的东西补上去;对于违反通常习惯的倒装句,要把它纠正过来。

4.简化句子结构,把结构过于复杂以及太长的句子分解为几个短句。这是《受限汉语》课题中考虑过的问题。

和“反对意见”的讨论

  【1】开展“自然语言处理”的目标,本来就是要千方百计的克服困难,提高计算机的智能,让计算机自动地来处理自然语言。现在你要“人”“俯下身来”将就计算机,岂非见困难就退?

  这里的确有一种不得已的折衷和妥协。要么你将就把计算机根本无力对付的文章让它处理得一塌糊涂地交还给你。这样做的结果往往是把事情弄得“越帮越忙”【你要是有过审阅英汉机器翻译生产出来的汉语译文的经验,就会知道,看这种天外来客式的文章比起你直接读英文原文来要头痛的多!】;要么你花一些力气,把本来是给“人”看的文章改造得适合“计算机”看的东西。

  这样想,我们至少开辟了一个新的技术工作面。

  以“机器翻译”为例。假定有一位不懂英文的人想要把自己写的一篇文章翻译为英文。由于他不懂英文,所以就借助于“中翻英”软件来做这件工作。又由于他不懂英文,所以对于机器翻译的结果无法检查。现在设想放在他面前的“中翻英”软件有两种工作状态:一种是直接把给人看的文章交给它,这样翻译出来的英文质量很差。另外一种是请你事先对这篇原来是给人看的文章按照计算机的水平作一些标注和简化,然后再进行翻译。在翻译过程中,计算机遇到拿不准的情况是还可以和你对话,交流。这样翻译的结果的质量肯定会高很多。

  【2】文章那么多,谁有功夫和耐心为计算机进行逐篇文章的标注呢?

  如果写作人嫌标注工作麻烦,也可以委托专业人员来做,就像当年的打字员。或许还可以形成一个新的产业或是职业呢?【教育部语言文字信息管理司李宇明司长和信息产业部原计算机司杨天行司长不约而同地分别在电子邮件和电话中强调了这一点。

  【3】不同的人标注出来的结果会不会有很大差异?

  不同的人作出的标注肯定会有差异,所以需要为标注工作制定一个规范,按照这个规范去培训人才。并且设计出与之对应的软件工具来帮助规范的执行。

  【4】软件工具能不能也帮助减轻一些标注工作的负担,甚至实现一定程度的标注自动化?

  我们当然可以要求计算机尽量“自动”进行标注,并且把它所作的标注结果显示给作者看,请他检查这些标注做得对不对。这就在一定程度上相当于计算机以某种方式把它对你的文章的“理解”反馈给作者看;不对的地方请作者纠正。人与人之间的交流不也是这样子的吗?【以往的机器翻译完全省略了这种反馈核对的过程,实际上是对计算机提出了比对人还要高的要求!】

  值得指出的是,所有这些交流过程都是在文章作者的“母语”领域内完成的。

  【5】可不可以先作一些小规模试验,看看“标注”的效果如何?

  应当是可以的。

  比如说,首先以标注出每个句子中的“中心动词(heading verb)”为例。看看在“标注”和“不标注”两种情况下汉英翻译的质量有多大提高。

  另外值得实验的一个问题就是:“空格”的加入密度。如果像最初提出这个问题时那样要求每一个词左右两边都留空格,就会觉得太繁琐(因为在大多数情况下,“分词”软件已经做得不错,只有在容易混淆的情况下才需要添加空格);而且在汉语中什么叫“词”,什么叫“短语”,什么叫“语意块”,往往是连续过渡的,没有截然的界限。

  一种模糊地规定可以这样表述:当我们拿起稿子念一个长句时,凡是你要歇一歇换口气的地方,最好就在这里插入一个空格。如果把这一点纳入规范的要求,也可以通过已有的翻译软件的前端(句法分析部分)看看“空格”的加入密度怎样才算合适。

课题分解

  要是觉得上面叙述的意见有一定的道理,那么就要问:按照这种思路,后面我们应该怎样开展工作呢?

 ★标点符号系统的扩展

  标注的添加显然可以做得非常细。但是这样一来,就增加了工作量。做的太粗,计算机又很困难。所以要确定分界线放在那里为好。

  不妨首先去寻找那些对于计算机帮助最大,而人添加起来也不怎么费事的标注。我认为这类标注包括:

●在“现代汉语标点符号系统”中添加“半个空格”,用来作为“语块”或者“容易混淆的词组”之间的分隔符;

●把句子的“中心动词”标注出来。可以用粗字体,或者特殊的括号。给计算机看的这种标注在显示给人看时,样子可以不同。

●在名词和动词容易混淆的地方能不能也加上词性标注?【例子见另文《懂了以后才能看懂的句子》】

●对于内部结构过于复杂的句子,利用括号把其中的层次表现出来【例子见另文《懂了以后才能看懂的句子》】

 ★帮助“补足缺省成分”的人机交互辅助工具

  以上已经说明,人们在相互交流时,常常借助内外两种“语境”,把许多本来应该说出的成分略去不说,从而达到简洁,快速的目的。这种现象,在古汉语中特别明显。一个句子中总是保留最重要的“中心动词”。而动作的发起者(主语)和动作的对象(宾语)这两种名词性成分常常被省略。这些被省略的成分当然都可以通过语境(前后文,当时的历史背景……)猜出来。但是要现代人做到这一点,很要绞一些脑汁。附录中给出了一个例子。

 ★拟定句型集合

  交给计算机处理的句子在形式上当然也不能太复杂和冗长。原先进行《受限汉语》的课题的时候,目标之一就是要寻找一组有足够表达能力,而对计算机说来又比较容易处理的句型集合。这个任务初看简单,但是论证起来(你怎样证明你所选择的这一套句型集合是最合理的?)却不容易。

  另外一个困难是怎样引导“人”按照你所选择的“句型集合”来写他的文章?或者怎样把他按照原来的习惯写出的文章重新改造为用你所选择的“句型集合”来写的文章?

结束语

  我们大家都注意到信息时代的两个现象:

  一是人们使用的电脑越来越多,许多办公室里,电脑的数量接近乃至超过工作人员的数量。

  其二,信息爆炸的结果,使得人们在工作时需要涉猎的资料越来越多,资料的数量比人们有时间阅读的数量多好多倍。

  怎么办呢?唯一的办法就是让计算机预先替我们泛读这些海量的资料,然后从中选择出比较有价值的,再交给工作人员亲自阅读。

  换句话说,以后我们写文章的时候,我们的心目中不能忽视计算机的存在,因为它们也是我们所写文章的重要读者。于是“俯下身来和计算机讲话”就成为一种必要的心态。让计算机更多的理解我们,然后它们就会为我们作出更多的回报。

附录:对古文进行标注的例子

  《古文观止》中选的第一篇也是年代最久远的一篇古文:
    ──选自《十三经注疏》本《左传》

十年春齐师伐我公将战曹刿请见其乡人曰肉食者谋之又何间焉刿曰肉食者鄙未能远谋乃入见问何以战公曰衣食所安弗敢专也必以分人对曰小惠未徧民弗从也公曰牺牲玉帛弗敢加也必以信对曰小信未孚神弗福也公曰小大之狱虽不能察必以情对曰忠之属也可以一战战则请从公与之乘战于长勺公将鼓之刿曰未可齐人三鼓刿曰可矣齐师败绩公将驰之刿曰未可下视其辙登轼而望之曰可矣遂逐齐师既克公问其故对曰夫战勇气也一鼓作气再而衰三而竭彼竭我盈故克之夫大国难测也惧有伏焉吾视其辙乱望其旗靡故逐之

  粗粗一看这段先秦时期的古文,觉得真是够为难的。那么语文老师是怎样为学生们一步一步来化解这些困难呢?

  第一步:加上标点符号

十年春,齐师伐我。公将战。曹刿请见。
其乡人曰:“肉食者谋之,又何间焉?”
刿曰:“肉食者鄙,未能远谋。”乃入见。
问:“何以战?”
公曰:“衣食所安,弗敢专也,必以分人。”
对曰:“小惠未徧,民弗从也。”
公曰:“牺牲玉帛,弗敢加也,必以信。”
对曰:“小信未孚,神弗福也。”
公曰:“小大之狱,虽不能察,必以情。”
对曰:“忠之属也,可以一战。战则请从。”
公与之乘。战于长勺。
公将鼓之,刿曰:“未可。”齐人三鼓,刿曰:“可矣。”齐师败绩。
公将驰之。刿曰:“未可。”
下视其辙,登轼而望之,曰:“可矣。”遂逐齐师。
既克,公问其故。
对曰:“夫战,勇气也,一鼓作气,再而衰,三而竭,彼竭我盈,故克之。
夫大国难测也,惧有伏焉。吾视其辙乱,望其旗靡,故逐之。”

  分好句子,又加上了这些标点符号以后,感觉顺当多了。让我们进一步按照“每个句子只含有一个中心动作”的习惯来检查一下(结果如下表)。我们会发觉,大概是因为古代书写汉字很困难(麻烦,字要一个一个刻在竹简上),所以古文里的句子总是写得很精炼,往往只写出中心动作(谓语成分)。而动作的发起者或者动作的对象经常不明说,让读者自己按照情理去猜度。

  对于这一系列的“空缺”,人们要依靠自己的生活经验与历史知识加以填补:在这个例子中,问题比较简单一点。因为文章的头三句话就为读者建立了具有三个角色[齐师,鲁庄公,曹刿]的语境,而且在随后的文章中也没有添加。所以句子中没有明显提及的主语和宾语只需在这三者中进行选择就可以了。于是可以进行以下的第二步。

  第二步:把省略的语句成分补上去

十年春,齐师伐我【鲁国】。【鲁庄】公将战。曹刿请见【鲁庄公】。
【曹刿】的乡人曰:“肉食者{大官们}谋之,【你】又何【必参与其】间焉?”
刿曰:“肉食者鄙,未能远谋。”乃入见【鲁庄公】
【曹刿问鲁庄公】:“【凭】何以战?”
公曰:“衣食所安,弗敢专也,必以分人。”
对曰:“小惠未徧,民弗从也。”
公曰:“牺牲玉帛,弗敢加也,必以信。”
对曰:“小信未孚,神弗福也。”
公曰:“小大之狱,虽不能察,必以情。”
对曰:“忠之属也,可以一战。战则请从。”
【鲁庄】公与之【同】乘【一辆车】。【和齐军】战于长勺。
【鲁庄】公将鼓之【击鼓进军】,刿曰:“未可。”
齐人三鼓,刿曰:“可矣。”齐师败绩。
公将驰之【追击齐军】。刿曰:“未可。”
【曹刿】下视其【车】辙,登轼而望之,曰:“可矣。”遂逐齐师。
既克,公问其故。
【曹刿】对曰:“夫战,勇气也,一鼓作气,再而衰,三而竭,彼竭我盈,故克之。
夫大国难测也,【我】惧【他们】有伏焉。
吾视其辙乱,望其旗靡,故逐之。”

  小结

  从以上的例子可以看出,通常在句子中“中心动词”总是最重要的。因此在古汉语中,为了简短,一个句子中总是保留最重要的“中心动词”。而动作的发起者(主语)和动作的对象(宾语)这两种名词性成分常常被省略。这些被省略的成分当然都可以通过语境(前后文,当时的历史背景……)猜出来。为了“猜出”这些被省略的成分并且明显地表达出来,有两种手段:

●一是根据角色的性质从语义上来判断。比如说,上面这篇文章中的第三句话“曹刿请见”是“请见”谁的问题;在三个角色:齐师,鲁庄公,曹刿中,只有“鲁庄公”最合适。“曹刿请见齐师”和“曹刿请见曹刿”都不合情理。

●而是根据文本中“距离的远近”从形式上来判断。比如第六句:“乃入见。”谁“入”?这里缺了一个主语。按照“就近继承”的原则,因为前一句的主语是“曹刿”,因此可以猜想这一句应该扩充为“曹刿乃入见”。

  让计算机根据语义来判断是比较困难的。而按照“就近继承”的原则从形式上来判断就比较容易。但是这种判断不一定总是正确的。

  怎么办呢?比较合理的出路是采取“交互方式”。对一道题目没有把握的学生可以把自己给出的答案回馈给老师请求判断自己答得对不对?因为在大多数情况下“就近原则”是成功的,这样也减少了“人”的工作量。

  总而言之,对于这种需要智力程度比较高的填补“省略成分”的工作,计算机是比较困难的,所以凡是需要计算机处理的文章,如果希望获得比较好的效果,应该事先通过“标注”把这些“坑”填平。而这一工作可以在人机交互的环境中借助工具来完成。

原文发布地址:http://www.nlp.org.cn/docs/download.php?doc_id=1203

网络地址:www.being.org.cn/sciedu/nutsc.htm
发布时间:20080710日 最新更新:20080710

回到首页 回到主页

关于我们 | 版权说明 | 教育网志 | 联系编辑
Copyright © Being Lab. Some Rights Reserved
版权所有 惟存教育实验室