目录
第 I 部分 概念与技术
第 1 章 自然语言处理简介 2
1.1 引言 2
1.2 人类语言与智能 3
1.3 人类语言的语言层级 5
1.4 人类语言的歧义 6
1.5 自然语言处理简史 7
1.5.1 第一阶段:机器翻译
(20 世纪 60 年代以前) 7
1.5.2 第二阶段:早期人工智能在自然语言处理中的应用(20 世纪 60 年代至70 年代) 7
1.5.3 第三阶段:自然语言处理的语法逻辑阶段(20世纪 70 年代至80年代) 8
1.5.4 第四阶段:人工智能与机器学习(20 世纪 80 年代至 2000 年代) 8
1.5.5 第五阶段:BERT、Transformer、ChatGPT与大型语言模型的兴起(2000 年代–至今) 8
1.6 自然语言处理与人工智能 9
1.7 自然语言处理的主要组成部分 10
1.8 自然语言理解 11
1.8.1 语音识别 12
1.8.2 句法分析 12
1.8.3 语义分析 12
1.8.4 语用分析 12
1.9 自然语言处理的潜在应用 12
1.9.1 机器翻译 13
1.9.2 信息提取 13
1.9.3 信息检索 14
1.9.4 情感分析 14
1.9.5 问答型聊天机器人 14
第 2 章 N 元语言模型 16
2.1 引言 16
2.2 N 元语言模型 18
2.2.1 基本的 NLP 术语 20
2.2.2 语言建模与链式规则 21
2.3 马尔可夫链在 N 元模型中的应用 23
2.4 实例探究:《福尔摩斯探案集》 24
2.5 N 元模型中的香农方法 28
2.6 语言模型评估与平滑技术 31
2.6.1 困惑度 31
2.6.2 外部评估方法 32
2.6.3 零计数问题 33
2.6.4 平滑技术 33
2.6.5 拉普拉斯(加 1)平滑 33
2.6.6 加 k 平滑 35
2.6.7 回退和插值平滑 36
2.6.8 古德-图灵平滑 37
2.7 练习题 37
第 3 章 词性标注 39
3.1 词性的概念 39
3.2 词性标注 40
3.2.1 语言学中词性标注的概念 40
3.2.2 自然语言处理中词性标注的概念 40
3.2.3 宾州树库项目中使用的词性标签 41
3.2.4 自然语言处理中词性的重要性 43
3.3 自然语言理解中的主要组成部分 44
3.3.1 计算语言学和词性标注 45
3.3.2 词性和语义含义 45
3.3.3 形态与句法定义的词性标注 46
3.4 英语中的九大词性 46
3.4.1 英语词类 47
3.4.2 介词的定义 48
3.4.3 连词的定义 49
3.4.4 代词的定义 50
3.4.5 动词的定义 51
3.5 词性标注集的不同类型 52
3.5.1 标注集的概念 52
3.5.2 词性标注的歧义性 53
3.5.3 使用知识进行词性标注 54
3.6 词性标注的方法 54
3.6.1 基于规则的词性标注方法 54
3.6.2 基于规则的词性标注示例 55
3.6.3 基于概率的词性标注示例 56
3.6.4 使用 Brill 标注器的混合方法进行词性标注 57
3.6.5 基于转换的学习的概念 57
3.6.6 混合词性标注:Brill 标注器 58
3.6.7 学习 Brill 标注器的转换 58
3.7 词性标注器的评估 59
3.8 练习题 60
第 4 章 句法分析 61
4.1 引言和目的 61
4.2 句法分析介绍 62
4.2.1 句法的概念 62
4.2.2 句法规则 62
4.2.3 常见的句法模式 62
4.2.4 句法分析在自然语言处理中的重要性 63
4.3 句子中的成分类型 64
4.3.1 成分的概念 64
4.3.2 成分的种类 65
4.3.3 名词短语 65
4.3.4 动词短语 66
4.3.5 简单成分的复杂性 67
4.3.6 动词短语的子类划分 68
4.3.7 词汇在解析中的作用 69
4.3.8 语法规则中的递归 70
4.4 上下文无关语法 70
4.4.1 上下文无关语言的概念 70
4.4.2 上下文无关语法的概念 71
4.4.3 上下文无关语法的主要组成部分 71
4.4.4 使用上下文无关语法的推导 72
4.5 上下文无关语法解析 73
4.5.1 形态学解析 73
4.5.2 音位学解析 73
4.5.3 句法解析 74
4.5.4 解析作为一种树搜索 74
4.5.5 英语片段的上下文无关语法 74
4.5.6 “Play the Piano”的上下文无关语法的解析树 74
4.5.7 自顶向下解析器 75
4.5.8 自底向上解析器 76
4.5.9 解析控制 77
4.5.10 自顶向下与自底向上解析的优缺点 78
4.6 词汇化和概率解析 78
4.6.1 在解析中使用概率的原因 78
4.6.2 解析中的语义 79
4.6.3 概率上下文无关语法的概念 80
4.6.4 概率上下文无关语法的简单示例 80
4.6.5 使用概率进行语言建模 83
4.6.6 概率上下文无关语法的局限性 83
4.6.7 解决方案:词汇化解析 84
4.7 练习题 86
第 5 章 语义表示 87
5.1 引言 87
5.2 语义的概念 87
5.3 语义表示 88
5.4 语义处理 89
5.5 常见的语义表示方法 89
5.5.1 一阶谓词演算 90
5.5.2 语义网络 90
5.5.3 概念依赖图 90
5.5.4 基于框架的表达 91
5.6 语义表示的要求 92
5.6.1 可验证性 92
5.6.2 歧义性 92
5.6.3 含糊性 92
5.6.4 规范形式 93
5.7 推理 94
5.7.1 推理的概念 94
5.7.2 使用一阶谓词逻辑进行推理的例子 94
5.8 Fillmore 的普遍案例理论 95
5.8.1 Fillmore 的普遍案例理论的概念 95
5.8.2 Fillmore 理论中的主要案例角色 96
5.8.3 案例角色分析中的复杂性 97
5.9 一阶谓词逻辑 98
5.9.1 一阶谓词逻辑表示方案 98
5.9.2 一阶谓词逻辑的主要元素 98
5.9.3 一阶谓词逻辑的谓词-参数结构 100
5.9.4 一阶谓词逻辑中的语义表示问题 101
5.9.5 使用一阶谓词逻辑进行推理 101
5.10 练习题 103
第 6 章 语义分析 104
6.1 引言 104
6.1.1 语义分析的概念 104
6.1.2 语义分析在自然语言处理中的重要性 104
6.1.3 人类在语义分析方面的优势 105
6.2 词汇语义分析与组合语义分析 105
6.2.1 词汇语义分析的概念 105
6.2.2 组合语义分析的概念 106
6.3 单词意义和关系 107
6.3.1 单词意义的概念 107
6.3.2 词汇语义的类型 107
6.4 词义消歧 111
6.4.1 词义消歧的概念 111
6.4.2 词义消歧的难点 112
6.4.3 词义消歧的方法 113
6.5 WordNet 与在线词库 114
6.5.1 WordNet 的概念 114
6.5.2 Synsets 的概念 114
6.5.3 WordNet 的知识结构 115
6.5.4 WordNet 中捕获的主要词汇关系 116
6.5.5 WordNet 和词典的应用 117
6.6 其他在线词库:MeSH 117
6.6.1 MeSH 的概念 117
6.6.2 MeSH 本体的用途 118
6.7 词相似性和词库方法 118
6.7.1 引言 118
6.7.2 基于路径的相似性 119
6.7.3 基于路径的相似性问题 120
6.7.4 信息内容相似性 120
6.7.5 Resnik 方法 122
6.7.6 Dekang Lin 方法 122
6.7.7 扩展的 Lesk 算法 123
6.8 分布式相似性 123
6.8.1 分布式意义模型 123
6.8.2 词向量 123
6.8.3 词条-文档矩阵 124
6.8.4 点互信息 125
6.8.5 计算词条-上下文矩阵上的正点互信息的例子 126
6.8.6 加权点互信息技术 127
6.8.7 点互信息计算中的k 平滑 128
6.8.8 上下文和词相似性测量 129
6.8.9 相似性评估 131
6.9 练习题 131
第 7 章 语用分析 133
7.1 引言 133
7.2 篇章现象 133
7.2.1 共指消解 134
7.2.2 共指消解的重要性 134
7.2.3 一致性与共指 135
7.2.4 共指关系的重要性 136
7.2.5 基于实体的一致性 137
7.3 篇章分割 137
7.3.1 篇章分割的概念 137
7.3.2 无监督篇章分割 138
7.3.3 Hearst 的 TextTiling方法 138
7.3.4 TextTiling 算法 140
7.3.5 有监督篇章分割 140
7.4 篇章连贯性 141
7.4.1 文本的连贯性 141
7.4.2 连贯关系的概念 142
7.4.3 连贯关系的类型 142
7.4.4 篇章连贯性的层次结构 143
7.4.5 指称表达式的类型 144
7.4.6 筛选潜在指代对象的特征 144
7.4.7 代词解释中的偏好 145
7.5 共指消解算法 146
7.5.1 引言 146
7.5.2 Hobbs 算法 146
7.5.3 中心算法 148
7.5.4 机器学习方法 151
7.6 评估 153
7.7 练习题 153
第 8 章 迁移学习和 Transformer技术 155
8.1 迁移学习的概念 155
8.2 迁移学习的目的 156
8.3 迁移学习的解决方案 157
8.4 循环神经网络 159
8.4.1 循环神经网络的概念 159
8.4.2 循环神经网络的作用 159
8.4.3 循环神经网络体系结构 160
8.4.4 长短期记忆网络 162
8.4.5 门循环单元 164
8.4.6 双向循环神经网络 165
8.5 Transformer 技术 166
8.5.1 Transformer 的概念 166
8.5.2 Transformer 架构 167
8.5.3 深入理解编码器 168
8.6 BERT 170
8.6.1 BERT 的概念 170
8.6.2 BERT 的架构 170
8.6.3 BERT 的训练 171
8.7 其他相关的 Transformer 技术 172
8.7.1 Transformer-XL 172
8.7.2 ALBERT 173
8.8 练习题 173
第 9 章 主要的自然语言处理应用 174
9.1 引言 174
9.2 信息检索系统 174
9.2.1 信息检索系统简介 174
9.2.2 向量空间模型在信息检索中的应用 175
9.2.3 信息检索中的术语分布模型 179
9.2.4 潜在语义索引在信息检索中的应用 181
9.2.5 信息检索中的话语分割 184
9.3 文本摘要系统 185
9.3.1 文本摘要系统简介 185
9.3.2 文本摘要数据集 187
9.3.3 文本摘要系统类型 187
9.3.4 查询式摘要系统与通用摘要系统 188
9.3.5 单文档与多文档摘要 190
9.3.6 现代文本摘要系统 191
9.4 问答系统 196
9.4.1 QA 系统和人工智能 196
9.4.2 工业级问答系统概述 200
9.5 练习题 206
第 10 章 大语言模型与生成式人工智能 207
10.1 大语言模型与生成式人工智能简介 207
10.1.1 什么是大语言模型 207
10.1.2 生成式人工智能概述 208
10.1.3 大语言模型与生成式人工智能的交汇 209
10.1.4 大语言模型在现代人工智能中的重要性 210
10.2 大语言模型的基础 211
10.2.1 神经网络架构 211
10.2.2 注意力机制 212
10.2.3 Transformer 架构 212
10.2.4 模型规模化:从 BERT 到 GPT 214
10.3 大语言模型领域的主要参与者 215
10.3.1 OpenAI 的 ChatGPT(当前版本:GPT-4) 215
10.3.2 Google DeepMind的Pathways语言模型(PaLM,当前版本为 PaLM 2) 216
10.3.3 Meta 的大语言模型(LLaMA,当前版本为 LLaMA 2) 217
10.3.4 Anthropic 的 Claude(当前版本为Claude 2) 218
10.3.5 百度的 ERNIE 3.0 Titan 219
10.4 大语言模型在生成式人工智能中的应用 220
10.4.1 创意写作与内容生成 220
10.4.2 语言翻译 221
10.4.3 对话式人工智能与聊天机器人 222
10.4.4 文本摘要与内容策展 224
10.5 伦理考量与挑战 225
10.5.1 偏见的检测与缓解 225
10.5.2 隐私与数据安全 226
10.5.3 错误信息的传播 226
10.5.4 大语言模型部署的伦理指南 227
10.6 未来展望与研究方向 228
10.6.1 大语言模型与生成式人工智能的当前发展趋势 228
10.6.2 人工智能创造力的未来 230
10.6.3 大语言模型在人工智能伦理中的作用 230
10.6.4 未来发展方向:研究与开发 231
10.7 练习题 233
第 II 部分 使用 Python 实现的自然语言处理实验教程(14 小时)
第 11 章 实验 1:自然语言工具包使用基础(第 1-2 小时) 236
11.1 引言 236
11.2 什么是 NLTK 238
11.3 使用 NLTK 进行简单的文本分词示例 238
11.4 NLTK 的安装 239
11.5 为什么使用 Python 进行自然语言处理 241
11.6 NLTK 在基础文本处理中的应用 242
11.7 使用 NLTK 进行简单文本分析 244
11.8 使用词汇离散图进行文本分析 247
11.8.1 词汇离散图的概念 247
11.8.2 基于《理智与情感》文本的词汇离散图分析 248
11.8.3 基于就职演说语料库文本的历时词汇离散图分析 248
11.9 使用 NLTK 进行自然语言处理分词操作 249
11.9.1 什么是自然语言处理中的分词 249
11.9.2 tokenize()与 split()的区别 250
11.9.3 统计不同的词元 251
11.9.4 词汇多样性 253
11.10 NLTK 中的基本统计工具 254
11.11 使用累积模式绘制相同的频率分布图 255
11.11.1 罕见词 257
11.11.2 搭配词 258
第 12 章 实验 2:使用自然语言工具包进行 N-gram 建模(第 3-4小时) 260
12.1 引言 260
12.2 什么是 N-gram 261
12.3 N-gram 在自然语言处理中的应用 261
12.4 在 NLTK 中生成N-gram 261
12.5 生成 N-gram 统计信息 264
12.6 SpaCy 在自然语言处理中的应用 270
12.7 如何安装 spaCy 271
12.8 使用 spaCy 进行分词 271
第 13 章 实验 3:基于自然语言工具包的词性标注(第 5-6 小时) 278
13.1 引言 278
13.2 重新审视 NLTK 中的分词技术 279
13.3 使用 NLTK 进行词干提取 281
13.3.1 词干提取概述 281
13.3.2 词干提取的意义 282
13.3.3 词干提取的实现方法 282
13.4 使用 NLTK 删除停用词 285
13.4.1 什么是停用词 285
13.4.2 NLTK 停用词列表 285
13.4.3 示例文本实践 286
13.4.4 自定义停用词库 286
13.5 使用 NLTK 进行文本分析 288
13.6 与 WordCloud 集成 290
13.7 使用 NLTK 进行词性标注 292
13.7.1 什么是词性标注 292
13.7.2 通用词性标注集 292
13.7.3 PENN Treebank 词性标注集(英文与中文版本) 293
13.7.4 词性标注的应用 294
13.8 使用 NLTK 创建自定义词性标注器 297
第 14 章 实验 4:基于 spaCy 的语义分析与词向量(第 7-8 小时) 303
14.1 引言 303
14.2 词向量的概念 304
14.3 理解词向量 304
14.4 词向量初探 306
14.5 类比与向量运算 309
14.6 如何创建词向量 310
14.7 spaCy 预训练词向量 310
14.8 语义分析中的相似度方法 312
14.9 使用 spaCy 的高级语义相似度方法 315
14.9.1 理解语义相似度 315
14.9.2 欧几里得距离 315
14.9.3 余弦距离与余弦相似度 316
14.9.4 使用语义相似度进行文本分类 318
14.9.5 提取关键短语 319
14.9.6 提取与比较命名实体 320
第 15 章 实验 5:情感分析与文本分类(第 9-10 小时) 323
15.1 引言 323
15.2 使用 spaCy 和 LSTM 技术的文本分类 324
15.3 技术要求 324
15.4 文本分类概述 325
15.4.1 什么是文本分类 325
15.4.2 作为 AI 应用的文本分类 326
15.5 使用 spaCy NLP 流水线的文本分类器 327
15.5.1 TextCategorizer 类 327
15.5.2 为 TextCategorizer 格式化训练数据 329
15.5.3 系统训练 331
15.5.4 系统测试 333
15.5.5 针对多标签文本分类训练 TextCategorizer 333
15.6 使用 spaCy 进行情感分析 337
15.6.1 IMDB 大型影评数据集 337
15.6.2 数据集探索 337
15.6.3 训练 TextClassifier 340
15.7 人工神经网络概述 342
15.8 TensorFlow 与 Keras概述 343
15.9 使用 LSTM 技术进行序列建模 343
15.10 Keras 分词器在自然语言处理中的应用 344
15.11 基于 LSTM 的电影影评情感分析(使用 Keras与 spaCy)348
第 16 章 实验 6:使用 spaCy与TensorFlow 的Transformer 模型(第 11-12 小时) 355
16.1 引言 355
16.2 技术要求 356
16.3 Transformer 与迁移学习概述 356
16.4 为什么选择Transformer 357
16.5 BERT 技术概述 359
16.5.1 BERT 是什么 359
16.5.2 BERT 架构 360
16.5.3 BERT 输入格式 362
16.5.4 如何训练 BERT 363
16.6 Transformer 与TensorFlow 364
16.6.1 HuggingFace 的Transformers 库 364
16.6.2 使用 BERT 分词器 366
16.6.3 BERT 中的词向量 369
16.7 使用 BERT 回顾文本分类 370
16.8 Transformer 流水线技术 374
16.8.1 面向情感分析的Transformer 流水线 375
16.8.2 面向问答系统的Transformer 流水线 375
16.9 Transformer 与 spaCy 376
第 17 章 实验7:基于 TensorFlow与Transformer 技术构建聊天机器人(第13-14小时) 380
17.1 引言 380
17.2 技术要求 381
17.3 AI 聊天机器人概述 381
17.3.1 聊天机器人是什么 381
17.3.2 聊天机器人的唤醒词 382
17.3.3 聊天机器人中的自然语言处理组件 383
17.4 使用 TensorFlow 与Transformer 技术构建电影聊天机器人 383
17.4.1 聊天机器人数据集 384
17.4.2 电影对话预处理 384
17.4.3 电影对话的分词处理 386
17.4.4 过滤与填充过程 386
17.4.5 创建 TensorFlow 电影数据集对象 387
17.4.6 计算注意力学习权重 388
17.4.7 多头注意力机制 389
17.4.8 系统实现 390
17.5 相关研究 405
