自然语言处理实战利用Python理解、分析和生成文本

自然语言处理实战利用Python理解、分析和生成文本
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: , [美] , , , , ,
2020-10
版次: 1
ISBN: 9787115540232
定价: 99.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 432页
78人买过
  • 本书是介绍自然语言处理(NLP)和深度学习的实战书。NLP已成为深度学习的核心应用领域,而深度学习是NLP研究和应用中的必要工具。本书分为3部分:第一部分介绍NLP基础,包括分词、TF-IDF向量化以及从词频向量到语义向量的转换;第二部分讲述深度学习,包含神经网络、词向量、卷积神经网络(CNN)、循环神经网络(RNN)、长短期记忆(LSTM)网络、序列到序列建模和注意力机制等基本的深度学习模型和方法;第三部分介绍实战方面的内容,包括信息提取、问答系统、人机对话等真实世界系统的模型构建、性能挑战以及应对方法。
    本书面向中高级Python开发人员,兼具基础理论与编程实战,是现代NLP领域从业者的实用参考书。 作者简介
    霍布森.莱恩(Hobson Lane)拥有20年构建自主系统的经验,这些系统能够代表人类做出重要决策。Hobson在Talentpair训练机器完成简历的阅读和理解,以减少招聘者产生的偏见。在Aira,他帮助构建了第一个聊天机器人,为视障人士描述视觉世界。他是Keras、scikit-learn、PyBrain、PUGNLP和ChatterBot等开源项目的积极贡献者。他目前正在从事完全公益的开放科学研究和教育项目,包括构建一个开放源码的认知助手。他在AIAA、PyCon、PAIS和IEEE上发表了多篇论文和演讲,并获得了机器人和自动化领域的多项专利。
    科尔.霍华德(Cole Howard)是一位机器学习工程师、NLP实践者和作家。他一生都在寻找模式,并在人工神经网络的世界里找到了自己真正的家。他开发了大型电子商务推荐引擎和面向超维机器智能系统(深度学习神经网络)的最先进的神经网络,这些系统在Kaggle竞赛中名列前茅。他曾在Open Source Bridge和Hack University 大会上发表演讲,介绍卷积神经网络、循环神经网络及其在自然语言处理中的作用。
    汉纳斯.马克斯.哈普克(Hannes Max Hapke)是从一位电气工程师转行成为机器学习工程师的。他在高中研究如何在微控制器上计算神经网络时,对神经网络产生了浓厚的兴趣。Hannes喜欢自动化软件开发和机器学习流水线。他与合作者共同开发了面向招聘、能源和医疗应用的深度学习模型和机器学习流水线。Hannes在包括OSCON、Open Source Bridge和Hack University在内的各种会议上发表演讲介绍机器学习。

    译者简介
    史亮  小米NLP高级软件工程师,本科毕业于武汉大学,后保送中科院计算所硕博连读,获得博士学位。目前主要负责小米MiNLP平台的研发工作。
    鲁骁  小米NLP高级软件工程师,本科、硕士毕业于华中科技大学,博士毕业于中科院计算所。目前主要从事大规模文本分类、内容过滤、人机对话等方向的研发工作。
    唐可欣  小米NLP软件工程师,本科毕业于西安电子科技大学,硕士毕业于法国巴黎高科电信学院。主要从事语言模型、意图分析、情感分析等方向的研发工作。
    王斌  小米AI实验室主任、NLP首席科学家,前中科院博导、研究员,中国科学院大学教授。译有《信息检索导论》《大数据:互联网大规模数据挖掘与分布式处理》《机器学习实战》等书籍。 目 录

    第 一部分 处理文本的机器

    第 1章 NLP概述 3

    1.1 自然语言与编程语言 3

    1.2 神奇的魔法 4

    1.2.1 会交谈的机器 5

    1.2.2 NLP中的数学 5

    1.3 实际应用 7

    1.4 计算机“眼”中的语言 8

    1.4.1 锁的语言(正则表达式) 9

    1.4.2 正则表达式 9

    1.4.3 一个简单的聊天机器人 11

    1.4.4 另一种方法 14

    1.5 超空间简述 17

    1.6 词序和语法 19

    1.7 聊天机器人的自然语言流水线 20

    1.8 深度处理 22

    1.9 自然语言智商 24

    1.10 小结 26

    第 2章 构建自己的词汇表――分词 27

    2.1 挑战(词干还原预览) 28

    2.2 利用分词器构建词汇表 29

    2.2.1 点积 37

    2.2.2 度量词袋之间的重合度 37

    2.2.3 标点符号的处理 38

    2.2.4 将词汇表扩展到n-gram 43

    2.2.5 词汇表归一化 48

    2.3 情感 55

    2.3.1 VADER:一个基于规则的情感分析器 56

    2.3.2 朴素贝叶斯 58

    2.4 小结 61

    第3章 词中的数学 62

    3.1 词袋 63

    3.2 向量化 67

    3.3 齐普夫定律 74

    3.4 主题建模 76

    3.4.1 回到齐普夫定律 79

    3.4.2 相关度排序 80

    3.4.3 工具 82

    3.4.4 其他工具 83

    3.4.5 Okapi BM25 85

    3.4.6 未来展望 85

    3.5 小结 85

    第4章 词频背后的语义 87

    4.1 从词频到主题得分 88

    4.1.1 TF-IDF向量及词形归并 88

    4.1.2 主题向量 89

    4.1.3 思想实验 90

    4.1.4 一个主题评分算法 94

    4.1.5 一个LDA分类器 95

    4.2 潜在语义分析 99

    4.3 奇异值分解 103

    4.3.1 左奇异向量U 105

    4.3.2 奇异值向量S 106

    4.3.3 右奇异向量VT 107

    4.3.4 SVD矩阵的方向 107

    4.3.5 主题约简 108

    4.4 主成分分析 109

    4.4.1 三维向量上的PCA 111

    4.4.2 回归NLP 112

    4.4.3 基于PCA的短消息语义分析 114

    4.4.4 基于截断的SVD的短消息语义分析 116

    4.4.5 基于LSA的垃圾短消息分类的效果 117

    4.5 潜在狄利克雷分布(LDiA) 119

    4.5.1 LDiA思想 120

    4.5.2 基于LDiA主题模型的短消息语义分析 121

    4.5.3 LDiA+LDA=垃圾消息过滤器 124

    4.5.4 更公平的对比:32个LdiA主题 125

    4.6 距离和相似度 127

    4.7 反馈及改进 129

    4.8 主题向量的威力 132

    4.8.1 语义搜索 133

    4.8.2 改进 135

    4.9 小结 135

    第二部分 深度学习(神经网络)

    第5章 神经网络初步(感知机与反向传播) 139

    5.1 神经网络的组成 140

    5.1.1 感知机 140

    5.1.2 数字感知机 141

    5.1.3 认识偏置 142

    5.1.4 误差曲面 153

    5.1.5 不同类型的误差曲面 154

    5.1.6 多种梯度下降算法 155

    5.1.7 Keras:用Python实现神经网络 155

    5.1.8 展望 158

    5.1.9 归一化:格式化输入 159

    5.2 小结 159

    第6章 词向量推理(Word2vec) 160

    6.1 语义查询与类比 160

    6.2 词向量 162

    6.2.1 面向向量的推理 165

    6.2.2 如何计算Word2vec表示 167

    6.2.3 如何使用gensim.word2vec模块 175

    6.2.4 生成定制化词向量表示 177

    6.2.5 Word2vec和GloVe 179

    6.2.6 fastText 180

    6.2.7 Word2vec和LSA 180

    6.2.8 词关系可视化 181

    6.2.9 非自然词 187

    6.2.10 利用Doc2vec计算文档相似度 188

    6.3 小结 190

    第7章 卷积神经网络(CNN) 191

    7.1 语义理解 192

    7.2 工具包 193

    7.3 卷积神经网络 194

    7.3.1 构建块 195

    7.3.2 步长 196

    7.3.3 卷积核的组成 196

    7.3.4 填充 198

    7.3.5 学习 199

    7.4 狭窄的窗口 199

    7.4.1 Keras实现:准备数据 201

    7.4.2 卷积神经网络架构 206

    7.4.3 池化 206

    7.4.4 dropout 208

    7.4.5 输出层 209

    7.4.6 开始学习(训练) 211

    7.4.7 在流水线中使用模型 212

    7.4.8 前景展望 213

    7.5 小结 214

    第8章 循环神经网络(RNN) 215

    8.1 循环网络的记忆功能 217

    8.1.1 随时间反向传播算法 221

    8.1.2 不同时刻的权重更新 223

    8.1.3 简要回顾 225

    8.1.4 难点 225

    8.1.5 利用Keras实现循环神经网络 226

    8.2 整合各个部分 230

    8.3 自我学习 231

    8.4 超参数 232

    8.5 预测 235

    8.5.1 有状态性 236

    8.5.2 双向RNN 236

    8.5.3 编码向量 238

    8.6 小结 238

    第9章 改进记忆力:长短期记忆网络(LSTM) 239

    9.1 长短期记忆(LSTM) 240

    9.1.1 随时间反向传播 247

    9.1.2 模型的使用 250

    9.1.3 脏数据 251

    9.1.4 “未知”词条的处理 254

    9.1.5 字符级建模 255

    9.1.6 生成聊天文字 260

    9.1.7 进一步生成文本 262

    9.1.8 文本生成的问题:内容不受控 269

    9.1.9 其他记忆机制 269

    9.1.10 更深的网络 270

    9.2 小结 271

    第 10章 序列到序列建模和注意力机制 272

    10.1 编码-解码架构 272

    10.1.1 解码思想 273

    10.1.2 似曾相识? 275

    10.1.3 序列到序列对话 276

    10.1.4 回顾LSTM 277

    10.2 组装一个序列到序列的流水线 278

    10.2.1 为序列到序列训练准备数据集 278

    10.2.2 Keras中的序列到序列模型 279

    10.2.3 序列编码器 280

    10.2.4 思想解码器 281

    10.2.5 组装一个序列到序列网络 282

    10.3 训练序列到序列网络 282

    10.4 使用序列到序列网络构建一个聊天机器人 284

    10.4.1 为训练准备语料库 285

    10.4.2 建立字符字典 286

    10.4.3 生成独热编码训练集 286

    10.4.4 训练序列到序列聊天机器人 287

    10.4.5 组装序列生成模型 288

    10.4.6 预测输出序列 288

    10.4.7 生成回复 289

    10.4.8 与聊天机器人交谈 290

    10.5 增强 290

    10.5.1 使用装桶法降低训练复杂度 290

    10.5.2 注意力机制 291

    10.6 实际应用 292

    10.7 小结 294

    第三部分 进入现实世界(现实中的NLP挑战)

    第 11章 信息提取(命名实体识别与问答系统) 297

    11.1 命名实体与关系 297

    11.1.1 知识库 298

    11.1.2 信息提取 300

    11.2 正则模式 300

    11.2.1 正则表达式 301

    11.2.2 把信息提取当作机器学习里的特征提取任务 302

    11.3 值得提取的信息 303

    11.3.1 提取GPS位置 303

    11.3.2 提取日期 304

    11.4 提取人物关系(事物关系) 309

    11.4.1 词性标注 309

    11.4.2 实体名称标准化 313

    11.4.3 实体关系标准化和提取 314

    11.4.4 单词模式 314

    11.4.5 文本分割 314

    11.4.6 为什么split('.! ')函数不管用 316

    11.4.7 使用正则表达式进行断句 316

    11.5 现实世界的信息提取 318

    11.6 小结 319

    第 12章 开始聊天(对话引擎) 320

    12.1 语言技能 321

    12.1.1 现代方法 322

    12.1.2 混合方法 326

    12.2 模式匹配方法 327

    12.2.1 基于AIML的模式匹配聊天机器人 328

    12.2.2 模式匹配的网络视图 334

    12.3 知识方法 334

    12.4 检索(搜索)方法 336

    12.4.1 上下文挑战 336

    12.4.2 基于示例检索的聊天机器人 338

    12.4.3 基于搜索的聊天机器人 341

    12.5 生成式方法 343

    12.5.1 聊聊NLPIA 343

    12.5.2 每种方法的利弊 345

    12.6 四轮驱动 345

    12.7 设计过程 347

    12.8 技巧 349

    12.8.1 用带有可预测答案的问题提问 349

    12.8.2 要有趣 350

    12.8.3 当其他所有方法都失败时,搜索 350

    12.8.4 变得受欢迎 350

    12.8.5 成为连接器 351

    12.8.6 变得有情感 351

    12.9 现实世界 351

    12.10 小结 352

    第 13章 可扩展性(优化、并行化和批处理) 353

    13.1 太多(数据)未必是好事 353

    13.2 优化NLP算法 354

    13.2.1 索引 354

    13.2.2 高级索引 355

    13.2.3 基于Annoy的高级索引 357

    13.2.4 究竟为什么要使用近似索引 361

    13.2.5 索引变通方法:离散化 362

    13.3 常数级内存算法 363

    13.3.1 gensim 363

    13.3.2 图计算 363

    13.4 并行化NLP计算 364

    13.4.1 在GPU上训练NLP模型 364

    13.4.2 租与买 365

    13.4.3 GPU租赁选择 366

    13.4.4 张量处理单元TPU 367

    13.5 减少模型训练期间的内存占用 367

    13.6 使用TensorBoard了解模型 369

    13.7 小结 372

    附录A 本书配套的NLP工具 373

    附录B 有趣的Python和正则表达式 380

    附录C 向量和矩阵(线性代数基础) 385

    附录D 机器学习常见工具与技术 391

    附录E 设置亚马逊云服务(AWS)上的GPU 403

    附录F 局部敏感哈希 415

    资源 421

    词汇表 428
  • 内容简介:
    本书是介绍自然语言处理(NLP)和深度学习的实战书。NLP已成为深度学习的核心应用领域,而深度学习是NLP研究和应用中的必要工具。本书分为3部分:第一部分介绍NLP基础,包括分词、TF-IDF向量化以及从词频向量到语义向量的转换;第二部分讲述深度学习,包含神经网络、词向量、卷积神经网络(CNN)、循环神经网络(RNN)、长短期记忆(LSTM)网络、序列到序列建模和注意力机制等基本的深度学习模型和方法;第三部分介绍实战方面的内容,包括信息提取、问答系统、人机对话等真实世界系统的模型构建、性能挑战以及应对方法。
    本书面向中高级Python开发人员,兼具基础理论与编程实战,是现代NLP领域从业者的实用参考书。
  • 作者简介:
    作者简介
    霍布森.莱恩(Hobson Lane)拥有20年构建自主系统的经验,这些系统能够代表人类做出重要决策。Hobson在Talentpair训练机器完成简历的阅读和理解,以减少招聘者产生的偏见。在Aira,他帮助构建了第一个聊天机器人,为视障人士描述视觉世界。他是Keras、scikit-learn、PyBrain、PUGNLP和ChatterBot等开源项目的积极贡献者。他目前正在从事完全公益的开放科学研究和教育项目,包括构建一个开放源码的认知助手。他在AIAA、PyCon、PAIS和IEEE上发表了多篇论文和演讲,并获得了机器人和自动化领域的多项专利。
    科尔.霍华德(Cole Howard)是一位机器学习工程师、NLP实践者和作家。他一生都在寻找模式,并在人工神经网络的世界里找到了自己真正的家。他开发了大型电子商务推荐引擎和面向超维机器智能系统(深度学习神经网络)的最先进的神经网络,这些系统在Kaggle竞赛中名列前茅。他曾在Open Source Bridge和Hack University 大会上发表演讲,介绍卷积神经网络、循环神经网络及其在自然语言处理中的作用。
    汉纳斯.马克斯.哈普克(Hannes Max Hapke)是从一位电气工程师转行成为机器学习工程师的。他在高中研究如何在微控制器上计算神经网络时,对神经网络产生了浓厚的兴趣。Hannes喜欢自动化软件开发和机器学习流水线。他与合作者共同开发了面向招聘、能源和医疗应用的深度学习模型和机器学习流水线。Hannes在包括OSCON、Open Source Bridge和Hack University在内的各种会议上发表演讲介绍机器学习。

    译者简介
    史亮  小米NLP高级软件工程师,本科毕业于武汉大学,后保送中科院计算所硕博连读,获得博士学位。目前主要负责小米MiNLP平台的研发工作。
    鲁骁  小米NLP高级软件工程师,本科、硕士毕业于华中科技大学,博士毕业于中科院计算所。目前主要从事大规模文本分类、内容过滤、人机对话等方向的研发工作。
    唐可欣  小米NLP软件工程师,本科毕业于西安电子科技大学,硕士毕业于法国巴黎高科电信学院。主要从事语言模型、意图分析、情感分析等方向的研发工作。
    王斌  小米AI实验室主任、NLP首席科学家,前中科院博导、研究员,中国科学院大学教授。译有《信息检索导论》《大数据:互联网大规模数据挖掘与分布式处理》《机器学习实战》等书籍。
  • 目录:
    目 录

    第 一部分 处理文本的机器

    第 1章 NLP概述 3

    1.1 自然语言与编程语言 3

    1.2 神奇的魔法 4

    1.2.1 会交谈的机器 5

    1.2.2 NLP中的数学 5

    1.3 实际应用 7

    1.4 计算机“眼”中的语言 8

    1.4.1 锁的语言(正则表达式) 9

    1.4.2 正则表达式 9

    1.4.3 一个简单的聊天机器人 11

    1.4.4 另一种方法 14

    1.5 超空间简述 17

    1.6 词序和语法 19

    1.7 聊天机器人的自然语言流水线 20

    1.8 深度处理 22

    1.9 自然语言智商 24

    1.10 小结 26

    第 2章 构建自己的词汇表――分词 27

    2.1 挑战(词干还原预览) 28

    2.2 利用分词器构建词汇表 29

    2.2.1 点积 37

    2.2.2 度量词袋之间的重合度 37

    2.2.3 标点符号的处理 38

    2.2.4 将词汇表扩展到n-gram 43

    2.2.5 词汇表归一化 48

    2.3 情感 55

    2.3.1 VADER:一个基于规则的情感分析器 56

    2.3.2 朴素贝叶斯 58

    2.4 小结 61

    第3章 词中的数学 62

    3.1 词袋 63

    3.2 向量化 67

    3.3 齐普夫定律 74

    3.4 主题建模 76

    3.4.1 回到齐普夫定律 79

    3.4.2 相关度排序 80

    3.4.3 工具 82

    3.4.4 其他工具 83

    3.4.5 Okapi BM25 85

    3.4.6 未来展望 85

    3.5 小结 85

    第4章 词频背后的语义 87

    4.1 从词频到主题得分 88

    4.1.1 TF-IDF向量及词形归并 88

    4.1.2 主题向量 89

    4.1.3 思想实验 90

    4.1.4 一个主题评分算法 94

    4.1.5 一个LDA分类器 95

    4.2 潜在语义分析 99

    4.3 奇异值分解 103

    4.3.1 左奇异向量U 105

    4.3.2 奇异值向量S 106

    4.3.3 右奇异向量VT 107

    4.3.4 SVD矩阵的方向 107

    4.3.5 主题约简 108

    4.4 主成分分析 109

    4.4.1 三维向量上的PCA 111

    4.4.2 回归NLP 112

    4.4.3 基于PCA的短消息语义分析 114

    4.4.4 基于截断的SVD的短消息语义分析 116

    4.4.5 基于LSA的垃圾短消息分类的效果 117

    4.5 潜在狄利克雷分布(LDiA) 119

    4.5.1 LDiA思想 120

    4.5.2 基于LDiA主题模型的短消息语义分析 121

    4.5.3 LDiA+LDA=垃圾消息过滤器 124

    4.5.4 更公平的对比:32个LdiA主题 125

    4.6 距离和相似度 127

    4.7 反馈及改进 129

    4.8 主题向量的威力 132

    4.8.1 语义搜索 133

    4.8.2 改进 135

    4.9 小结 135

    第二部分 深度学习(神经网络)

    第5章 神经网络初步(感知机与反向传播) 139

    5.1 神经网络的组成 140

    5.1.1 感知机 140

    5.1.2 数字感知机 141

    5.1.3 认识偏置 142

    5.1.4 误差曲面 153

    5.1.5 不同类型的误差曲面 154

    5.1.6 多种梯度下降算法 155

    5.1.7 Keras:用Python实现神经网络 155

    5.1.8 展望 158

    5.1.9 归一化:格式化输入 159

    5.2 小结 159

    第6章 词向量推理(Word2vec) 160

    6.1 语义查询与类比 160

    6.2 词向量 162

    6.2.1 面向向量的推理 165

    6.2.2 如何计算Word2vec表示 167

    6.2.3 如何使用gensim.word2vec模块 175

    6.2.4 生成定制化词向量表示 177

    6.2.5 Word2vec和GloVe 179

    6.2.6 fastText 180

    6.2.7 Word2vec和LSA 180

    6.2.8 词关系可视化 181

    6.2.9 非自然词 187

    6.2.10 利用Doc2vec计算文档相似度 188

    6.3 小结 190

    第7章 卷积神经网络(CNN) 191

    7.1 语义理解 192

    7.2 工具包 193

    7.3 卷积神经网络 194

    7.3.1 构建块 195

    7.3.2 步长 196

    7.3.3 卷积核的组成 196

    7.3.4 填充 198

    7.3.5 学习 199

    7.4 狭窄的窗口 199

    7.4.1 Keras实现:准备数据 201

    7.4.2 卷积神经网络架构 206

    7.4.3 池化 206

    7.4.4 dropout 208

    7.4.5 输出层 209

    7.4.6 开始学习(训练) 211

    7.4.7 在流水线中使用模型 212

    7.4.8 前景展望 213

    7.5 小结 214

    第8章 循环神经网络(RNN) 215

    8.1 循环网络的记忆功能 217

    8.1.1 随时间反向传播算法 221

    8.1.2 不同时刻的权重更新 223

    8.1.3 简要回顾 225

    8.1.4 难点 225

    8.1.5 利用Keras实现循环神经网络 226

    8.2 整合各个部分 230

    8.3 自我学习 231

    8.4 超参数 232

    8.5 预测 235

    8.5.1 有状态性 236

    8.5.2 双向RNN 236

    8.5.3 编码向量 238

    8.6 小结 238

    第9章 改进记忆力:长短期记忆网络(LSTM) 239

    9.1 长短期记忆(LSTM) 240

    9.1.1 随时间反向传播 247

    9.1.2 模型的使用 250

    9.1.3 脏数据 251

    9.1.4 “未知”词条的处理 254

    9.1.5 字符级建模 255

    9.1.6 生成聊天文字 260

    9.1.7 进一步生成文本 262

    9.1.8 文本生成的问题:内容不受控 269

    9.1.9 其他记忆机制 269

    9.1.10 更深的网络 270

    9.2 小结 271

    第 10章 序列到序列建模和注意力机制 272

    10.1 编码-解码架构 272

    10.1.1 解码思想 273

    10.1.2 似曾相识? 275

    10.1.3 序列到序列对话 276

    10.1.4 回顾LSTM 277

    10.2 组装一个序列到序列的流水线 278

    10.2.1 为序列到序列训练准备数据集 278

    10.2.2 Keras中的序列到序列模型 279

    10.2.3 序列编码器 280

    10.2.4 思想解码器 281

    10.2.5 组装一个序列到序列网络 282

    10.3 训练序列到序列网络 282

    10.4 使用序列到序列网络构建一个聊天机器人 284

    10.4.1 为训练准备语料库 285

    10.4.2 建立字符字典 286

    10.4.3 生成独热编码训练集 286

    10.4.4 训练序列到序列聊天机器人 287

    10.4.5 组装序列生成模型 288

    10.4.6 预测输出序列 288

    10.4.7 生成回复 289

    10.4.8 与聊天机器人交谈 290

    10.5 增强 290

    10.5.1 使用装桶法降低训练复杂度 290

    10.5.2 注意力机制 291

    10.6 实际应用 292

    10.7 小结 294

    第三部分 进入现实世界(现实中的NLP挑战)

    第 11章 信息提取(命名实体识别与问答系统) 297

    11.1 命名实体与关系 297

    11.1.1 知识库 298

    11.1.2 信息提取 300

    11.2 正则模式 300

    11.2.1 正则表达式 301

    11.2.2 把信息提取当作机器学习里的特征提取任务 302

    11.3 值得提取的信息 303

    11.3.1 提取GPS位置 303

    11.3.2 提取日期 304

    11.4 提取人物关系(事物关系) 309

    11.4.1 词性标注 309

    11.4.2 实体名称标准化 313

    11.4.3 实体关系标准化和提取 314

    11.4.4 单词模式 314

    11.4.5 文本分割 314

    11.4.6 为什么split('.! ')函数不管用 316

    11.4.7 使用正则表达式进行断句 316

    11.5 现实世界的信息提取 318

    11.6 小结 319

    第 12章 开始聊天(对话引擎) 320

    12.1 语言技能 321

    12.1.1 现代方法 322

    12.1.2 混合方法 326

    12.2 模式匹配方法 327

    12.2.1 基于AIML的模式匹配聊天机器人 328

    12.2.2 模式匹配的网络视图 334

    12.3 知识方法 334

    12.4 检索(搜索)方法 336

    12.4.1 上下文挑战 336

    12.4.2 基于示例检索的聊天机器人 338

    12.4.3 基于搜索的聊天机器人 341

    12.5 生成式方法 343

    12.5.1 聊聊NLPIA 343

    12.5.2 每种方法的利弊 345

    12.6 四轮驱动 345

    12.7 设计过程 347

    12.8 技巧 349

    12.8.1 用带有可预测答案的问题提问 349

    12.8.2 要有趣 350

    12.8.3 当其他所有方法都失败时,搜索 350

    12.8.4 变得受欢迎 350

    12.8.5 成为连接器 351

    12.8.6 变得有情感 351

    12.9 现实世界 351

    12.10 小结 352

    第 13章 可扩展性(优化、并行化和批处理) 353

    13.1 太多(数据)未必是好事 353

    13.2 优化NLP算法 354

    13.2.1 索引 354

    13.2.2 高级索引 355

    13.2.3 基于Annoy的高级索引 357

    13.2.4 究竟为什么要使用近似索引 361

    13.2.5 索引变通方法:离散化 362

    13.3 常数级内存算法 363

    13.3.1 gensim 363

    13.3.2 图计算 363

    13.4 并行化NLP计算 364

    13.4.1 在GPU上训练NLP模型 364

    13.4.2 租与买 365

    13.4.3 GPU租赁选择 366

    13.4.4 张量处理单元TPU 367

    13.5 减少模型训练期间的内存占用 367

    13.6 使用TensorBoard了解模型 369

    13.7 小结 372

    附录A 本书配套的NLP工具 373

    附录B 有趣的Python和正则表达式 380

    附录C 向量和矩阵(线性代数基础) 385

    附录D 机器学习常见工具与技术 391

    附录E 设置亚马逊云服务(AWS)上的GPU 403

    附录F 局部敏感哈希 415

    资源 421

    词汇表 428
查看详情