自然语言处理(Natural Language Processing,NLP)是一门融计算机科学、语言学、数学、认知学、逻辑学于一体的研究学科。自然语言处理涉及自然语言,关注计算机和人类语言之间的交互,在计算机的支持下对语言信息进行定量化的研究,包括自然语言理解(Natural Language Understanding,NLU)和自然语言生成(Natural Language Generation,NLG)两部分研究内容,旨在使计算机能够分析、处理和理解人类语言,提供可供人与计算机之间能共同使用的语言描写。 利用计算机处理自然语言,根据其不同时期或不同侧重点,可分为不同阶段,即自然语言理解、人类语言技术(Human Language Technology,HLT)、计算语言学(computational linguistics)、计量语言学(quantitative linguistics)、数理语言学(mathematical linguistics)等。近年来,以机器学习、深度学习、知识图谱为代表的人工智能技术逐渐变得普及。大数据时代的机器学习,需面向复杂多样的数据进行深层次分析。深度学习的实现在于建立模拟人脑进行分析学习的神经网络。得益于数据的增多、计算能力的增强、学习算法的成熟以及应用场景的丰富,深度学习在学术界和工业界取得了广泛的成功,受到了越来越多的关注,并掀起新一轮的人工智能热潮。 机器学习、深度学习和自然语言处理的交叉在实际任务中取得了长足进步,被用来解决一些通用人工智能问题,如文本分类、自动文摘、问答系统、机器翻译、社会计算、推荐系统、内容生成和跨模态计算等。以机器翻译任务为例,它从基于规则方法、基于统计方法、基于实例方法到基于深度学习方法的快速发展,带着鲜明的时代背景烙印,也吻合技术发展脉络。如今,机器学习、深度学习方法持续地引领着自然语言处理的进步与发展。以ChatGPT为代表的语言模型更是展现出了强大的通用能力,亦离不开自然语言处理技术的发展积累。 《自然语言处理导论》适用范围包括高年级本科生、硕士博士研究生以及任何对自然语言处理技术感兴趣的人。《自然语言处理导论》共16章。第1章是绪论,概要介绍自然语言处理的基本概念、发展历程和研究内容,使读者能够全面了解相关知识。第2~7章分别讲述了语言模型、神经网络和神经语言模型、词和语义向量、预训练语言模型、序列标注和语义分析,介绍了自然语言处理文本表示、分析、挖掘、推理等方面的相关概念、方法、技术和近期研究进展。第8~10章介绍了文本分类、情感计算、知识抽取等基础方法。第11~15章介绍了自动文摘、统计机器翻译和神经机器翻译、问答系统与多轮对话、社会计算、内容生成和跨模态计算,这些都是目前自然语言处理的难点和热点问题。第16章讨论了深度学习前沿问题。 2020年中山大学智能工程学院开设了“自然语言处理”课程。讲好基于机器学习和深度学习的自然语言处理课程并不是一件容易的事,课程涉及的知识点繁多且杂乱,与实践结合也十分紧密。作为任课教师,我尝试梳理了自然语言处理的知识体系,拟定了教学大纲、教案、习题详解、试卷等。过程中得到了学校与学院的高度重视,进行了相关教研探索,同时也获得华为产教融合协同育人项目的数据和资源支持。在机械工业出版社的热情邀请和大力支持下,我着手撰写这本面向在校学生和相关从业人员的关于自然语言处理的图书。但我依然低估了写作的难度:一方面是深度学习、自然语言处理的发展十分迅速,我的认知也在不断变化,导致需不断增改已成稿的内容;另一方面是平时的科研教学任务十分繁重,只能在碎片化的时间中匍匐前行。 《自然语言处理导论》能够完成,无疑得到了很多人的支持和帮助。感谢中山大学各位领导专家的支持和帮助。感谢我的搭档丁宁博士,他基于对自然语言处理任务的独到见解和实践经验,提出了富有建设性的意见。感谢编写第10章的清华大学博士郦炀宁和李映辉,以及协助他们完成该章的胡婧、曹志雄、张豪。感谢各位同事、同学和好友,在《自然语言处理导论》撰写过程中提供了很多研究资料和热情的帮助。此外,本书在写作过程中参考了互联网上大量的优秀资料,如维基百科、知乎、Quora等网站。 由于深度学习、自然语言处理技术日新月异,而我们所知有限,难免有挂一漏万之憾。《自然语言处理导论》中难免有不当和错误之处,还望读者海涵和指正,不胜感激。如有重要进展或成果没有涉及,绝非作者故意为之,敬请大家批评指正。无论是指出错误还是改进建议,请直接发邮件至sheny76@mail.sysu.edu.cn,我们会在《自然语言处理导论》修订时改正所有发现的错误。 沈 颖