第1章 初探自然语言处理

在当今数字化的世界中,人类与计算机之间的交流正变得愈发紧密和普遍。自然语言处理(natural language processing,简称NLP)作为人工智能领域的一个重要分支,致力于使计算机能够理解、处理以及生成人类日常使用的自然语言。从智能助手到在线搜索引擎,从语音识别到情感分析,NLP技术正在深刻地改变着我们与科技互动的方式。本书的第1章,将引领您迈出迈向自然语言处理精彩世界的第一步,探索NLP的基础概念、挑战以及应用领域。无论您是初次接触NLP还是已经在这个领域有所经验,本章将为您打开通向深入学习和探索的大门。

—— ChatGPT

如果有人问世界上最知名和使用最广泛的人工智能系统是什么,至少在本书撰写期间,答案毫无疑问是ChatGPT!自2022年11月30日发布以来,ChatGPT以其惊人的语言理解和对话能力迅速风靡全球,短短两个月便积累了超过1亿用户,同时也引发了学术界和工业界以大语言模型为焦点的前所未有的人工智能研发热潮。作为ChatGPT语言能力的示例,我们让ChatGPT为本章(一本自然语言处理教科书的第1章“初探自然语言处理”)撰写第一段话。本章开头的段落便是ChatGPT输出的结果。

ChatGPT正是自然语言处理的一个典型代表,它的背后是自然语言处理领域几十年来所发展出的一系列技术。然而,这一系列技术只是自然语言处理领域所积累的大量技术的一小部分。还有很多技术和方法,包括一些曾被认为非常重要的技术,却完全没有被ChatGPT所涉及。那么,这些被ChatGPT利用和忽视的技术分别是什么?前一类技术为什么能实现像ChatGPT这样惊人的效果?后一类技术是否真的不再重要,抑或只是暂时的沉寂?本书将通过理论讲解和代码实践,帮助读者探索这些问题的答案。

1.1 自然语言处理是什么

自然语言处理是指通过计算机自动实现人类语言的分析、生成和获取。之所以将人类语言称作自然语言,是为了与人造语言(例如程序设计语言)相区分。人类语言的分析是指将人类语言转化为某种计算机中的表示。人类语言的生成则是指将这种表示转化为人类语言。最后,人类语言的获取是指对上述分析和生成能力的学习。

接下来我们分别进一步讨论上述定义中的“人类语言”和“计算机中的表示”。

首先是针对“人类语言”的讨论。大众对自然语言处理的一个常见误解是认为每一种人类语言(例如中文、英语)都需要不同的自然语言处理技术。但实际上,自然语言处理技术大体上可以认为是语言中立的:几乎所有的人类语言都可以表示为离散符号的序列,使用大致相同的自然语言处理技术进行处理。当然,尽管处理不同语言的技术是相同的,但是这些技术所使用的具体的符号、规则和参数还是需要根据具体语言而定制。此外,很多语言会有一些独特的性质,因而处理方式上也会有一些小的差异,例如东亚的语言不使用空格来分隔词,因而在进行处理时一般需要额外增加分词的步骤。值得一提的是,上面所说的自然语言处理技术所使用的具体符号、规则和参数以及额外处理步骤,都需要通过手工定义或使用机器学习来获取,而这需要大量人力物力的投入。因此,即使自然语言处理技术是语言中立的,现有自然语言处理系统对于不同人类语言的性能差异是巨大的。像英语、中文这样的大语种因为有着大量资源投入,所以自然语言处理系统表现优异。而对于大量缺乏资源的小语种,自然语言处理系统往往表现很差,甚至完全不存在可用的系统。

其次是针对“计算机中的表示”的讨论。自然语言处理中所涉及的计算机中的具体表示方法与场景有关。一些场景并不需要对语言的内容进行完整的表示,而只需要部分相关信息,因此可以使用相对简单的表示方法。例如针对商品评论的情感分类任务,只需要分析出自然语言评论的情感极性(好评还是差评),而不需要了解评论的详细内容,因此表示方法可以简单地使用布尔变量。而另一些场景需要语言内容的完整表示,因此需要使用复杂的语义表示形式,例如形式逻辑。

