首页>参考读物>计算机科学与技术>人工智能

会话式AI:自然语言处理与人机交互
作者 : 杜振东 涂铭 著
出版日期 : 2020-09-04
ISBN : 978-7-111-66419-2
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 284
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

内容简介
这是一部讲解如何基于NLP技术和人机交互技术实现聊天机器人的著作。
两位作者聊天机器人领域均有多年大型项目的实战经验,这本书不仅讲解了NLP和人机交互的核心技术,而且从技术、算法、实战3个维度讲解聊天机器人的原理、实现与工程实践。
本书有3个特点:
前瞻性强,专注于NLP和人机交互的前沿技术,以及会话式AI技术在热门场景中的工程实践。
实战性强,每章都提供实战代码,大部分代码简单修改后便可在实际场景中使用;数据集并非简单构造,而是具有真实性。
对比性强,结合应用场景,对比不同技术的优劣,既能指导读者进行技术选型,又能加深读者对不同技术的理解。
本书一共12章,分为三大部分:
第一部分 基础篇(第1-2章)
首先系统介绍了人机交互技术和聊天机器人技术的必备基础,然后讲解了深度学习工具的使用以及NLP开发环境的搭建
第二部分 算法篇(第3-8章)
这部分是核心内容,主要讲解中文自然语言处理的各种算法,包括分词技术、数据预处理、词向量技术、序列标注与中文 NER、文本深度学习、循环神经网络等。
第三部分 实战篇(第9-12章)
主要讲解了语言模型与对话生成、知识图谱问答、自然语言推理、实体语义理解这4种人机交互方面的高阶技术,涵盖信息抽取、槽位填充、语义理解、聊天机器人、问答系统、多轮对话技术等知识点。

图书特色

两位作者是资深的NLP技术专家和聊天机器人技术专家,在阿里、腾讯等企业有多年实战经验
详细讲解NLP和人机交互的核心技术,从技术、算法、实战3个维度讲解聊天机器人的原理、实现与工程实践

图书前言

