本书以循序渐进的方式从理论过渡到实践,首先介绍基础知识,然后是基础数学,最后是相关示例的实现。
前三章介绍NLP的基础知识,从 常用的Python库开始,然后是词向量表示,再到高级算法,例如用于文本数据的神经网络。
最后两章完全侧重于实现,运用广泛流行的Python工具TensorFlow和Keras,处理诸如RNN、长短期记忆(LSTM)网络、seq2seq等复杂架构。我们尽最大努力遵循循序渐进的方法,最后集合全部知识构建一个问答系统。
译者序
前言
致谢
关于作者
关于技术审校人员
第1章 自然语言处理和深度学习概述 1
1.1 Python包 2
1.1.1 NumPy 2
1.1.2 Pandas 6
1.1.3 SciPy 9
1.2 自然语言处理简介 11
1.2.1 什么是自然语言处理 11
1.2.2 如何理解人类的语言 11
1.2.3 自然语言处理的难度是什么 11
1.2.4 我们想通过自然语言处理获得什么 13
1.2.5 语言处理中的常用术语 13
1.3 自然语言处理库 14
1.3.1 NLTK 14
1.3.2 TextBlob 15
1.3.3 SpaCy 17
1.3.4 Gensim 19
1.3.5 Pattern 20
1.3.6 Stanford CoreNLP 21
1.4 NLP入门 21
1.4.1 使用正则表达式进行文本搜索 21
1.4.2 将文本转换为列表 21
1.4.3 文本预处理 22
1.4.4 从网页中获取文本 22
1.4.5 移除停止词 23
1.4.6 计数向量化 23
1.4.7 TF-IDF分数 24
1.4.8 文本分类器 25
1.5 深度学习简介 25
1.6 什么是神经网络 27
1.7 神经网络的基本结构 29
1.8 神经网络的类型 32
1.8.1 前馈神经网络 33
1.8.2 卷积神经网络 33
1.8.3 循环神经网络 33
1.8.4 编码器-解码器网络 34
1.8.5 递归神经网络 35
1.9 多层感知器 35
1.10 随机梯度下降 37
1.11 反向传播 40
1.12 深度学习库 42
1.12.1 Theano 42
1.12.2 Theano安装 43
1.12.3 Theano示例 44
1.12.4 TensorFlow 45
1.12.5 数据流图 46
1.12.6 TensorFlow安装 47
1.12.7 TensorFlow示例 47
1.12.8 Keras 49
1.13 下一步 52
第2章 词向量表示 53
2.1 词嵌入简介 53
2.2 word2vec 56
2.2.1 skip-gram模型 58
2.2.2 模型成分:架构 58
2.2.3 模型成分:隐藏层 58
2.2.4 模型成分:输出层 60
2.2.5 CBOW模型 61
2.3 频繁词二次采样 61
2.4 word2vec代码 64
2.5 skip-gram代码 67
2.6 CBOW代码 75
2.7 下一步 83
第3章 展开循环神经网络 85
3.1 循环神经网络 86
3.1.1 什么是循环 86
3.1.2 前馈神经网络和循环神经网络之间的差异 87
3.1.3 RNN基础 88
3.1.4 自然语言处理和RNN 91
3.1.5 RNN的机制 93
3.1.6 训练RNN 96
3.1.7 RNN中隐藏状态的元意义 98
3.1.8 调整RNN 99
3.1.9 LSTM网络 99
3.1.10 序列到序列模型 105
3.1.11 高级seq2seq模型 109
3.1.12 序列到序列用例 113
3.2 下一步 122
第4章 开发聊天机器人 123
4.1 聊天机器人简介 123
4.1.1 聊天机器人的起源 124
4.1.2 聊天机器人如何工作 125
4.1.3 为什么聊天机器人拥有如此大的商机 125
4.1.4 开发聊天机器人听起来令人生畏 126
4.2 对话型机器人 127
4.3 聊天机器人:自动文本生成 141
4.4 下一步 170
第5章 实现研究论文:情感分类 171
5.1 基于自注意力机制的句子嵌入 172
5.1.1 提出的方法 173
5.1.2 可视化 178
5.1.3 研究发现 181
5.2 实现情感分类 181
5.3 情感分类代码 182
5.4 模型结果 191
5.5 可提升空间 196
5.6 下一步 196
......