《TensorFlow自然语言处理及应用》以TensorFlow为平台,讲述TensorFlow与自然语言的技术及开发。书中每章都以理论开始,以TensorFlow应用及自然语言分析结束,将理论与实践相结合,让读者可以快速掌握TensorFlow与自然语言分析。本书共9章,主要内容为TensorFlow与编程、自然语言处理与深度学习基础、神经网络算法基础、词嵌入、卷积神经网络分析与文本分类、几种经典的卷积神经网络、循环神经网络及语言模型、长短期记忆及自动生成文本、其他网络的经典分析与应用。
《TensorFlow自然语言处理及应用》注重应用,实例丰富,可作为高等院校人工智能相关专业的教材,也可作为研究TensorFlow与自然语言分析的广大科研人员、学者、工程技术人员的参考书籍。
每章都以理论开始,以 TensorFlow 应用及自然语言分析结束,将理论与实践相结合,让读者可以快速掌握 TensorFlow 与自然语言分析。
?由浅入深,循序渐进 首先介绍 TensorFlow 框架本身的特点与编程实现,然后介绍NLP在TensorFlow中的实现,包括词嵌入的各种方法、CNN/RNN/LSTM 的 TensorFlow实现及应用、LSTM在文本生成中的应用等。
?注重应用,实例丰富 给出了50多个实例,采用 TensorFlow 代码实现自然语言处理,可使读者更容易理解自然语言处理技术的原理。
?对比学习,视角直观 使用同一组数据集分析不同实例,利用不同方法进行求解,比较各种方法的求解结果,通过对比学习,读者能够更直观地感受各方法的优缺点。
?资源丰富,便于教学 为了便于教师教学,提供程序代码、教学课件等教学资料,获取方式详见前言。
近年来,随着机器学习和深度学习的发展,TensorFlow作为它们的开源框架,也得到了快速发展。TensorFlow的核心组件包括分发中心、执行器、内核应用和设备层,它的工作原理是基于数据流图和计算图的相互转化过程。
TensorFlow的前身是DistBelief神经网络算法库,它的功能是构建各尺度下的神经网络分布式学习和交互系统,也被称为第一代机器学习系统。随着时间的推移,DistBelief逐渐发展并应用于许多谷歌产品中,包括语言识别、图像识别、自然语言处理等。随着异构硬件和多核在CPU上运行效率的需求,TensorFlow应运而生。由于TensorFlow灵活高效且支持各种不同类型的硬件,故其在各领域中得到了广泛的应用。
随着计算机和互联网的广泛应用,计算机可处理的自然语言文本数量空前增长,面向海量信息的文本挖掘、信息提取、跨语言信息处理、人工交互等应用需求急速增长,自然语言处理研究必将对人们的生活产生深远的影响。自然语言处理是人工智能中最困难的问题之一,对自然语言处理的研究是充满魅力与挑战的,其中汉语相对于其他语种更复杂,更难以分析。
近年来自然语言处理(NLP)技术已经取得了阶段性进展,在电商、金融、翻译、旅游等行业有了广泛应用,应用场景涵盖语音交互、文本分类、图像识别等。在深度学习技术的驱动下,自然语言处理技术应用又上了一个新台阶。TensorFlow作为广泛使用的深度学习框架,在自然语言处理领域得到了广泛应用。之所以结合TensorFlow进行自然语言处理,是因为TensorFlow完全绑定兼容Python,即具备Python的特点,所以利用TensorFlow完全可以对大数据进行提取、分析、降维。
本书首先介绍TensorFlow框架本身的特点与编程实现,然后介绍NLP在TensorFlow中的实现,此部分内容涉及词嵌入的各种方法、CNN/RNN/LSTM的TensorFlow实现及应用、LSTM在文本生成中的应用等。采用TensorFlow代码实现自然语言处理,可以使读者更容易理解自然语言处理技术的原理。
本书主要内容如下所述。
第1~3章介绍TensorFlow框架、自然语言处理与深度学习、神经网络算法等内容,主要包括TensorFlow软件特点及其编程实现,自然语言处理与深度学习的定义、联系、应用,神经网络的基础等内容。通过这些内容的学习,读者可对TensorFlow的特点、编程应用、自然语言处理、深度学习、神经网络算法等有简单的认识,轻松了解这些定义之间的区别与联系。
第4章介绍词嵌入的相关内容,主要包括词嵌入分布式表示、jieba分词处理、离散表示法、word2vec模型等内容。通过这些内容的学习,读者可对词嵌入有全面的认识,也能体会到利用TensorFlow框架实现词嵌入有多么简单、快捷、方便。
第5~8章介绍深度学习及自然语言处理相关内容,主要包括卷积神经网络、循环神经网络、长短期记忆、文本分析、语言模型、自动生成文本等内容。通过这些内容的学习,读者可从各个方面深入透彻地了解深度神经网络的相关概念,学会利用神经网络解决自然语言处理等机器问题,进一步了解TensorFlow的强大功能,同时也就明白了为什么TensorFlow可以成为现今最为流行的软件之一。
第9章介绍机器学习的综合实例,在深度神经网络、自然语言处理的基础上,综合应用深度神经网络知识求解实际问题。其中有几个实例使用的是同一组数据集,利用不同的方法进行求解,比较各种方法的求解结果,通过对比学习,读者能够更直观地感受各方法的优缺点,这样读者在以后的应用中可以根据需要选择合适的方法。
【配套资源】
本书提供教学课件、程序代码等配套资源,可以在清华大学出版社官方网站本书页面下载,或者扫描封底的书圈二维码在公众号下载。
由于时间仓促,加之编者水平有限,书中错误和疏漏之处在所难免,诚恳地期望各领域的专家和广大读者批评指正。
编者
2024年8月
第1章 TensorFlow与编程 1
1.1 语言与系统的支持 1
1.2 TensFlow的特点 2
1.3 TensorFlow的环境搭建 3
1.3.1 安装环境介绍 3
1.3.2 安装TensorFlow 5
1.3.3 安装测试 6
1.4 张量 7
1.4.1 张量的概念 7
1.4.2 张量的使用 8
1.4.3 NumPy库 9
1.4.4 张量的阶 10
1.4.5 张量的形状 10
1.5 认识变量 11
1.5.1 变量的创建 11
1.5.2 变量的初始化 19
1.6 矩阵的操作 21
1.6.1 矩阵的生成 22
1.6.2 矩阵的变换 25
1.7 图的实现 31
1.8 会话的实现 34
1.9 读取数据方式 36
1.9.1 列表格式 37
1.9.2 读取图像数据 38
第2章 自然语言处理与深度学习基础 40
2.1 自然语言概述 40
2.1.1 自然语言处理面临的困难 40
2.1.2 自然语言处理的发展趋势 41
2.1.3 自然语言处理的特点 42
2.2 NLP技术前沿与未来趋势 43
2.2.1 挑战与突破 43
2.2.2 人机交互的未来 43
2.2.3 未来发展趋势与展望 44
2.2.4 技术挑战与解决路径 44
2.3 深度学习 44
2.3.1 深度学习背景 45
2.3.2 深度学习的核心思想 46
2.3.3 深度学习的应用 47
2.4 深度学习的优势与劣势 51
第3章 神经网络算法基础 52
3.1 激活函数及实现 53
3.1.1 激活函数的用途 53
3.1.2 几种激活函数 53
3.1.3 几种激活函数的绘图 57
3.2 门函数及实现 59
3.3 单个神经元的扩展及实现 62
3.4 构建多层神经网络 65
第4章 词嵌入 69
4.1 词嵌入概述 69
4.2 分布式表示 69
4.2.1 分布式假设 70
4.2.2 共现矩阵 70
4.2.3 存在的问题 73
4.3 jieba分词处理 73
4.3.1 jieba库的三种模式和常用函数 74
4.3.2 jieba库分词的其他操作 75
4.3.3 中文词频统计实例 81
4.4 离散表示 82
4.4.1 one-hot编码 82
4.4.2 词袋模型 87
4.4.3 TF-IDF算法 90
4.4.4 n-gram模型 92
4.5 word2vec模型 98
4.5.1 word2vec模型介绍 98
4.5.2 word2vec模型结构 103
4.5.3 Skip-gram算法 105
4.5.4 CBOW算法 106
4.5.5 CBOW算法与Skip-gram算法的对比 107
4.5.6 算法改进 108
4.5.7 训练概率 109
4.5.8 word2vec实现 110
第5章 卷积神经网络分析与文本分类 120
5.1 全连接网络的局限性 120
5.2 卷积神经网络的结构 121
5.2.1 卷积层 122
5.2.2 池化层 129
5.2.3 全连接层 131
5.3 卷积神经网络的训练 131
5.3.1 池化层反向传播 132
5.3.2 卷积层反向传播 134
5.4 卷积神经网络的实现 139
5.4.1 识别0和1数字 139
5.4.2 预测MNIST数字 145
5.5 NLP的卷积 149
5.5.1 NLP卷积概述 149
5.5.2 用于文本分类的CNN 151
第6章 几种经典的卷积神经网络 161
6.1 AlexNet 161
6.1.1 AlexNet的结构 161
6.1.2 AlexNet的亮点 162
6.1.3 AlexNet的实现 163
6.2 DeepID网络 168
6.3 VGGNet 169
6.3.1 VGGNet的特点 169
6.3.2 VGGNet的结构 169
6.3.3 VGGNet的实现 171
6.4 Inception Net 175
6.4.1 Inception Net的原理 175
6.4.2 Inception Net的经典应用 176
6.5 ResNet 181
6.5.1 ResNet的结构 181
6.5.2 ResNet的实现 184
第7章 循环神经网络及语言模型 190
7.1 循环神经网络概述 190
7.1.1 循环神经网络的原理 191
7.1.2 循环神经网络的简单应用 194
7.2 损失函数 195
7.3 梯度求解 196
7.3.1 E3关于参数V的偏导数 197
7.3.2 E3关于参数W的偏导数 197
7.3.3 E3关于参数U的偏导数 197
7.3.4 梯度消失问题 198
7.4 循环神经网络的经典应用 198
7.4.1 实现二进制数加法运算 198
7.4.2 实现拟合回声信号序列 202
7.4.3 基于字符级循环神经网络的语言模型 209
7.4.4 使用PyTorch实现基于字符级循环神经网络的语言模型 213
第8章 长短期记忆及自动生成文本 220
8.1 长短期记忆网络 220
8.1.1 LSTM核心思想 221
8.1.2 LSTM详解与实现 222
8.2 窥视孔连接 230
8.3 GRU网络对MNIST数据集分类 231
8.4 双向循环神经网络对MNIST数据集分类 233
8.5 CTC实现端到端训练的语音识别模型 237
8.6 LSTM生成文本预测 244
8.6.1 模型训练 244
8.6.2 预测文本 246
第9章 其他网络的经典分析与应用 248
9.1 自编码网络及实现 248
9.1.1 自编码网络的结构 248
9.1.2 自编码网络的代码实现 249
9.2 栈式自编码器及实现 256
9.2.1 栈式自编码概述 256
9.2.2 栈式自编码训练 256
9.2.3 栈式自编码实现MNIST手写数字分类 257
9.2.4 栈式自编码器的应用场合与实现 259
9.3 变分自编码及实现 268
9.3.1 变分自编码原理 268
9.3.2 变分自编码模拟生成MNIST数据 269
9.4 条件变分自编码及实现 275
9.4.1 条件变分自编码概述 275
9.4.2 条件变分自编码网络生成MNIST数据 275
参考文献 281