为什么要写这本书
比尔·盖茨曾经说过,语言理解是人工智能皇冠上的明珠。这一方面体现了语言理解在人工智能众多领域中的重要程度,另一方面也反映了语言理解本身的难度。近年来,伴随着机器学习,特别是深度学习相关技术的重大突破,以及硬件设备尤其是图形处理器(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,同时如果你遇到任何问题,也可以在网上提问,我将在线上提供解答。书中的全部源文件除可以从华章网站下载外,还可以从上述网址下载,我也会对相应的功能进行更新并及时更正。如果你有更多的宝贵意见,也欢迎发送邮件至邮箱zddu@iyunwen.com,期待能够得到你们的真挚反馈。
致谢
首先要感谢伟大的机器学习精神领袖吴恩达和我硕士期间的导师胡雪蕾老师以及夏睿老师,是你们指引着我走到今天。
感谢我的朋友李辰刚、刘聪、茆传羽、沈盛宇、王清琛、杨萌、张洪磊,在我编写本书时,他们提供了很多支持和帮助。
感谢老东家万得资讯,在那里我完成了从“学术小白”到AI从业者的转变。感谢朱海峰、颜小君、宋万鹏等各位前辈的指导,也感谢一同成长的宁振、方康、卫华、杨慧宇、汪迁、施奕帆、张强、童伟等同事的帮助,与你们共事真的是一段美好的经历。
感谢在“云问”共同奋斗的每一位充满创意和活力的朋友——李平、张蹲、林思琦、姚奥、张国威、李冬白、程云、申华、张荣松、徐健、戴天彤、余游、张雅冰、孟凡华、李蔓,以及名单之外的更多朋友,十分荣幸同各位在一家创业公司一起为人工智能落地而努力奋斗。感谢涂铭老师的引荐,您的努力促成了本书的合作与出版。
感谢DBCloud深脑云对本书提供的算力支持。DBCloud深脑云是国内领先的一体化算力服务供应商,在AI云计算、GPU集群搭建、服务器定制等多个领域提供了业内一流的解决方案。根据本书的特点,DBCloud深脑云为读者提供了一键使用的专属AI云算力服务,预装了包括TensorFlow、Caffe、PyTorch等在内的主流框架和环境。读者可访问dbcloud.ai来了解更多详细信息。
感谢华云数据对本书提供的公有云支持。华云数据集团成立于2010年,为用户提供创新架构的私有云、全栈模块化软件定义数据中心套件、混合云管解决方案、内置通用型云操作系统超融合套件,以及一站式公有云服务等,并积极参与国家数字基建项目建设,助力党、政、军及企业用户数字化转型,推动国家信息技术应用创新发展。目前,华云数据在政府、金融、国防军工、教育、医疗、能源电力、交通运输等十几个行业打造了行业标杆案例,客户总量超过30万。
感谢机械工业出版社华章分社的编辑杨福川老师、韩蕊老师、张锡鹏老师,在这一年多的时间里始终支持我的写作,你们的鼓励和帮助引导我顺利完成本书创作。
最后感谢我的父亲杜长荣、母亲韩玉凤,感谢你们将我培养成人,并时时刻刻为我提供信心和力量!
谨以此书献给我亲爱的老婆彭玥以及刚出生的宝宝杜望舒!

杜振东 

上架指导

人工智能/智能系统

封底文字

两位作者将他们多年来在人机交互和NLP领域积累的实践经验深入浅出地讲了出来。本书布局巧妙,注重实战,每一章都精心设计了实战项目,手把手教读者如何操作,帮助读者快速上手。
—— 胡雪蕾  昆士兰大学研究员/机器学习和数据科学资深学者
本书是作者多年NLP经验(尤其是问答对话领域)总结,对会话式AI的理论、算法和工程落地等进行了系统化的讲解,是一本恰逢其时、不可多得的好书。不仅涵盖前沿算法,也有大量生动的实战案例,相信从事该领域工作的工程师和刚入门的新人都能从中受益。
—— 王昊奋  同济大学特聘研究员
本书系统、详细地讲解了聊天机器人中应用的自然语言技术,特别是中文场景中的自然语言技术。从基础到理论,从算法到实践,覆盖面广、内容详实、层层递进,通过本书,读者可以了解NLP和聊天机器人领域常用的技术以及常见的问题和处理技巧。
—— 潘鹏举  平安银行AI团队负责人
本书由人机交互和NLP领域的一线技术专家撰写,以基础解读和代码剖析相结合为特色,是一本不可多得的实战型工具书。
—— 夏睿  南京理工大学计算机科学与工程学院教授
如何让机器理解人类的语言并与人交互一直是个难点,本书对基于NLP的人机交互系统的作用、架构和原理进行了深入剖析,并有大量实践,有很好的借鉴意义,值得推荐。
—— 郑博  中国电信高级专家
在51CTO学院的培训项目中,NLP和人机交互一直是企业级用户和个人学员学习的热点。本书的特色是书中的技术和经验都是作者在实践中的总结,它将更好地去指导读者进行实践。
—— 杨文飞  51CTO副总裁/企业培训事业部总经理

作者简介

杜振东 涂铭 著:作者简介
杜振东
国家标准委人工智能技术专家和AIIA(中国人工智能产业发展联盟)技术专家。拥有8年机器学习与文本挖掘相关技术经验,6年中文自然语言处理相关项目实战经验,擅长PyTorch、TensorFlow等主流深度学习框架,擅长运用NLP前沿技术解决真实项目的难题。
在意图识别、新闻推荐、多轮人机交互领域有数年实战经验。参与百万级用户金融资讯新闻推荐项目,作为算法主要负责人及整体框架设计者,主导全新智能新闻推荐系统的落地,并优化线上推荐算法,相较原有系统精度提高10%。
曾在AIIA和国家人工智能标准化总体组参与了多个人工智能标准的制定和人工智能报告的撰写。
涂铭
资深数据架构师和人工智能技术专家,曾就职于阿里,现就职于腾讯。对大数据、自然语言处理、图像识别、Python、Java等相关技术有深入的研究,积累了丰富的实践经验。
在工业领域曾参与了燃煤优化、设备故障诊断以及正泰光伏电池片和组件EL图像检测项目;在自然语言处理方面,曾担任导购机器人项目的架构师,主导开发机器人的语义理解、短文本相似度匹配、上下文理解,以及通过自然语言检索产品库,在项目中构建了NoSQL+文本检索等大数据架构,也同时负责问答对的整理和商品属性的提取,带领NLP团队构建了语义解析层。
合著有畅销书《Python自然语言处理实战:核心技术与算法》和《深度学习与图像识别:原理与实践》。

图书目录

前言
第1章 人机交互导论 1
1.1 图灵测试 1
1.1.1 图灵测试相关背景 1
1.1.2 图灵测试的定义 2
1.1.3 图灵测试引发的思考 3
1.2 专家系统 3
1.2.1 专家系统的定义 3
1.2.2 专家系统的框架 4
1.2.3 专家系统的发展 6
1.3 人机交互 6
1.3.1 人机交互简介 6
1.3.2 人机交互模块的发展 7
1.3.3 自然语言理解 9
1.3.4 对话管理 10
1.3.5 自然语言生成 10
1.4 机器人形态 11
1.4.1 聊天机器人 12
1.4.2 任务型机器人 13
1.4.3 面向FAQ的问答机器人 13
1.4.4 面向KB的问答机器人 14
1.5 本章小结 14
第2章 人机对话前置技术 15
2.1 深度学习框架 15
2.1.1 Theano 15
2.1.2 TensorFlow 16
2.1.3 Keras 17
2.1.4 PyTorch 17
2.2 搭建NLP开发环境 18
2.2.1 下载和安装Anaconda 18
2.2.2 conda的使用 21
2.2.3 中文分词工具——Jieba 22
2.2.4 PyTorch的下载与安装 24
2.2.5 Jupyter Notebook远程访问 25
2.3 TorchText的安装与介绍 26
2.4 本章小结 29
第3章 中文分词技术 30
3.1 分词的概念和分类 30
3.2 规则分词 31
3.2.1 正向最大匹配 31
3.2.2 逆向最大匹配 32
3.2.3 双向最大匹配 33
3.3 统计分词 35
3.4 混合分词 44
3.5 Jieba分词 44
3.6 准确率评测 47
3.6.1 混淆矩阵 48
3.6.2 中文分词中的P、R、F1计算 49
3.7 本章小结 51
第4章 数据预处理 52
4.1 数据集介绍 52
4.2 数据预处理 53
4.3 TorchText预处理 55
4.3.1 torchtext.data 55
4.3.2 torchtext.datasets 56
4.3.3 构建词表 57
4.3.4 构建迭代器 58
4.4 本章小结 60
第5章 词向量实战 61
5.1 词向量的由来 61
5.1.1 one-hot模型 61
5.1.2 神经网络词向量模型 63
5.2 word2vec 67
5.2.1 初探word2vec 67
5.2.2 深入CBOW模型 68
5.2.3 Skip-gram模型介绍 69
5.2.4 word2vec模型本质 70
5.3 glove 71
5.3.1 初探glove 71
5.3.2 glove模型原理 72
5.4 word2vec实战 74
5.4.1 预处理模块 74
5.4.2 模型框架 78
5.4.3 模型训练 79
5.4.4 模型评估 82
5.5 glove实战 83
5.5.1 预处理模块 83
5.5.2 模型框架 85
5.5.3 模型训练 86
5.5.4 模型评估 87
5.6 本章小结 87
第6章 序列标注与中文NER实战 88
6.1 序列标注任务 88
6.1.1 任务定义及标签体系 88
6.1.2 任务特点及对比 90
6.1.3 任务应用场景 92
6.2 序列标注的技术方案 94
6.2.1 隐马尔可夫模型 94
6.2.2 条件随机场 94
6.2.3 循环神经网络 96
6.2.4 Bert 97
6.3 序列标注实战 99
6.3.1 中文NER数据集 99
6.3.2 数据预处理 100
6.3.3 模型训练框架 102
6.3.4 模型评估 103
6.4 BiLSTM 104
6.4.1 参数介绍 104
6.4.2 BiLSTM模型框架 104
6.4.3 模型效果评估 106
6.5 BiLSTM-CRF 107
6.5.1 参数介绍 107
6.5.2 BiLSTM-CRF模型框架 107
6.5.3 模型评价 112
6.6 本章小结 112
第7章 文本分类技术 113
7.1 TFIDF与朴素贝叶斯 113
7.1.1 TFIDF 113
7.1.2 朴素贝叶斯 115
7.1.3 实战案例之新闻分类 116
7.2 TextCNN 118
7.2.1 TextCNN网络结构解析 118
7.2.2 实战案例之新闻分类 121
7.3 FastText 129
7.3.1 模型架构 129
7.3.2 层次softmax 130
7.3.3 n-gram子词特征 130
7.3.4 安装与实例解析 131
7.4 后台运行 134
7.5 本章小结 134
第8章 循环神经网络 135
8.1 RNN 135
8.1.1 序列数据 135
8.1.2 神经网络需要记忆 136
8.1.3 RNN基本概念 136
8.1.4 RNN的输入输出类型 138
8.1.5 双向循环神经网络 139
8.1.6 深层循环神经网络 140
8.1.7 RNN的问题 141
8.1.8 RNN PyTorch实现 141
8.2 LSTM 143
8.2.1 LSTM网络结构解析 143
8.2.2 LSTM PyTorch实现 147
8.3 GRU 149
8.3.1 GRU网络结构解析 149
8.3.2 GRU PyTorch实现 151
8.4 TextRNN 152
8.4.1 基本概念 152
8.4.2 实战案例之新闻分类 153
8.5 TextRCNN 154
8.5.1 基本概念 154
8.5.2 实战案例之新闻分类 155
8.6 实战案例之诗歌生成 155
8.6.1 数据预处理 156
8.6.2 模型结构 158
8.6.3 模型训练 158
8.6.4 诗歌生成 159
8.7 本章小结 161
第9章 语言模型与对话生成 162
9.1 自然语言生成介绍 162
9.2 序列生成模型 163
9.2.1 seq2seq的基本框架 164
9.2.2 Encoder-Decoder框架的缺点 165
9.3 经典的seq2seq框架 166
9.3.1 基于RNN的seq2seq 166
9.3.2 基于CNN的seq2seq 167
9.4 Attention机制 169
9.4.1 序列模型RNN 169
9.4.2 Attention机制的原理 170
9.4.3 Self-Attention模型 171
9.4.4 Transfomer模型介绍 171
9.5 Bert——自然语言处理的新范式 173
9.5.1 Bert结构 174
9.5.2 预训练任务 175
9.6 聊天机器人实战 177
9.6.1 数据介绍和数据预处理 177
9.6.2 实现seq2seq模型 179
9.7 本章小结 182
第10章 知识图谱问答 183
10.1 知识图谱概述 184
10.2 关系抽取 186
10.3 人物间关系识别 189
10.3.1 任务分析 189
10.3.2 模型设计 190
10.3.3 代码实现及优化 191
10.4 图谱构建 196
10.4.1 Neo4J简介 197
10.4.2 Neo4J创建图谱示例 198
10.5 基于深度学习的知识图谱问答模块 203
10.5.1 数据构造 205
10.5.2 查询目标检测 206
10.5.3 查询条件抽取 207
10.5.4 基于知识图谱查询模块实现 210
10.6 本章小结 212
第11章 自然语言推理 213
11.1 自然语言推理介绍 213
11.2 自然语言推理常见模型 215
11.2.1 SIAMESE网络 215
11.2.2 BiMPM网络 217
11.2.3 Bert网络 221
11.3 多轮对话中的答案导向问题 223
11.4 答案导向问题的实战 224
11.4.1 数据构造 224
11.4.2 孪生网络实战 226
11.4.3 BiMPM网络实战 232
11.4.4 Bert网络实战 236
11.4.5 模型结果比较 237
11.5 本章小结 238
第12章 实体语义理解 239
12.1 实体语义理解简介 239
12.2 现有语义理解系统分析 242
12.2.1 Time-NLPY/Time-NLP/FNLP 242
12.2.2 HeidelTime 244
12.2.3 知识驱动方法与数据驱动方法 246
12.3 实体语义理解的技术方案 247
12.4 实体语义理解实战 248
12.5 数值解析实战 257
12.6 时间解析实战 262
12.6.1 时间信息的中间表示 262
12.6.2 时长解析 263
12.6.3 日期和时间点 265
12.6.4 时间段 268
12.6.5 时间信息的推理计算 270
12.7 本章小结 273

教学资源推荐
作者: [英] 麦克·威尔逊(Mike Wilson)著
作者: [荷] 马可•威宁(Marco Wiering)马丁•范•奥特罗(Martijn van Otterlo) 编著
作者: [美]芭芭拉·多瑟(Barbara Dosher) 吕忠林(Zhong-Lin Lu)著
作者: [英]西蒙 J.D. 普林斯(Simon J. D. Prince)著
参考读物推荐
作者: [美] 挪亚·吉夫特(Noah Gift) 著
作者: [美]卡罗尔·费尔柴尔德(Carol Fairchild),托马斯 L.哈曼( Thomas L. Harman) 著