会话式AI:自然语言处理与人机交互
上QQ阅读APP看书,第一时间看更新

前言

为什么要写这本书

比尔·盖茨曾经说过,语言理解是人工智能皇冠上的明珠。这一方面体现了语言理解在人工智能众多领域中的重要程度,另一方面也反映了语言理解本身的难度。近年来,伴随着机器学习,特别是深度学习相关技术的重大突破,以及硬件设备尤其是图形处理器(GPU)的计算加速,人工智能的各方面都有迅猛发展,在包括图像视觉与语音识别在内的感知层面也有众多突破。然而正如盖茨所言,如今语言理解相关技术的发展有限,很多技术距离真正的“人工智能”还存在较大差距。

我们正处在语言理解技术突破的跃阶时代,各种算法百家争鸣、百花齐放,皆在语言理解领域发挥着作用。总的来说,写书的第一个缘由便是出于对语言理解相关技术的热爱。本书介绍的各种技术,无论是中文分词技术、文本分类技术还是语言模型技术,都是语言理解划时代的产物,在很长一段时间内影响着相关领域的整体技术发展,在自然语言处理领域留下浓墨重彩的一笔。

伴随着博客、网络开放课程和短视频教育的发展,我们学习各种技术的途径也更加多样化。那么,时至今日,为什么还要通过读书来学习知识呢?这就是我们写下此书的第二个缘由。

我充分肯定MOOC及新媒体带来的便利,但是,尺有所短,寸有所长,许多人在网上热情饱满地学习,可两天后学到的知识大多烟消云散。书本强调知识的系统性和完整性,是网络学习无法替代的。

技术书可以弥补新媒体教育的短板,翻阅书籍更便于相关知识的查漏补缺。正规技术书在内容严谨方面做得相对较好,对内容的正确性与严谨性要求极高,更适合相关从业人员学习和日常检索。学习的路径并不是非此即彼,只有利用一切方式,多渠道学习,才能真正实现全方面高效学习,紧密抓住相关技术的关键。

面对琳琅满目的技术书,本书存在的价值是什么呢?作为一名自然语言处理从业人员,我也读过许多技术书,从中学习到许多知识,产生了很多心得,所以在写本书时重点考虑融入自身见解心得。阅读别人的技术理解也是一种学习方式,写作此书的第三个原因便是希望与各位分享我们对相关技术的见解及一些落地经验,可能存在一定局限性,也希望与读者多多交流,共同进步。

技术的变化是飞速的,在撰写本书初期,还没有出现Bert这样强大的技术,随后我们修改了相关章节,便是希望本书介绍NLP相关技术时更具前沿性。技术会持续更新换代,书中提到的很多技术也许在不远的未来便被更为强大的技术所取代,但这并不影响我们学习这一系列的技术,因为学习这些技术本身会引发更深层次的思考,可以让我们理解机器是如何一步步实现自然语言处理的。最终什么样的技术能摘得语言理解这颗明珠其实并不重要,这一路上的风景也许比明珠本身更加绚丽多彩。那么也请各位同我们一起领略这一路上的风景吧!

读者对象

这里根据阅读需求划分了不同类型的读者,各位读者可以针对自身特点,选择相关重点来阅读本书:

·NLP相关领域的师生;

·工作中应用NLP领域技术的人;

·打算转型NLP的人。

本书特色

本书首先强调实战性,从第3章开始,每章都有相关技术的实战代码,数据集也来源于真实项目,大部分代码都可以在简单修改后用于实际落地项目。其次,本书强调对比性,许多刚接触NLP的朋友很容易迷恋某一项技术,特别是在Bert全面突破的现在。然而基于我多年的从业经验,技术都是为场景服务的,针对不同场景,对比不同技术的优劣,选择合适的技术,更能体现从业人员水平。因此,为了突破自身技术的舒适区,研究不同算法间的差异,具备针对场景选择算法的能力,更为重要。我们把自己对于相关技术的见解都写了下来,希望给读者提供另一种视角来看待技术本身。同时工作中总结的很多经验也被提炼成若干提示,希望能给读者阅读和实践提供一些帮助。

如何阅读本书

本书从逻辑上看分为三大部分。

