自然语言处理导论
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

时光荏苒,自2003年我师从吴立德教授,开启了自然语言处理学习与研究之路,转眼已近二十载春秋。回想当年第一次听到自然语言处理的目标——“让机器理解人类语言”时的兴奋,第一次看到《大规模中文文本处理》教材时的茫然,仿佛黄萱菁教授对我研究生入学的电话面试就在昨天,每周与吴老师固定交流前的紧张感依然清晰。从求学到任教,我深刻感受到自然语言处理的快速发展,从基于特征的统计机器学习方法到深度神经网络模型,再到大规模预训练方法,自然语言处理研究范式的更新迭代速度也在不断加快。在本科生和研究生的自然语言处理课程教学过程中,虽然通过不断补充国内外的近期研究进展,将最新的理论与方法通过课件和面授的形式介绍给同学们,但是系统、全面的书籍仍然是不可或缺的重要资料。于是,自2020年起,我与黄萱菁教授和桂韬副研究员一起开始本书的准备工作。在经过几十次的讨论,以及对大纲和结构的反复修改后,自2021年暑假起开始了本书的写作。2022年,本书入选复旦大学七大系列百本精品教材项目和复旦大学研究生规划系列教材项目,进一步督促我们加快进度。从规划开始,历时近三年之久,这本拙作终于完成。

自然语言处理研究融合了语言学、计算机科学、机器学习等多学科内容。自然语言处理的研究内容,从语言单位上划分,涵盖字、词、短语、句子、段落、篇章等不同粒度;从类型上划分,包含处理、理解、生成等不同种类。研究内容涉及的知识点多且复杂。自然语言处理研究大体经历了20世纪50年代末到80年代基于规则的研究范式、20世纪90年代到2010年前基于特征的统计机器学习研究范式、2010年到2018年基于深度神经网络的研究范式,以及2018年至今基于大规模和超大规模预训练模型的研究范式等几个阶段。每个阶段的研究范式都有非常鲜明的特点,但也与机器学习研究有着十分紧密的联系。自然语言处理研究内容繁杂以及与机器学习方法交织,导致本书的写作难度远超最初的预想。由于很多自然语言处理任务都被转换为机器学习问题,因此很多机器学习算法可以被应用于多个自然语言处理任务。例如,条件随机场模型可以用于中文分词,也可以用于词性标注,还可以用于命名实体识别。在这些任务中,条件随机场模型也都取得了不错的效果。我们花费大量的时间讨论如何设计本书的结构,在避免重复的同时,能够使读者更好地了解更多的自然语言处理的研究内容和算法。

本书的目标是介绍自然语言处理的基本任务和主要处理算法。为了能够让读者更好地了解任务的特性和算法设计的主要目标,在介绍每个自然语言处理任务时,除了介绍任务的目标,还会介绍该任务所涉及的主要语言学理论知识以及任务的主要难点。针对自然语言处理历史发展过程中的不同研究范式,选择不同类型的算法进行介绍。因此,在大多数情况下,每个章节都分为如下几个部分:任务概述、相关语言学知识、基于规则的方法、基于特征的机器学习方法、基于深度神经网络的算法、任务评测指标和常见的数据集合。针对同一种机器学习算法可以被应用于不同任务的问题,为了避免重复,我们在不同的任务中选择同一类别的不同机器学习算法进行介绍,并说明该算法还可以被应用于哪些任务,以及该类型的任务应该采用哪种类别的机器学习算法。尽量使读者能够建立起自然语言处理任务和机器学习算法之间的关系,即如何将自然语言处理任务转换为机器学习问题,如何选择合适的机器学习算法,如何根据任务特性设计机器学习算法。希望读者通过阅读本书,能够了解不同任务的难点和算法设计的要点,明确自然语言处理方法和机器学习算法之间的关系。虽然我们在这个问题上花费了大量的时间对本书的结构进行设计,但是对于初学者来说,这仍然是需要相当多的实践才能更深入领悟的部分。

本书主要面向高年级本科生和研究生,作为自然语言处理相关课程教材使用,也可以作为对自然语言处理感兴趣的读者入门之用。在撰写本书的过程中,尽量平衡学生的知识储备水平与内容完备性之间的关系。在内容选择上,主要针对计算机和人工智能领域学生的基础知识特点,对语言学理论的介绍略显单薄,在语言学理论内容的选择上也偏重经典,对不同语言学理论之间的关系以及最新的语言学前沿研究的介绍较为缺乏。对于有志于从事自然语言处理研究的读者,可以进一步拓展阅读语言学相关领域知识。由于很多自然语言处理任务都被转换为机器学习问题,采用各种类别的统计机器学习算法进行解决,因此本书的介绍必然涉及机器学习中的模型选择、学习准则设定以及优化算法使用等问题。本书在介绍相关算法时,以如何将特定自然语言处理任务转换为机器学习问题为重点,对于优化算法选择等基础问题需要读者参考机器学习和深度学习的书籍。建议读者在阅读本书前,系统地学习机器学习和深度学习的相关课程。

在内容组织方面,本书主要包含基础技术、核心技术和模型分析三个部分。基础技术部分主要介绍自然语言处理的基础任务和底层技术,主要包含词汇分析、句法分析、语义分析、篇章分析和语言模型。核心技术部分主要介绍自然语言处理的应用任务和相关技术,主要包含信息抽取、机器翻译、情感分析、智能问答、文本摘要、知识图谱。模型分析部分主要介绍基于机器学习的自然语言处理模型的稳健性和可解释性问题。在教学课时安排上,可以满足32~56学时的教学安排。模型稳健性和模型可解释性是近年来人工智能领域的研究热点,但是也涉及各类自然语言处理任务和模型,需要读者花费更多的时间在相关任务实践中学习。

本书的写作过程得到了众多专家和同学的大力支持与帮助。特别感谢张翀博士、马若恬博士、周鑫博士、赵君博士、周杰博士、费子楚博士、邹易澄博士、王枭博士、郑锐博士为本书的撰写提供的帮助。尽管从本书的提纲结构讨论开始,我们就保持着最严肃认真的态度,但越是临近本书付梓之际,越是惶恐不安。自然语言处理涉及文理工多学科交叉,研究内容又极其繁杂,受限于我们的认知水平和所从事的研究工作的局限性,对其中一些任务和工作的细节理解可能存在不少错误,也恳请专家、读者批评指正,你们的意见对我们非常重要。

最后,衷心地感谢我的导师吴立德教授,他不仅带领我走进了自然语言处理之门,更重要的是,他严谨求真的治学态度和高瞻远瞩的研究视野使我受益终身。感激我的家人给予的支持,为了能够提供给我专心写作的环境,他们承担了几乎全部孩子教育、家务等烦琐而辛苦的事务,才使我能够完成本书的写作。他们默默地牺牲了自己的休息时间甚至是事业,才让我可以任性地追求自己的梦想。欲报之德,昊天罔极。

张奇

2023年1月于复旦大学曦园