描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302531012
通过阅读本书,你将学会如何利用深度学习来实现许多有意义的NLP任务。对于本书中涉及的NLP任务,我们都有具体的代码实现(含实现过程),使用的技术框架为TensorFlow(1.8版本),编程语言为Python(3.6版本)。
本书分为12章,内容包括自然语言处理基础、深度学习基础、TensorFlow、词嵌入(Word Embedding)、卷积神经网络(CNN)与句子分类、循环神经网络(RNN)、长短期记忆(LSTM)、利用LSTM实现图像字幕自动生成、情感分析、机器翻译及智能问答系统。
本书适合TensorFlow自然语言处理技术的初学者、NLP应用开发人员、NLP研究人员,也适合高等院校和培训学校相关专业的师生教学参考。
第1章 自然语言处理基础 1
1.1 认识自然语言处理 2
1.2 自然语言处理方面的任务 2
1.3 第一阶段:偏理论的理性主义 4
1.4 第二阶段:偏实践应用的经验主义 5
1.5 第三阶段:深度学习阶段 7
1.6 NLP中深度学习的局限性 9
1.7 NLP的应用场景 10
1.8 NLP的发展前景 13
1.9 总结 14
第2章 深度学习基础 15
2.1 深度学习介绍 15
2.2 深度学习演变简述 16
2.2.1 深度学习早期 16
2.2.2 深度学习的发展 17
2.2.3 深度学习的爆发 17
2.3 神经网络介绍 18
2.4 神经网络的基本结构 19
2.5 两层神经网络(多层感知器) 22
2.5.1 简述 22
2.5.2 两层神经网络结构 22
2.6 多层神经网络(深度学习) 23
2.6.1 简述 23
2.6.2 多层神经网络结构 24
2.7 编码器-解码器网络 24
2.8 随机梯度下降 25
2.9 反向传播 27
2.10 总结 31
第3章 TensorFlow 32
3.1 TensorFlow概念解读 32
3.2 TensorFlow主要特征 33
3.2.1 自动求微分 33
3.2.2 多语言支持 33
3.2.3 高度的灵活性 34
3.2.4 真正的可移植性 34
3.2.5 将科研和产品联系在一起 34
3.2.6 性能最优化 34
3.3 TensorFlow安装 34
3.4 TensorFlow计算图 40
3.5 TensorFlow张量和模型会话 42
3.5.1 张量 42
3.5.2 会话 43
3.6 TensorFlow工作原理 43
3.7 通过一个示例来认识TensorFlow 45
3.8 TensorFlow客户端 47
3.9 TensorFlow中常见元素解读 49
3.9.1 在TensorFlow中定义输入 50
3.9.2 在TensorFlow中定义变量 56
3.9.3 定义TensorFlow输出 57
3.9.4 定义TensorFlow运算或操作 58
3.10 变量作用域机制 68
3.10.1 基本原理 68
3.10.2 通过示例解读 69
3.11 实现一个神经网络 71
3.11.1 数据准备 71
3.11.2 定义TensorFlow计算图 71
3.11.3 运行神经网络 73
3.12 总结 75
第4章 词嵌入 77
4.1 分布式表示 78
4.1.1 分布式表示的直观认识 78
4.1.2 分布式表示解读 78
4.2 Word2vec模型(以Skip-Gram为例) 84
4.2.1 直观认识Word2vec 85
4.2.2 定义任务 85
4.2.3 从原始文本创建结构化数据 85
4.2.4 定义词嵌入层和神经网络 86
4.2.5 整合 87
4.2.6 定义损失函数 89
4.2.7 利用TensorFlow实现Skip-Gram模型 93
4.3 原始Skip-Gram模型和改进Skip-Gram模型对比分析 96
4.3.1 原始的Skip-Gram算法的实现 97
4.3.2 将原始Skip-Gram与改进后的Skip-Gram进行比较 98
4.4 CBOW模型 98
4.4.1 CBOW模型简述 98
4.4.2 利用TensorFlow实现CBOW 算法 100
4.5 Skip-Gram和 CBOW对比 101
4.5.1 Skip-Gram和CBOW模型结构分析 101
4.5.2 代码层面对比两模型性能 102
4.5.3 Skip-Gram和CBOW模型孰优 104
4.6 词嵌入算法的扩展 105
4.6.1 使用Unigram分布进行负采样 105
4.6.2 降采样 107
4.6.3 CBOW 和其扩展类型比较 107
4.7 结构化Skip-Gram和连续窗口模型 108
4.7.1 结构化Skip-Gram算法 108
4.7.2 连续窗口模型 110
4.8 GloVe模型 111
4.8.1 共现矩阵 112
4.8.2 使用GloVe模型训练词向量 112
4.8.3 GloVe模型实现 113
4.9 使用Word2Vec进行文档分类 114
4.9.1 数据集 115
4.9.2 使用词向量对文档进行分类 115
4.9.3 小结 119
4.10 总结 120
第5章 卷积神经网络与句子分类 121
5.1 认识卷积神经网络 121
5.1.1 卷积神经网络的历史演变 121
5.1.2 卷积神经网络结构简述 122
5.2 输入层 125
5.3 卷积运算层 126
5.3.1 标准卷积 126
5.3.2 带步幅的卷积 127
5.3.3 带填充的卷积 127
5.3.4 转置卷积 128
5.3.5 参数共享机制 129
5.4 激活函数 131
5.4.1 常见激活函数及选择 131
5.4.2 各个非线性激活函数对比分析 132
5.5 池化层 134
5.5.1 理解池化 134
5.5.2 池化作用 135
5.5.3 最大池化 135
5.5.4 平均池化 136
5.6 全连接层 136
5.7 整合各层并使用反向传播进行训练 137
5.8 常见经典卷积神经网络 138
5.8.1 AlexNet 138
5.8.2 VGGNet 143
5.8.3 Google Inception Net 146
5.8.4 ResNet网络 149
5.9 利用CNN对MNIST数据集进行图片分类 150
5.9.1 数据样本 151
5.9.2 实现CNN 151
5.9.3 分析CNN产生的预测结果 153
5.10 利用CNN进行句子分类 154
5.10.1 CNN结构部分 154
5.10.2 池化运算 157
5.10.3 利用CNN实现句子分类 158
5.11 总结 160
第6章 循环神经网络 161
6.1 计算图及其展开 162
6.2 RNN解读 163
6.2.1 序列数据模型 163
6.2.2 数学层面简要解读RNN 165
6.3 通过时间的反向传播算法 166
6.3.1 反向传播工作原理 166
6.3.2 直接使用反向传播的局限性 167
6.3.3 通过反向传播训练RNN 168
6.3.4 截断BPTT 168
6.3.5 BPTT的局限性——梯度消失和梯度爆炸 168
6.4 RNN的应用类型 170
6.4.1 一对一的RNN 170
6.4.2 一对多的RNN 170
6.4.3 多对一的RNN 171
6.4.4 多对多的RNN 171
6.5 利用RNN生成文本 172
6.5.1 定义超参数 172
6.5.2 随着时间的推移展开截断BPTT的输入 173
6.5.3 定义验证数据集 173
6.5.4 定义权重值和偏差 174
6.5.5 定义状态永久变量 174
6.5.6 使用展开的输入计算隐藏状态和输出 174
6.5.7 计算损失 175
6.5.8 在新文本片段的开头重置状态 175
6.5.9 计算验证输出 176
6.5.10 计算梯度和优化 176
6.6 输出新生成的文本片段 176
6.7 评估RNN的文本结果输出 177
6.8 困惑度——文本生成结果质量的度量 178
6.9 具有上下文特征的循环神经网络——RNN-CF 179
6.9.1 RNN-CF的技术说明 180
6.9.2 RNN-CF的实现 181
6.9.3 定义RNN-CF超参数 181
6.9.4 定义输入和输出占位符 181
6.9.5 定义RNN-CF的权重值 182
6.9.6 用于维护隐藏层和上下文状态的变量和操作 183
6.9.7 计算输出 184
6.9.8 计算损失 185
6.9.9 计算验证输出 185
6.9.10 计算测试输出 186
6.9.11 计算梯度和优化 186
6.10 使用RNN-CF生成的文本 186
6.11 总结 188
第7章 长短期记忆 190
7.1 LSTM简述 191
7.2 LSTM工作原理详解 192
7.2.1 梯度信息如何无损失传递 194
7.2.2 将信息装载入长时记忆细胞 194
7.2.3 更新细胞状态可能产生的问题及解决方案 196
7.2.4 LSTM模型输出 199
7.3 LSTM与标准RNN的区别 200
7.4 LSTM如何避免梯度消失和梯度爆炸问题 201
7.5 优化LSTM 203
7.5.1 贪婪采样 203
7.5.2 集束搜索 204
7.5.3 使用词向量 205
7.5.4 双向LSTM 206
7.6 LSTM的其他变体 207
7.6.1 窥视孔连接 207
7.6.2 门控循环单元 208
7.7 总结 210
第8章 利用LSTM自动生成文本 211
8.1 文本到文本的生成 212
8.1.1 文本摘要 212
8.1.2 句子压缩与融合 213
8.1.3 文本复述生成 213
8.2 意义到文本的生成 214
8.2.1 基于深层语法的文本生成 214
8.2.2 基于同步文法的文本生成 215
8.3 数据到文本的生成 216
8.4 文本自动生成前的数据准备 218
8.4.1 数据集 218
8.4.2 预处理数据 220
8.5 实现LSTM 220
8.5.1 定义超参数 221
8.5.2 定义参数 221
8.5.3 定义LSTM细胞及其操作 223
8.5.4 定义输入和标签 223
8.5.5 定义处理序列数据所需的序列计算 224
8.5.6 定义优化器 225
8.5.7 随着时间的推移衰减学习率 225
8.5.8 进行预测 226
8.5.9 计算困惑度(损失) 227
8.5.10 重置状态 227
8.5.11 贪婪采样打破重复性 227
8.5.12 生成新文本 227
8.5.13 示例生成的文本 228
8.6 标准LSTM与带有窥视孔连接和GRU的LSTM的比较 229
8.6.1 标准LSTM 229
8.6.2 门控循环单元 231
8.6.3 带窥视孔连接的LSTM 233
8.6.4 随着时间的推移训练和验证困惑度 235
8.7 优化LSTM——集束搜索 236
8.7.1 实现集束搜索 236
8.7.2 使用集束搜索生成文本的示例 238
8.8 改进LSTM——使用词而不是n-gram生成文本 239
8.8.1 维度问题 239
8.8.2 完善Word2vec 239
8.8.3 使用Word2vec生成文本 240
8.8.4 使用LSTM-Word2vec和集束搜索生成文本的示例 241
8.8.5 困惑度随着时间推移的变化情况 242
8.9 使用TensorFlow RNN API 242
8.10 总结 246
第9章 利用LSTM实现图像字幕自动生成 247
9.1 简要介绍 248
9.2 发展背景 248
9.3 利用深度学习框架从图像中生成字幕 249
9.3.1 End-to-End 框架 249
9.3.2 组合框架 251
9.3.3 其他框架 252
9.4 评估指标和基准 253
9.5 近期研究 254
9.6 图像字幕的产业布局 255
9.7 详解图像字幕自动生成任务 255
9.7.1 认识数据集 255
9.7.2 用于图像字幕自动生成的深度学习管道 257
9.7.3 使用CNN提取图像特征 259
9.7.4 使用VGG-16加载权重值并进行推理 260
9.7.5 学习词向量 264
9.7.6 为LSTM模型准备字幕数据 265
9.7.7 生成LSTM的数据 266
9.7.8 定义LSTM 267
9.7.9 定量评估结果 270
9.7.10 为测试图像集生成字幕 273
9.7.11 使用TensorFlow RNN API和预训练的GloVe词向量 276
9.8 总结 284
第10章 情感分析 286
10.1 认识情感分析 286
10.2 情感分析的问题 288
10.3 情感文档分类 291
10.4 句子主观性与情感分类 292
10.5 基于方面(Aspect)的情感分析 293
10.6 情感词典生成 293
10.7 意见摘要 294
10.8 比较观点分析 294
10.9 意见搜索 295
10.10 垃圾评论检测 295
10.10.1 垃圾评论概述 295
10.10.2 垃圾评论的类型 296
10.10.3 可观察到的信息 297
10.10.4 数据样本 298
10.10.5 垃圾评论检测方法 299
10.11 评论的质量 302
10.12 利用TensorFlow进行中文情感分析实现 304
10.12.1 训练语料 304
10.12.2 分词和切分词 304
10.12.3 索引长度标准化 305
10.12.4 反向切分词 305
10.12.5 准备词向量矩阵 306
10.12.6 填充和截短 306
10.12.7 构建模型 306
10.12.8 结论 307
10.13 总结 308
第11章 机器翻译 310
11.1 机器翻译简介 311
11.2 基于规则的翻译 312
11.2.1 基于转换的机器翻译 312
11.2.2 语际机器翻译 314
11.2.3 基于字典的机器翻译 317
11.3 统计机器翻译 318
11.3.1 统计机器翻译的基础 318
11.3.2 基于词的翻译 319
11.3.3 基于短语的翻译 319
11.3.4 基于句法的翻译 320
11.3.5 基于分层短语的翻译 321
11.3.6 统计机器翻译的优势与不足 321
11.4 神经网络机器翻译 321
11.4.1 发展背景 321
11.4.2 神经网络机器翻译的特性 323
11.4.3 通过例子来认识神经网络机器翻译(NMT)模型的结构 323
11.4.4 神经网络机器翻译(NMT)模型结构详解 323
11.5 神经网络机器翻译(NMT)系统的前期准备工作 326
11.5.1 训练阶段 326
11.5.2 反转源语句 327
11.5.3 测试阶段 328
11.6 BLEU评分——评估机器翻译系统 329
11.6.1 BLEU简述 329
11.6.2 BLEU度量 330
11.6.3 BLEU的调整和惩罚因子 332
11.6.4 BLEU得分总结 333
11.7 完整实现神经网络机器翻译——德语到英语翻译 333
11.7.1 关于样本数据 334
11.7.2 预处理数据 334
11.7.3 学习词向量 335
11.7.4 定义编码器和解码器 336
11.7.5 定义端到端输出计算 338
11.7.6 神经网络机器翻译系统运行结果(部分)的展示 339
11.8 结合词向量训练神经网络机器翻译系统 342
11.8.1 最大化数据集词汇和预训练词向量之间的匹配 342
11.8.2 为词嵌入层定义TensorFlow变量 344
11.9 优化神经网络机器翻译系统 346
11.9.1 Teacher Forcing算法 346
11.9.2 深度 LSTM 348
11.9.3 注意力模型 349
11.10 实现注意力机制 356
11.10.1 定义权重值 356
11.10.2 计算注意力 357
11.10.3 含有注意力机制的神经网络机器翻译的部分翻译结果 358
11.11 可视化源语句和目标语句的注意力 361
11.12 历史性突破——BERT模型 362
11.12.1 BERT模型简述 362
11.12.2 BERT模型结构 363
11.13 总结 364
第12章 智能问答系统 366
12.1 概要 366
12.2 基于知识库的问答 367
12.2.1 信息抽取 367
12.2.2 语义分析模式 371
12.2.3 信息抽取与语义分析小结 374
12.2.4 挑战 374
12.3 机器理解中的深度学习 375
12.3.1 任务描述 375
12.3.2 基于特征工程的机器理解方法 378
12.3.3 机器理解中的深度学习方法 381
12.4 利用TensorFlow实现问答任务 386
12.4.1 bAbI数据集 386
12.4.2 分析GloVe并处理未知令牌 387
12.4.3 已知或未知的数据部分 388
12.4.4 定义超参数 390
12.4.5 神经网络结构部分 391
12.4.6 输入部分 392
12.4.7 问题部分 392
12.4.8 情景记忆部分 392
12.4.9 注意力部分 393
12.4.10 答案模块 394
12.4.11 模型优化 395
12.4.12 训练模型并分析预测 395
12.5 总结 397
2018年,其实是自然语言处理领域收获颇丰的一年,尤其是以Google公司在2018年11月份发布的BERT模型最为世人所瞩目,可以说是最近AI研究领域最为火爆的历史性突破。最近几年,无论从媒体报道还是切身感受,我们都看到人工智能目前的发展势头非常迅猛。如果我们简单回顾一下人工智能发展历程,不难发现其轨迹有三个发展阶段:第一个阶段是计算智能阶段,其典型表现在于计算机和人类相比是能存会算,其超大存储量、超高计算速度方面均可完胜我们人类;第二个阶段是感知智能阶段,具体表现在以语音识别和图像识别技术为代表的迅猛发展,如综艺电视节目中的“机智过人”“最强大脑”就是其很好的呈现形式;第三个阶段是认知智能阶段,这个阶段需要机器能够思考并具有情感。正因为人工智能与我们日常生活的联系越来越紧密,且自然语言处理技术是推动机器实现认知的关键性研究领域,所以我们有必要对自然语言处理应用进行深入探索。本书将利用目前流行的Google技术框架(TensorFlow)来实现自然语言处理方面的应用。
由于我们生活的方方面面被赋予了越来越多的数字化内容,因此相应的数据量也在呈指数级增长,并且大多数数据是与语言相关的数据,如电子邮件、社交媒体帖子、电话和网络文章,自然语言处理(NaturalLanguageProcessing,NLP)能够有效地利用这些数据帮助人们完成日常业务工作。NLP已经彻底改变了我们使用数据改善业务和生活的方式,并将在我们未来的日常生活中发挥更大的作用。
NLP最普遍的使用案例之一是虚拟助手(Virtual Assistants,VA),如百度小度助手、Apple的Siri、谷歌助手(Google Assistant)和亚马逊 Alexa。当我向VA询问“附近最便宜的火锅”时(笔者利用手机上百度地图小度时,它会把附近最便宜的火锅店排在第一位),就会触发一系列复杂的NLP任务。首先VA需要了解(解析)我的请求(了解它需要检索火锅的价格,而不是停车位计时的价格),VA做出的决定是“什么是便宜的?”;然后VA需要对附近火锅的价格进行排名(也有可能基于我过去吃过的火锅店);最后VA抓取相关数据获取附近火锅的价格,并通过分析每家火锅店的价格和评论对它们进行排名。其实,我们在几秒钟内看到的结果是执行一系列非常复杂NLP任务的结果。
正是NLP在我们日常生活中呈现出越来越多的便利性,笔者才更想对NLP背后的模型原理和具体应用进行深入的探讨,以便我们对NLP有更多的认知。另外,笔者查看了近些年来的相关文献,发现单独讲解NLP方面的理论文献国内外都有,单独撰写NLP任务实现的技术工具(如TensorFlow)的图书也很多,而将二者结合起来的图书,目前在国内还没有发现(也许有,只是笔者没有发现而已)。于是,2018年4月,笔者就想对关于利用TensorFlow技术框架来实现NLP任务应用方面进行成体系地探索,以便对今后的工作有所积累。本书在创作过程中参考了《Natural Language Processing with TensorFlow》(Thushan Ganegedara著)中的一些内容,在此向Thushan Ganegedara表达个人的敬意!
通过阅读本书,你将学会如何利用深度学习来实现许多有意义的NLP任务。对于本书中涉及的NLP任务,我们都有具体的代码实现(含实现过程),使用的技术框架为TensorFlow(1.8版本),编程语言为Python(3.6版本)。
本书主要内容
第1章 自然语言处理基础。首先介绍自然语言处理的含义及NLP中的一些常见子任务;然后讲述NLP的发展历程:偏理论的理性主义、偏实践应用的经验主义和深度学习阶段;接着对NLP任务中深度学习的局限性进行了大致分析;最后,我们对于NLP的应用场景和发展前景做了简要阐述。
第2章 深度学习基础。首先介绍深度学习的概念和演变过程,同时介绍了深度学习的基础模型——神经元模型,并对单层神经网络和多层神经网络模型(深度学习)的结构和原理进行了深度解读;然后介绍Encoder-Decoder网络和深度学习中最常见的优化算法——随机梯度下降;最后介绍反向传播算法(BP算法)。
第3章 TensorFlow。首先介绍TensorFlow的产生、主要特征和相关安装等基础准备内容,同时介绍了在执行TensorFlow程序时需要构建计算图及其构成元素,并详细解读了TensorFlow的架构和工作原理,还给出了一个示例来加深理解;然后从TensorFlow客户端的角度通过代码逐层剖析TensorFlow的内部运行情况,以便让我们对TensorFlow的内部运行机制、各个基础组件之间的关联等有深入的了解;最后介绍变量作用域机制并实现一个完整的神经网络示例。
第4章 词嵌入。首先介绍分布式表示,对其含义、类型及简要特征有一个直观的认识;其次,我们重点对CBOW模型、Skip-gram模型及GloVe模型的工作原理和内部架构进行深度解析;最后利用前面的模型,通过TensorFlow实现一个文档分类任务。
第5章 卷积神经网络(CNN)与句子分类。首先介绍CNN的历史演变过程,并对其5个层级结构(输入层、卷积运算层、激励层、池化层、全连接层)和4个基本运算单元(卷积运算、池化运算、全连接运算和识别运算)进行了介绍;然后介绍几种常见的经典卷积神经网络:AlexNet、VGGNet、Google Inception Net和ResNet,并逐一从模型思想、结构、特性亮点等方面进行详细解读;最后为了将上述解析的模型思想真正落实到代码层面上,我们给出两个应用案例:利用CNN对MNIST数据集进行图片分类和利用CNN对句子进行分类。
第6章 循环神经网络(RNN)。首先通过计算图及其展开解读了循环的任何函数本质上可以认为是一种循环神经网络的说法;然后介绍时间的反向传播算法(BPTT),我们将学习反向传播的工作原理、为什么不能对RNN使用标准反向传播、如何使用BPTT对数据进行RNN训练、截断BPTT和BPPTT的局限性等,并解读其局限性中的常见问题及对应的解决方法;最后我们将看到一个RNN的应用——文本生成,并研究了一种能够捕获更长记忆的RNN变体(被称为RNN-CF),还给出了其在实例中的应用。
第7章 长短期记忆网络(LSTM)。首先介绍LSTM及其高级架构,并深入研究LSTM中发生的详细计算,结合一个例子讨论了该计算的过程;然后介绍了几个可以提高LSTM性能的扩展,即贪心采样(一种非常简单的技术)、集束搜索(一种更复杂的搜索技术)及BiLSTM模型等;最后介绍了标准LSTM的两种变体:窥视孔连接和GRU。
第8章 利用LSTM自动生成文本。首先广泛地评估了LSTM在文本生成任务中的表现;然后定性和定量地测量LSTMS生成的文本有多好,并对LSTM、带窥视孔连接的LSTM和GRU进行比较;最后如何将词嵌入引入模型中,以改进LSTM生成的文本。
第9章 利用LSTM实现图像字幕自动生成。首先回顾了图像字幕的主要发展及其对研究和行业部署的影响;其次详细介绍了基于深度学习的图像字幕自动生成的两大框架;最后对图像字幕的自动生成任务进行了详解。
第10章 情感分析。首先介绍情感分析的应用、情感问题的界定及情感文档的分类,同时对句子观点的主观性、基于Aspect的情感分析、情感词典的生成、比较观点分析及观点的检索做了介绍;然后重点阐述了垃圾评论的各种情况;最后利用TensorFlow对于酒店评论样本数据进行了情感分析建模比较,并得出相关结论。
第11章 机器翻译。首先对基于规则的机器翻译、统计机器翻译等传统的机器翻译情况进行了详细解释,并对基于神经网络的神经网络机器翻译模型的架构和工作机制进行了深度剖析,同时对2018年11月份发布的具有重大突破性的BERT模型进行了分析;然后介绍如何实现一个NMT系统;最后讲解如何改进标准NMT系统。
第12章 智能问答系统。本章简要介绍了基于深度学习的问答方法,特别是对知识库和机器理解的问答。深度学习的优点是可以将所有文本跨度(包括文档、问题和潜在答案)转换为向量嵌入,然而基于深度学习的QA模型存在许多挑战。例如,现有的神经网络(RNN和CNN)仍然不能精确地捕获给定问题的语义含义,特别是对于文档,主题或逻辑结构不能通过神经网络容易地建模,并且在知识库中嵌入项目仍然没有有效的方法,以及QA中的推理过程很难通过向量之间的简单数值运算来建模。这些问题是质量保证任务面临的主要挑战,未来应引起更多的关注。
代码下载与技术支持
本书示例代码下载地址请扫描下面的二维码获得。如果发现书中存在问题或对本书有什么建议,请联系电子邮箱[email protected]。
致谢
笔者在撰写这样一本技术性很强的书时确实有不少感慨,但正如一位技术界的前辈说的“没有等出来的美丽,只有走出来的辉煌”,所以在人生的路上,能够让自己用行动对冲遗憾,足矣。
在此,我要感谢本书的每一位读者,希望本书能够为大家带来一些启发。感谢清华大学出版社夏毓彦及其他老师的支持。感谢周一铁先生、张述睿先生的支持。感谢我的朋友和同学们,得益于你们一直以来的理解和支持,我才能有信心完成这本书的创作。
笔者自认才疏学浅,对深度学习和自然语言处理也仅是略知皮毛,且因时间有限,书中难免有错谬之处,还请各位读者予以告知,将不胜感激!
李孟全
2019年5月
评论
还没有评论。