第一部分(第1~2章)介绍语言理解的基础概念与环境搭建。其中,第1章介绍人机交互的演变历史及技术变革。第2章介绍前置技术,重点涵盖PyTorch、TorchText、Jieba等自然语言处理学习库的使用方法。

第二部分(第3~8章)介绍自然语言处理和人机交互相关的核心技术。本书强调理论与实战并行,在介绍相关核心技术的同时,每章针对相应核心算法展开实战,在真实中文数据集下验证算法性能,让读者从更深层面了解相关算法。第3章主要介绍中文分词技术,包含分词概念、分类体系、常见分词算法,并针对HMM算法进行实战。第4章主要介绍数据预处理相关内容,重点关注TorchText针对数据预处理与构建数据集的使用。词向量(第5章)、序列标注(第6章)、文本分类(第7章)、文本生成(第8章)作为4种核心技术将分别单独介绍。

第三部分(第9~12章)通过讲解人机交互中4个不同类型的高阶技术,帮助读者了解人机交互中的深层技术。其中包括对话生成(第9章)、知识图谱问答(第10章)、自然语言推理(第11章)和实体语义理解(第12章)。

勘误和支持

由于本人的水平有限,编写时间仓促,书中难免出现一些遗漏或者不够准确的地方,恳请读者批评指正。你可以将书中的错误提交到https://github.com/eclipse-du/nlp_book,同时如果你遇到任何问题,也可以在网上提问,我将在线上提供解答。书中的全部源文件除可以从华章网站 参见华章网站www.hzbook.com。——编辑注下载外,还可以从上述网址下载,我也会对相应的功能进行更新并及时更正。如果你有更多的宝贵意见,也欢迎发送邮件至邮箱zddu@iyunwen.com,期待能够得到你们的真挚反馈。

致谢

首先要感谢伟大的机器学习精神领袖吴恩达和我硕士期间的导师胡雪蕾老师以及夏睿老师,是你们指引着我走到今天。

感谢我的朋友李辰刚、刘聪、茆传羽、沈盛宇、王清琛、杨萌、张洪磊,在我编写本书时,他们提供了很多支持和帮助。

感谢老东家万得资讯,在那里我完成了从“学术小白”到AI从业者的转变。感谢朱海峰、颜小君、宋万鹏等各位前辈的指导,也感谢一同成长的宁振、方康、卫华、杨慧宇、汪迁、施奕帆、张强、童伟等同事的帮助,与你们共事真的是一段美好的经历。

感谢在“云问”共同奋斗的每一位充满创意和活力的朋友——李平、张蹲、林思琦、姚奥、张国威、李冬白、程云、申华、张荣松、徐健、戴天彤、余游、张雅冰、孟凡华、李蔓,以及名单之外的更多朋友,十分荣幸同各位在一家创业公司一起为人工智能落地而努力奋斗。感谢涂铭老师的引荐,您的努力促成了本书的合作与出版。

感谢DBCloud深脑云对本书提供的算力支持。DBCloud深脑云是国内领先的一体化算力服务供应商,在AI云计算、GPU集群搭建、服务器定制等多个领域提供了业内一流的解决方案。根据本书的特点,DBCloud深脑云为读者提供了一键使用的专属AI云算力服务,预装了包括TensorFlow、Caffe、PyTorch等在内的主流框架和环境。读者可访问dbcloud.ai来了解更多详细信息。

感谢华云数据对本书提供的公有云支持。华云数据集团成立于2010年,为用户提供创新架构的私有云、全栈模块化软件定义数据中心套件、混合云管解决方案、内置通用型云操作系统超融合套件,以及一站式公有云服务等,并积极参与国家数字基建项目建设,助力党、政、军及企业用户数字化转型,推动国家信息技术应用创新发展。目前,华云数据在政府、金融、国防军工、教育、医疗、能源电力、交通运输等十几个行业打造了行业标杆案例,客户总量超过30万。

感谢机械工业出版社华章公司的编辑杨福川老师、韩蕊老师、张锡鹏老师,在这一年多的时间里始终支持我的写作,你们的鼓励和帮助引导我顺利完成本书创作。

最后感谢我的父亲杜长荣、母亲韩玉凤,感谢你们将我培养成人,并时时刻刻为我提供信心和力量!

谨以此书献给我亲爱的老婆彭玥以及刚出生的宝宝杜望舒!

杜振东