第1篇 快速入门 2
第1章 初识对话机器人 2
1.1 体验对话机器人 2
1.2 对话机器人的商业价值 3
1.2.1 满足人工智能时代的社交需求 3
1.2.2 宣传商品和服务 4
1.2.3 提供客户服务 4
1.3 本书的学习路径图 5
1.4 对话机器人所需的理论知识 7
1.4.1 构建对话机器人所需的知识体系 7
1.4.2 理论知识的学习路径图 7
第2章 对话机器人的系统架构 9
2.1 定义产品需求 9
2.1.1 封闭域对话/开放域对话 9
2.1.2 本书所定义的产品需求 11
2.2 设计产品架构 13
2.2.1 产品整体架构 13
2.2.2 前台:微信小程序 14
2.2.3 中台:Apache Tomcat+Java 15
2.2.4 后台:TensorFlow+Python 16
2.3 准备开发环境 16
2.3.1 申请微信小程序账号 16
2.3.2 下载并安装微信小程序开发环境 19
2.3.3 下载并安装Java开发环境 19
2.3.4 下载并安装Tomcat软件 19
2.3.5 下载并安装MySQL数据库 19
2.3.6 下载并安装Python及TenorFlow开发环境 19
2.3.7 购买配置中台及后台服务器 20
第2篇 理论基础 24
第3章 人工智能基础 24
3.1 二分类任务 24
3.1.1 特征及特征提取 25
3.1.2 分类 27
3.1.3 感知机 29
3.1.4 支持向量机 31
3.2 多类别分类 33
3.3 人工神经网络的工作原理 34
3.3.1 为什么需要人工神经网络 35
3.3.2 人工神经网络如何工作 36
第4章 自然语言处理基础 41
4.1 自然语言处理的发展 41
4.1.1 从规则引擎到概率统计 41
4.1.2 自然语言处理要解决的问题 44
4.2 基于概率统计的解题思路 45
4.2.1 语音识别 45
4.2.2 中文自动分词 48
4.2.3 文本匹配 50
4.2.4 机器翻译 51
第5章 与对话机器人相关的深度学习技术 51
5.1 词向量 53
5.1.1 基本概念 53
5.1.2 词向量的意义及语言模型 55
5.1.3 Skip-Gram模型 56
5.1.4 CBOW模型 58
5.1.5 词向量的实现方式 60
5.1.6 词向量的应用 61
5.2 Encoder-Decoder模型 61
5.2.1 Encoder-Decoder模型的工作原理 62
5.2.2 Attention模型 64
5.3 BERT模型 65
5.3.1 从词向量到BERT——预训练技术的发展简史 65
5.3.2 BERT模型的运作机制 66
5.3.3 BERT模型的意义 68
第6章 对话机器人的实现方式 69
6.1 实现对话机器人的主流技术 69
6.1.1 基于人工模板的技术 69
6.1.2 基于检索的技术 70
6.1.3 基于机器翻译的技术 72
6.1.4 基于深度学习的技术 73
6.2 对话管理 75
6.2.1 对话管理的主要任务 75
6.2.2 对话管理的实现方法 77
6.2.3 基于结构的方法 77
6.2.4 基于规则的方法 78
6.2.5 基于概率统计的方法 78
第3篇 动手实战 82
第7章 前台:对话机器人的用户界面 82
7.1 创建对话机器人小程序 82
7.1.1 新建对话机器人小程序 82
7.1.2 了解小程序的代码构成 84
7.1.3 调试小程序 85
7.2 开发及测试对话机器人小程序 86
7.2.1 【实战】开发主页 86
7.2.2 【实战】添加对话框 88
7.2.3 【实战】添加“录音”按钮、输入框、“发送”按钮 89
7.2.4 【实战】添加功能代码 90
第8章 中台:数据和服务管理 97
8.1 创建对话机器人的中台项目 97
8.1.1 新建中台项目 97
8.1.2 准备开发功能 99
8.2 编写中台功能代码 101
8.2.1 【实战】创建小程序信息处理接口SendMessageService 101
8.2.2 【实战】创建语音对话接口SendAudioService 107
第9章 后台:对话服务 119
9.1 准备数据 119
9.1.1 下载及安装语料库 119
9.1.2 【实战】预处理文本 120
9.1.3 【实战】生成词向量 123
9.1.4 【实战】生成训练和测试数据 126
9.2 建立模型 128
9.2.1 【实战】加载预处理好的词向量 128
9.2.2 【实战】具体建立模型 132
9.3 训练及验证模型 134
9.3.1 【实战】训练模型 134
9.3.2 【实战】验证模型的效果 136
9.4 集成前台、中台和后台 143
9.4.1 【实战】创建后台对话服务 143
9.4.2 【实战】联合调试前台、中台、后台程序 146
第4篇 扩展应用 148
第10章 任务型机器人 148
10.1 任务型机器人的概念和实现方式 148
10.1.1 任务型机器人的架构 148
10.1.2 自然语言理解模块 149
10.1.3 对话管理模块 150
10.1.4 自然语言生成模块 151
10.2 【实战】创建一个任务型机器人 151
10.2.1 准备任务型机器人所需的数据 151
10.2.2 创建任务型机器人模型 153
第11章 情感分析 163
11.1 基本概念和实现方式 163
11.1.1 什么是情感分析 163
11.1.2 实现方式一:基于词典的方法 164
11.1.3 实现方式二:基于机器学习的方法 166
11.2 【实战】基于深度学习的情感分析 166
11.2.1 准备情感分析所需的数据 166
11.2.2 创建情感分析模型 175
第12章 客服机器人 178
12.1 客服机器人的工作原理及关键技术 178
12.2 知识图谱 179
12.2.1 知识图谱的概念 179
12.2.2 知识图谱的构建原则 181
12.2.3 知识图谱的构建方式 182
12.2.4 知识图谱之命名实体识别 184
12.2.5 知识图谱之关系抽取 185
12.3 【实战】创建一个使用知识图谱的客服机器人 186
12.3.1 总体架构 186
12.3.2 准备知识图谱 187
12.3.3 识别用户意图和语义 187
12.3.4 基于知识图谱做出反应 189