1.2 自然语言处理的应用

自然语言处理技术经过几十年的发展,已出现了很多实际落地应用,一些典型应用如下。

  • 对话机器人,常见形式包括手机和智能音箱中的语音助手、电子商务网站的在线自动客服、电子游戏中的非玩家角色等;
  • 中文拼音输入法,尽管一个拼音会对应多个汉字,但现代的中文输入法往往能建议出最合理的汉字组合;
  • 拼写和语法检查,常见形式包括编辑器集成和在线服务;
  • 机器翻译,常见形式包括在线服务和翻译机;
  • 自动摘要,例如很多网购和点评网站会从众多用户对某个商品或店家的评论中总结出若干关键字;
  • 自动填表,例如一些快递服务程序可以将输入文字中的姓名、电话、城市、区域、详细地址自动识别并填写;
  • 新闻生成,对于一些新闻形式较为固定的领域(如金融市场、体育比赛),很多新闻网站基于数据表单自动生成文字新闻;
  • 财务报告合规检测,例如股票交易所对上市公司财务报告会进行自动审查,检测不符合法律法规的内容。

1.3 自然语言处理的难点

自然语言处理面临的主要难点来自人类语言的复杂性。这种复杂性可以从语言学对人类语言的分层研究体现出来:语音、音系、正字法、词法、句法、语义、篇章、语用等。而人类语言的理解和生成会涉及其中各个层面。下面来看一系列句子,并判断句子的情感极性(好评还是差评),以此说明语言理解所涉及的语言学层面。

这道菜很难吃。

判断这句话是差评仅需理解“难吃”的语义。

这道菜不怎么好吃啊。

判断这句话则不光需要对“好吃”的语义的理解,还需要根据句法判断“好吃”被否定了。

我没法说这道菜不好吃。

这句话更为复杂,需要根据句法发现对“好吃”的双重否定,从而推断句子的语义。

客人:这饮料很不错!

店家:这道菜怎么样?
客人:呃……

理解这番对话所暗含的“这道菜不好吃”的评价涉及语用。

这道菜尝起来像快餐。

要理解这句话暗含的负面评价,则不仅需要语言知识,还需要了解“快餐一般评价不高”的世界知识。

因此,理解和生成人类语言的复杂性体现在涉及的层次繁多。雪上加霜的是,人类语言的每个层次还都存在着歧义性,也就是存在多种不同的理解方式。下面同样来看一系列句子。

The lost wallet was found by a tree.

这里的英语单词“by”存在语义层面的歧义,既可以表示“被”,也可以表示“靠近”,而后者是更合理的。

The dog looks at the man with a telescope.

这句话存在句法层面的歧义:究竟是狗用望远镜看人(即“with a telescope”修饰“looks”),还是狗看携带望远镜的人(即“with a telescope”修饰“the man”)?显然后者更为合理。

Every fifteen seconds a cat in this world gives birth. (改编自美国喜剧演员格劳乔·马克思的经典语录)

这句话体现了语义层面的歧义:究竟是每15秒有一只猫生小猫,还是有一只猫每15秒就生一只小猫?显然前者更为合理。值得注意的是,这两种解释在除了语义之外的其他层面是完全一样的。

The toy doesn’t fit in the box. It is too small. (改编自威诺格拉德模式挑战(Winograd schema challenge))

这句话体现了篇章层面的歧义:“it”是指代“toy”还是“box”?根据常识,显然后者更合理。但是,如果将句中的“small”改为“big”,那么前者就更合理了。

综上所述,自然语言处理的主要难点来源于人类语言的理解和生成涉及众多层次,而每个层次都存在着歧义性。 除此之外,自然语言处理也面临人工智能各领域所共有的挑战,例如数据稀少、数据中的噪声、存在无法观测的隐变量、学习的过拟合和泛化能力、计算复杂度、可解释性等。

1.4 自然语言处理的方法论

