1.1.3 自然语言处理的主要难点
自然语言理解和自然语言生成都是十分困难的任务,其根本原因是自然语言在各个层面都广泛存在着各种各样的歧义性或多义性(Ambiguity)。自然语言文本在形式上是由字符(包括中文汉字、英文字母、符号)组成的字符串。由字母或者汉字可以组成词,由词可以组成词组,由词组可以组成句子,进而组成段落、篇章。无论哪种粒度的语言单元,在从一个层级向上一个层级的转变中都存在着歧义和多义现象。形式上一样的字符串,可以被理解为不同的词串、词组串,并有不同的意义[1]。Joseph F. Kess和Ronald A. Hoppe甚至还提出了“语言无处不歧义”的理论[34]。在某种程度上,我们也可以说自然语言处理基础任务的核心就在于解决歧义问题。
1.语音歧义
语音歧义(Phonetic Ambiguity)主要体现在口语中,是由语言中同音异义词(Homophone)、爆破音不完全、重音位置不明确等原因造成的。汉字的同音异义现象则更加严重。汉语中只有413个不同的音(节),即使结合声调的变化组合,也仅有1277个音(节),而汉字则多达数万个,因此同音字非常多。在英语中,虽然同音异义词相对汉语要少得多,但是由于连读、爆破音、重音位置等造成的语音异义也非常常见。
例如:请问您贵姓?
免贵姓zhang。
在这组对话中,“zhang”既可以是“张”,也可以是“章”。汉语中同音异义词也非常多,例如,“chéng shì:城市、程式、成事、城事”“jìn shì:近视、进士、尽是”“shˇou shì:首饰、手势”等。
在英语中,虽然语音歧义的现象没有汉语中这么严重,但是也普遍存在。
例如:Please hand me the flower.请把花递给我。
Please hand me the flour.请把面粉递给我。
在这两句话中,“flower”和“flour”的发音相同,由同音异义词造成了歧义。类似的情况还包括“see(看见)与sea(大海)”“son(太阳)与sun(儿子)”等。
2.词语切分歧义
词语切分歧义(Word Segmentation Ambiguity)是指由字符组成词语时出现的歧义现象。对于英语等印欧语系的语言来说,绝大部分词之间都由空格或标点分隔。但是对于汉语、日语等语言来说,词之间通常没有分隔符,因此,在将连续的字符切分为词时就会产生歧义。
例如:语言学是一门基础学科。
这门语言学起来很困难。
在该例句中,“语言学”“语言”都是词语,在同一个句子中就会出现多种切分方法。这种切分歧义在汉语中普遍存在。我们将在第2章中详细讨论词语切分歧义的问题以及词语切分的方法。
3.词义歧义
词义歧义(Word Sense Ambiguity)是指词语具有相同形式,但是意义不同。这种歧义在各种语言中都广泛存在,通常越是常见的词语,其词义数量就越多。例如,在《现代汉语词典(第7版)》中,“打”字有两个读音,即“dá”和“dǎ”,可作为量词、动词和介词。当作为动词时,“打”字有24个义项[35]。
打(dǎ)动词
①用手或器具撞击物体:~门|~鼓
②器皿、蛋类等因撞击而破碎:碗~了|鸡飞蛋~
③殴打;攻打:~架|~援
④发生与人交涉的行为:~官司|~交道
⑤建造;修筑:~坝|~墙
······
英语中存在大量类似的情况。例如,根据WordNet中给出的定义,单词“bank”具有名词和动词两种词性。当作为名词时,其具有10种词义[36]。
bank名词
①sloping land (especially the slope beside a body of water)
"they pulled the canoe up on the bank"
②a financial institution that accepts deposits and channels the money into lending activities
"he cashed a check at the bank"
③a long ridge or pile
"a huge bank of earth"
······
⑩a flight maneuver; aircraft tips laterally about its longitudinal axis (especially in turning)
"the plane went into a steep bank"
我们将在第4章中详细讨论词义歧义的问题以及消除词义歧义的方法。
4.结构歧义
结构歧义(Structural Ambiguity)是指由词组成词组或者句子时,由于这些词或词组间可能存在不同的语法或语义关系而出现的(潜在)歧义现象。结构歧义有时也被称为语法歧义(Gram-matical Ambiguity)。冯志伟教授在文献[37]中对结构歧义进行了系统的描述,其中一些典型的结构歧义如下:
• “VP+的+是+NP”型歧义结构
例如:反对|的|是|少数人
在该类型歧义中,VP是一个双向动词,“VP+的”是主语,“是+NP”是谓语,整个句式是一个主谓结构。由于主语部分的“VP+的”既可以是施事,也可以是受事,因而会产生歧义。在这个例子中,既可以理解为“提反对意见的是少数人”,也可以理解为“所反对的是少数人”。
• “VP+N1+的+N2”型歧义结构
例如:咬死了|猎人|的|狗
在该类型歧义中,N1作为VP的宾语,述宾结构“VP+N1”加上“的”之后,作为名词N2的定语,整个结构是一个定中结构。但是N1又可以与“的”结合在一起作为N2的定语,构成“N1+的+N2”,这个名词词组作为VP的宾语,整个结构构成一个述宾结构。在这个例子中,既可以理解为“咬死了一条猎人的狗”,也可以理解为“一条把猎人咬死的狗”。
• “N1+和+N2+的+N3”型歧义结构
例如:桌子|和|椅子|的|腿
该类型歧义是由于连词“和”的管辖范围不同而造成的潜在歧义。在这个例子中,既可以理解为“桌子和(椅子的腿)”,也可以理解为“(桌子和椅子)的腿”。
类似的结构歧义类型有很多,例如“ADJ+N1+N2”“VP+ADJ+的+N”等。对这些歧义的不同理解会造成句法结构以及语义上的不同。句法分析的主要难度就是解决结构歧义的问题。我们将在第3章中详细介绍结构歧义以及如何进行句法分析。
5.指代歧义和省略歧义
在由多个句子组成的段落或篇章中,各种歧义依然存在,例如指代歧义和省略歧义。指代歧义(Demonstrative Ambiguity)是指代词(如“我”“你”“他”等)和代词词组(如“那件事”“这一点”等)所指的事件可能存在歧义。
例如:猴子吃了香蕉,因为它饿了。
猴子吃了香蕉,因为它熟透了。
上述两个句子的前半句完全相同,“它”可以指代“猴子”和“香蕉”,需要根据后半句的谓词决定指代关系。
省略歧义(Ellipsis Ambiguity)是指在自然语言中,由于省略而产生的歧义。省略是自然语言中一种重要的语言现象,尤其在汉语中省略现象非常常见。省略一些成分,在绝大部分情况下不会影响句子的表达,但还是会存在一些由于省略而造成歧义的问题。
例如:县政府同意乡政府报告。
在这个例子中,省略了助词“的”,因此使得该句具有两种解释:一种是县政府同意乡政府的那份报告;另一种是县政府同意乡政府做出报告。
6.语用歧义
语用歧义(Pragmatic Ambiguity)是指由于上下文、说话人属性、场景等语用方面的原因而造成的歧义。一句话在不同的场合、由不同的人说、在不同的语境下,都可能产生不同的理解。
(1)由于场景的不同,同样的句子可以有不同的意义。
例如:你知道南京路怎么走吗?
• 如果说话人是游客,说话的对象是警察,那么这句话的含义就是问路。
• 如果说话人同样是游客,但是说话的对象换成出租车司机,那么这句话的含义就是询问出租车司机是否可以送他到南京路。
(2)由于上下文的不同,同样的句子也可以有不同的意义。
例如,女子致电男友:地铁站见。如果你到了我还没到,你就等着吧。如果我到了你还没到,你就等着吧!!
在这个例子中,同样的句子“你就等着吧”,前一个的含义是请耐心等待,后一个的含义是你要有麻烦了。
从上述介绍中可以看到,自然语言中存在大量的歧义现象。对于人类而言,这些歧义在绝大多数情况下都可以根据上下文以及相应的语境和场景得到解决。这也就是为什么我们平时使用自然语言交流并没有感知到语言的歧义。但是,为了消除这些歧义,需要使用大量的知识进行推理。而如何表示知识和使用知识、如何完整地收集和整理知识以及常识都是极其困难的问题。莫拉维克悖论(Moravec's paradox)对自然语言处理依旧适用。也正是由于这些问题,才使得消除歧义成为自然语言处理中最大的难点之一。
此外,自然语言并不是一成不变的,而是在动态发展中,存在大量未知语言现象。新词汇、新含义、新用法、新句型等层出不穷[38]。
例如,新词汇:双碳、双减、绝绝子、社恐、元宇宙
新含义:躺平、打工人、凡尔赛、青蛙、潜水、盖楼
新用法:走召弓虽、YYDS、回忆杀、求扩列、orz
新句型:纠结的说、看书ing、一整个无语住
对于自然语言处理系统来说,这些层见叠出的语言现象也是巨大的挑战。无论是自然语言处理的基础任务还是应用系统,如何应对这些未知的情况都是巨大的挑战。
总而言之,自然语言处理的困难来源于非常多的方面,既面临来自语言本身所不可避免的根本性问题,也缺乏通用的语义表示以及语言意义的理论支撑。同时,现阶段自然语言处理方法所依赖的机器学习算法,还存在需要大规模标注数据、跨领域效果差、泛化能力和稳健性弱、模型不可解释等诸多问题。也正因为此,自然语言处理研究极具挑战性,能够称得上“人工智能皇冠上的明珠”。