内容简介

面向自然语言处理的深度学习:用Python创建神经网络》以循序渐进的方式从理论过渡到实践,首先介绍基础知识,然后是基础数学,最后是相关示例的实现。

前三章介绍NLP的基础知识,从常用的Python库开始,然后是词向量表示,再到高级算法,例如用于文本数据的神经网络。

最后两章完全侧重于实现,运用广泛流行的Python工具TensorFlow和Keras,处理诸如RNN、长短期记忆(LSTM)网络、seq2seq等复杂架构。我们尽最大努力遵循循序渐进的方法,最后集合全部知识构建一个问答系统。

作者简介

PalashGoyal是一名高级数据科学家,目前从事将数据科学和深度学习用于在线营销领域的工作。他曾在印度理工学院(IIT)的Guwahati分校学习数学和计算机科学,毕业后他开始在快节奏环境中工作。他在电子商务、旅游、保险和银行等行业拥有丰富的经验,热衷于数学和金融。他利用深度学习和强化学习技术进行价格预测与投资组合管理,在业余时间管理他的多种加密货币和首次代币发行(ICO)。他追踪数据科学领域的趋势,并在博客http://madoverdata.com上分享这些趋势。他还会在空闲时发表与智慧农业相关的文章。

SumitPandey毕业于印度理工学院(IIT)的Kharagpur分校,曾在AXABusinessServices工作了大约一年,担任数据科学顾问。他目前正在创办自己的企业。

KaranJain是Sigtuple公司的一名产品分析师,他在那里研究尖端的AI驱动诊断产品。此前,他曾在医疗保健解决方案公司Vitrana担任数据科学家。他喜欢在快节奏的数据初创公司工作。在闲暇时间,Karan深入涉猎基因组学、BCI接口和光遗传学。最近,他对用于便携式诊断的POC设备和纳米技术产生了兴趣。Karan在LinkedIn上有3000多名粉丝。

目录

译者序

前言

致谢

关于作者

关于技术审校人员

第1章 自然语言处理和深度学习概述1

1.1 Python包2

1.1.1 NumPy2

1.1.2 Pandas6

1.1.3 SciPy9

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 NLTK14

1.3.2 TextBlob15

1.3.3 SpaCy17

1.3.4 Gensim19

1.3.5 Pattern20

1.3.6 StanfordCoreNLP21

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 Theano42

1.12.2 Theano安装43

1.12.3 Theano示例44

1.12.4 TensorFlow45

1.12.5 数据流图46

1.12.6 TensorFlow安装47

1.12.7 TensorFlow示例47

1.12.8 Keras49

1.13 下一步52

第2章 词向量表示53

2.1 词嵌入简介53

2.2 word2vec56

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 自然语言处理和RNN91

3.1.5 RNN的机制93

3.1.6 训练RNN96

3.1.7 RNN中隐藏状态的元意义98

3.1.8 调整RNN99

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

......

前言/序言

面向自然语言处理的深度学习:用Python创建神经网络》使用适当和完整的神经网络体系结构示例,例如用于自然语言处理(NLP)任务的循环神经网络(RNN)和序列到序列(seq2seq),以较为全面的方式简化和呈现深度学习的概念。《面向自然语言处理的深度学习:用Python创建神经网络》试图弥合理论与应用之间的缺口。

面向自然语言处理的深度学习:用Python创建神经网络》以循序渐进的方式从理论过渡到实践,首先介绍基础知识,然后是基础数学,最后是相关示例的实现。

前三章介绍NLP的基础知识,从最常用的Python库开始,然后是词向量表示,再到高级算法,例如用于文本数据的神经网络。

最后两章完全侧重于实现,运用广泛流行的Python工具TensorFlow和Keras,处理诸如RNN、长短期记忆(LSTM)网络、seq2seq等复杂架构。我们尽最大努力遵循循序渐进的方法,最后集合全部知识构建一个问答系统。

面向自然语言处理的深度学习:用Python创建神经网络》旨在为想要学习面向NLP的深度学习技术的读者提供一个很好的起点。

面向自然语言处理的深度学习:用Python创建神经网络》中展示的所有代码都在GitHub上以IPythonnotebook和脚本的形式公开,使读者能够实践这些示例,并以自己感兴趣的任何方式对它们进行扩展。


其他推荐