随着人工智能技术的飞速发展,自然语言处理(NLP)领域迎来了前所未有的变革。在2022年之前,NLP的研究和应用主要集中在传统的模型和方法上,如基于规则的方法、统计模型与机器学习算法等。这些技术虽然取得了一定的成果,但是在处理复杂、多变的自然语言时仍面临着诸多挑战。
近年来,随着深度学习技术的不断发展和计算能力的显著提升,大模型在NLP任务中的应用逐渐崭露头角。这些模型通过在大规模语料库上进行预训练,学会了丰富的语言知识和上下文理解能力,从而在各种NLP任务中取得了令人瞩目的表现。例如,BERT和GPT等大模型的出现,极大地推动了NLP的发展,使得机器在文本生成、问答系统和对话系统等领域的表现有了质的飞跃。
在业界,小米的小爱同学(现更名为“超级小爱”)、阿里巴巴的天猫精灵、微软的小冰等智能助手都是基于大模型技术实现的。它们能够与人类进行流畅的对话,理解用户的意图并完成各种任务,如查询天气、播放音乐、设置提醒等。这些智能助手的出现,不仅提高了人们的生活质量,也推动了NLP技术的普及和应用。
除了智能助手外,大模型还在翻译、文本分类、分词和命名实体识别等NLP任务中取得了显著的突破。特别是在翻译领域,大模型的出现使得机器翻译的准确性得到了极大的提升。如今,即便是专业翻译人员,也经常会先使用基于大模型的机器翻译工具进行初步翻译,然后再基于这些结果进行润色和修改,从而大大提高了工作效率。
然而,随着NLP技术的不断发展,业界对NLP工程师的要求也越来越高。未来的NLP工程师不仅需要掌握传统的NLP技术和方法,还需要具备深度学习和大模型的相关知识,能够应对更加复杂和多样的NLP任务。因此,对于想要进入NLP领域的人来说,掌握深度学习和大模型技术将成为NLP从业人员的必备技能之一。
目前市面上系统讲解NLP任务的图书还不多,已经出版的大多数相关图书主要介绍各类算法,如朴素贝叶斯、隐马尔可夫模型(HMM)和条件随机场(CRF)等,最后介绍一下深度学习的相关内容。这样的讲述风格,其好处是讲解循序渐进,可以降低对读者学习规划能力的要求,但也会降低读者的学习兴趣。因为在遇到具体问题和应用场景之前,如何使用各类算法是不知道的,这样会导致学习目的缺失。对于编程问题,目前市面上已经有大量基于项目讲解编码的图书。但是对于算法场景而言,基于项目讲述的图书还很少。当然,算法场景也可以基于项目讲解,只是它对业务数据有强关联性,在具体项目中这样做容易陷入大量的数据清洗等细节上。
基于上述原因,笔者觉得有必要另辟蹊径,编写一本帮助学习者系统理解NLP的图书。本书基于NLP任务进行讲述,而不是基于真实的项目。如果厘清了各个任务的具体解决思路,那么当遇到真实的项目时自然可以顺利上手。这时,学习者与有经验的算法工程师的区别可能只是在特征工程、业务理解和模型参数调整等方面,而不会像工程开发那样——如果只是开发学习性项目而没有经手过真实的项目,那么学习者与“有经验”就会有很大的鸿沟。
基于9种NLP任务组织内容,每种任务都可以视为一个具体的实战项目,各个任务之间依赖度较低,学习者可以基于兴趣选择自己感兴趣的内容进行学习,或者基于当前遇到的问题直接查阅相关的解决方案和思路。
不但介绍NLP任务的传统实现方法,而且重点介绍其深度学习实现方法,并在每章后给出基于ChatGPT或者BERT等大模型实现相关任务的示例,从而帮助学习者全面掌握NLP任务的实现方法和应用。
详细介绍实现NLP任务的多种模型,不但对相关模型的理论知识进行详细介绍,而且辅以200多幅原理图,以帮助学习者更加高效、直观地理解。
以深度学习的前后进展逻辑展开讲解,详细分析每种模型的创新点,不仅可以让学习者快速掌握深度学习模型的核心逻辑,而且可以收获前人总结的先验知识。
不仅可以让学习者对NLP的相关任务有清楚的认识和深入的理解,而且可以对学习者阅读NLP相关论文提供很大的帮助。
本书共9章,分别对应9种NLP任务。
第1章分词和词性标注,首先介绍如何用Python最常见的分词工具包jieba实现分词,然后介绍深度学习模型在分词中的应用,最后给出用ChatGPT模型实现分词和词性标注的示例。分词是比较基础的NLP任务,需要NLP工程师清楚其内部逻辑。
第2章文本分类,重点介绍文本分类的词向量方法和深度学习方法,并分别给出用ChatGPT和BERT模型实现文本分类的示例。文本分类是很常见的NLP任务,几乎所有的NLP任务都可以归结为分类任务,诸如情感分析、文章分类和打标签等都是常见的文本分类任务场景。
第3章命名实体识别,首先介绍NLP工具包HanLP在命名实体识别中的实现方法,然后介绍深度学习模型在该领域的探索,最后分别给出用ChatGPT提示词和ChatGPT API进行实体识别的示例。命名实体识别最常见的应用场景是实体提取,例如从一句话中提取其中的姓名和公司名等。知识图谱、内容结构化和智能对话等场景都有命名实体识别的相关应用。
第4章神经机器翻译,详细地介绍目前比较热门的Transformer模型,并分别给出用BERT和ChatGPT模型进行神经机器翻译的示例。神经机器翻译是NLP最先商用的独立任务场景,它也是经典“编码器-解码器”模型架构的最初任务场景。
第5章文本纠错,主要介绍文本纠错的工程流解决方案,并分别给出用ChatGPT提示词和ChatGPT API进行文本纠错的示例。文本纠错是应用非常广泛的一类任务,涉及用户输入的场景一般需要用到纠错,否则用户体验会非常差。
第6章机器阅读理解,基于Match-LSTM模型逐一介绍深度学习在机器阅读理解领域的应用,并分别给出用BERT和ChatGPT模型进行机器阅读理解的示例。机器阅读理解任务学术性较强,在实践中往往属于某个大任务下面的子任务。
第7章句法分析,首先介绍短语句法分析和依存句法分析,然后介绍深度学习与句法分析的结合,最后分别给出用ChatGPT API和ChatGPT提示词进行句法分析的示例。句法分析是比较传统的NLP任务,虽然目前它基于深度学习的应用场景还不多,但是并不意味着未来依然不多。
第8章文本摘要,主要介绍传统的摘要方法、抽取式模型和生成式模型,并分别给出用ChatGPT API和ChatGPT提示词进行文本摘要的示例。文本摘要类任务在新闻类业务场景中的应用较多,它也是类似翻译的模型结构。
第9章信息检索和问答系统,重点介绍表征式模型、交互式模型和混合式模型,并给出使用ChatGPT模型进行问答和检索信息的示例。信息检索和问答系统是使用频率很高的NLP任务,凡是类似搜索和输入类需要等待回复的场景都可以归为这类任务。
想全面学习NLP任务模型的人员。
有一定机器学习和深度学习基础的NLP初学者与进阶者。
从事NLP开发的工程师。
对NLP感兴趣的人员。
对大模型应用感兴趣的人员。
相关培训机构的学员。
高校相关专业的学生。
本书涉及的配套教学PPT有两种获取方式:一是关注微信公众号“方大卓越”,回复数字“41”获取下载链接;二是在清华大学出版社网站(www.tup.com.cn)上搜索本书,然后在本书页面上找到“资源下载”栏目,单击“网络资源”或“课件下载”按钮进行下载。
由于笔者水平所限,书中难免存在疏漏与不足之处,恳请广大读者批评与指正。学习者在阅读本书时若有疑问,可发送电子邮件获取帮助,邮箱地址为bookservice2008@163.com。
宋文峰
2025年1月