自然语言处理是一门集语言学、计算机科学、数学于一体的科学,它包含很广泛的内容,根据其应用目的不同,所采用的技术手段也不尽相同。本书从数理基础到模型介绍,再到生活应用,从不同的层次,由浅入深、循序渐进地展示一个完整的自然语言处理学习体系。
本书分两部分。第一部分为理论基础,其中第1~4章对什么是自然语言处理、当前主流的自然语言处理技术,以及目前自然语言处理遇到的困境进行介绍;第5、6章从数学基础、语言模型,以及词法分析、语义分析等方面介绍自然语言处理的底层逻辑和模型原理。第二部分为实践应用,第7~11章介绍自然语言处理在生活中的应用。
本书实用性强、案例贴近生活,每章配有习题及其答案,读者可以扫描二维码查看习题答案。
样章试读
目录
- 目录
第一部分 理论基础
第1章 绪论 1
1.1 基本概念 1
1.2 自然语言处理的产生与发展 2
1.3 基本问题和主要困难 3
1.3.1 自然语言处理的基本问题 3
1.3.2 自然语言处理面对的主要困难 4
1.4 深度学习在自然语言处理中的应用 5
1.4.1 深度学习概述 5
1.4.2 面向自然语言处理的深度学习方法 5
1.4.3 目前深度学习应用存在的局限及展望 6
1.5 本章小结 7
习题1 7
第2章 数学基础 8
2.1 概率论基础 8
2.1.1 样本空间和概率 8
2.1.2 随机变量 9
2.1.3 条件概率公式、全概率公式和贝叶斯公式 10
2.1.4 期望和方差 11
2.2 信息论基础 11
2.2.1 自信息和熵 12
2.2.2 联合熵和条件熵 13
2.2.3 互信息、相对熵和交叉熵 14
2.2.4 困惑度 14
2.2.5 噪声信道模型 15
2.3 深度学习的数学基础 16
2.3.1 最大似然估计 16
2.3.2 梯度分析 17
2.3.3 梯度下降法 19
2.3.4 梯度消失和梯度爆炸 19
2.4 本章小结 21
习题2 21
第3章 语言模型 22
3.1 语言模型概念及基础理论 22
3.1.1 n元语法模型 22
3.1.2 神经概率语言模型 24
3.1.3 预训练语言模型 24
3.2 语言模型性能评价 26
3.2.1 基于信息熵的语言模型复杂度度量 26
3.2.2 基于困惑度的语言模型复杂度度量 27
3.2.3 基于语言模型的汉语信息熵估算 28
3.3 数据平滑 28
3.3.1 问题的提出 28
3.3.2 加法平滑方法 29
3.3.3 Good-Turing估计法 29
3.3.4 Katz平滑方法 29
3.3.5 Jelinek-Mercer平滑方法 30
3.3.6 Witten-Bell平滑方法 31
3.3.7 绝对减值法 32
3.4 神经网络语言模型 32
3.4.1 基础模型 32
3.4.2 CNN模型 33
3.4.3 RNN模型及其变体 34
3.4.4 Attention模型 37
3.4.5 Transformer模型 40
3.5 语言模型应用举例 44
3.5.1 BERT模型 44
3.5.2 短文本表示 46
3.5.3 Softmax回归模型 46
3.6 本章小结 47
习题3 47
第4章 隐马尔可夫模型与条件随机场 49
4.1 马尔可夫模型 49
4.1.1 马尔可夫过程 49
4.1.2 马尔可夫性 49
4.2 隐马尔可夫模型 50
4.2.1 隐马尔可夫模型的基本理论 50
4.2.2 估计问题 52
4.2.3 序列问题 54
4.2.4 参数估计问题 55
4.3 HMM应用举例 57
4.3.1 中文分词 57
4.3.2 词性标注 58
4.4 条件随机场及其应用 59
4.4.1 条件随机场概念 59
4.4.2 条件随机场应用 64
4.5 本章小结 67
习题4 67
第5章 词法分析与词性标注 68
5.1 汉语自动分词 68
5.1.1 分词规范问题 68
5.1.2 歧义切分问题 69
5.1.3 未登录词问题 69
5.1.4 汉语自动分词的原则 70
5.1.5 分词与词性标注结果评估方法 71
5.2 自动分词基本算法 72
5.2.1 最大匹配法 72
5.2.2 最短路径方法 74
5.2.3 基于HMM的分词方法 76
5.2.4 基于Bi-LSTM-CRF的分词方法 80
5.3 未登录词识别 83
5.3.1 概述 83
5.3.2 基于决策树的未登录词识别方法 85
5.3.3 基于统计和规则的未登录词识别方法 88
5.4 词性标注方法 91
5.4.1 概述 91
5.4.2 基于规则的词性标注方法 92
5.4.3 基于统计的词性标注方法 93
5.4.4 基于深度学习的词性标注方法 95
5.5 本章小结 97
习题5 97
第6章 语义分析 98
6.1 语义网络 98
6.1.1 基本概念 98
6.1.2 语义标注 99
6.2 概念依存 100
6.3 词义消歧 101
6.3.1 基本内容 101
6.3.2 理论方法 102
6.3.3 案例分析 104
6.4 词向量表示与词嵌入 106
6.4.1 基本内容 106
6.4.2 理论方法 107
6.4.3 案例分析 110
6.5 语义分析在华为毕昇编译器AI调优中的应用 112
6.5.1 基本内容 112
6.5.2 理论方法 113
6.6 本章小结 114
习题6 114
第二部分 实践应用
第7章 机器翻译 115
7.1 机器翻译概述 115
7.1.1 机器翻译方法概述 115
7.1.2 机器翻译的研究现状 118
7.2 统计机器翻译 119
7.2.1 基于词的机器翻译 119
7.2.2 基于短语的机器翻译 129
7.2.3 基于句子的机器翻译 135
7.3 神经机器翻译 143
7.3.1 神经机器翻译概述 143
7.3.2 神经机器翻译模型 145
7.4 实战GRU翻译模型 147
7.4.1 基础知识与环境配置 148
7.4.2 代码实现 149
7.5 本章小结 153
习题7 153
第8章 文本分类、聚类和情感分析 154
8.1 文本分类 154
8.1.1 文本分类的定义 154
8.1.2 文本分类的发展 155
8.1.3 传统文本分类的实现 155
8.1.4 基于深度学习的分类器设计 161
8.2 文本聚类 164
8.2.1 基于分层的文本聚类 165
8.2.2 基于划分的文本聚类 166
8.3 情感分析 167
8.3.1 基于情感词典的情感分析 167
8.3.2 基于深度学习的方面级情感分类算法 169
8.3.3 带有Attention机制的LSTM网络的方法 173
8.3.4 带有Attention机制的双向LSTM网络的方法 175
8.4 本章小结 178
习题8 178
第9章 信息抽取 179
9.1 实体识别与抽取 179
9.1.1 命名实体识别概述 179
9.1.2 有监督学习方法实现命名实体识别 180
9.1.3 基于深度学习的NER 183
9.2 实体消歧 184
9.2.1 实体消歧概述 184
9.2.2 基于上下文相似度的实体消歧 185
9.2.3 基于实体显著性的实体消歧 186
9.2.4 基于实体关联度的实体消歧 187
9.3 关系抽取 187
9.3.1 基于模式匹配的关系抽取 187
9.3.2 基于深度学习的关系抽取方法 188
9.3.3 关系抽取展望 190
9.4 事件抽取 190
9.4.1 事件抽取任务定义 191
9.4.2 基于模式匹配的事件抽取实现 191
9.4.3 基于深度学习的事件抽取实现 192
9.5 本章小结 194
习题9 194
第10章 知识图谱 195
10.1 知识图谱发展历史 195
10.2 知识图谱基本概念 198
10.2.1 知识库的概念及分类 198
10.2.2 知识库的表示形式 199
10.3 知识图谱的生命周期 199
10.3.1 知识建模 200
10.3.2 知识抽取 204
10.3.3 知识融合 208
10.3.4 知识存储 210
10.3.5 知识计算 213
10.3.6 知识图谱应用 215
10.4 知识图谱的现有应用 216
10.4.1 语义搜索 216
10.4.2 智能问答系统 217
10.4.3 辅助决策 217
10.4.4 个性化推荐 218
10.4.5 学科知识图谱 218
10.5 本章小结 219
习题10 220
第11章 问答系统与人机对话系统 221
11.1 问答系统 221
11.1.1 系统构成 221
11.1.2 基于信息检索和答案选择的混合式问答系统 223
11.2 基于大规模知识库的问答系统 227
11.2.1 知识库问答系统任务 228
11.2.2 基于中文知识图谱的问答系统 229
11.3 阅读理解式问答系统 234
11.4 对话系统 236
11.4.1 基于深度学习的多方对话系统 236
11.4.2 对话系统相关任务 239
11.5 医学视觉问答 240
11.5.1 相关概念介绍 240
11.5.2 面向医学数据特征优化的视觉问答系统 241
11.6 问答系统在MindSpore框架中的应用 248
11.6.1 华为昇思MindSpore框架 248
11.6.2 DAM模型 250
11.6.3 基于MindSpore框架的DAM模型分析 252
11.6.4 所用数据集` 252
11.7 本章小结 252
习题11 253
参考文献 254