自然语言处理已有几十年的历史,发展出了众多的流派。流派的定义和区分有很多不同的角度,如果区分角度是对知识的表示、推理和学习方式,那么大致可以区分出三大流派:符号主义、统计方法、联结主义。

符号主义的知识表示基于离散的符号及其结构化的组合,推理则基于符号规则的运用。符号主义流行于自然语言处理的早期,即大约20世纪90年代及之前。在自然语言处理领域,符号主义方法往往关注人类语言背后的结构,主要方法包括形式文法、自动机、形式逻辑等。符号主义方法往往源于语言学,但严格基于语言学的符号主义方法在很多场景下往往难以达到实用的要求,反倒是更为简单的符号主义方法(例如正则表达式)在一些简单场景下有着广泛应用。

统计方法使用统计模型表示知识,推理和学习基于概率推断,自20世纪90年代兴起,直到2010年代被联结主义所超越。早期最具代表性的基于统计方法的自然语言处理技术是著名的元语法模型。元语法模型不关注语言背后的结构,而只是将语言看作词的序列。但之后越来越多更复杂的模型和方法被提出,语言结构也重新成为重要的关注目标,统计方法与符号方法的结合成为主流。这一时期的自然语言处理技术一般被统称为统计自然语言处理。相比符号主义方法,统计自然语言处理在实用中取得了更多的成功。

联结主义也就是神经网络方法,通过连接数量众多的简单计算单元(即神经元)来表示知识,推理基于这些计算单元从输入到输出的计算,而学习基于对这些计算单元的参数优化。神经网络方法在20世纪80-90年代就曾经风靡一时,但真正的崛起是在21世纪10年代的早期。这一时期的神经网络方法因其更多的层次结构而被称为深度学习。基于深度学习的自然语言处理技术一般被统称为神经自然语言处理。早期的神经自然语言处理方法同样不关注语言背后的结构,而只将语言看作词的序列进行建模,但随后兴起的Transformer模型可被看作隐式地建模了一定的语言结构。自2019年来,基于Transformer模型的预训练语言模型成为自然语言处理领域的基础技术。而2022年出现的ChatGPT则使得大语言模型,即更大规模的预训练语言模型,成为自然语言处理领域的绝对焦点。

尽管联结主义目前如日中天,符号主义和统计方法则相对沉寂,但是我们应当清醒认识到这3类方法其实都有各自的优缺点,联结主义并非在所有场景和需求下都是最优选择。联结主义方法最大的优点在于,当存在足够的训练数据和计算资源,能够在各类任务上取得惊人的效果。但联结主义方法优异性能的代价是对数据和计算资源的巨大需求;与之相比,符号主义方法则不需要训练数据,计算资源的需求也很少,比联结主义更适用于任务相对简单的冷启动和低资源场景。其次,联结主义方法被广为诟病的一个缺点是可解释性较差,对模型的输出难以提供易于人类理解的解释;而符号主义和统计方法往往具有较好的可解释性,因而一方面更适用于司法、医疗等要求决策透明的领域,另一方面也更方便开发者对系统的诊断和改进。再次,对于涉及复杂的知识和推理(例如由概念、实体和关系构成的复杂知识图谱和基于其上的多步推理)的场景,符号主义方法显然是最适合的工具,而联结主义在这方面的能力依然较为欠缺。最后值得一提的是,很多符号主义和统计方法都基于严格的数学原理;相比而言,大部分联结主义方法主要基于设计者的直觉和试错,理论基础相对薄弱。

从长远来看,流派之间取长补短、相互融合是一个必然的发展趋势。统计方法与符号方法相结合成为统计自然语言处理的历史便是一个例子。因此,有理由相信,在自然语言处理领域以及范围更大的人工智能领域,我们会越来越多地看到符号主义、统计方法、联结主义这3个流派的深度融合。

1.5 小结

本章介绍了什么是自然语言处理,列举了自然语言处理的典型应用,通过一系列例句分析了自然语言处理所面临的主要难点,讨论了自然语言处理方法的三大流派,最后简介了本书接下来的内容。