作品简介
本书将从一个心理模型开始告诉读者计算机是如何阅读和解释语言的;之后,读者将了解如何训练基于Python的NLP机器来识别模式并从文本中提取信息。
在学习书中的例子时,读者将会扩展机器的知识,并将其应用到一系列挑战中。从构建一个能够根据文档的含义而不仅是关键词找到文档的搜索引擎,再到训练一个聊天机器人,通过深度学习来回答问题和参与对话。
本书是介绍自然语言处理(NLP)和深度学习的实战书。NLP已成为深度学习的核心应用领域,而深度学习是NLP研究和应用中的必要工具。
本书分为3部分:第一部分介绍NLP基础,包括分词、TF-IDF向量化以及从词频向量到语义向量的转换;第二部分讲述深度学习,包含神经网络、词向量、卷积神经网络(CNN)、循环神经网络(RNN)、长短期记忆(LSTM)网络、序列到序列建模和注意力机制等基本的深度学习模型和方法;第三部分介绍实战方面的内容,包括信息提取、问答系统、人机对话等真实世界系统的模型构建、性能挑战以及应对方法。
本书包括以下精彩内容:
●可扩展的自然语言处理流水线
●基于规则的自然语言处理和基于数据的自然语言处理
●Keras、TensorFlow、gensim和scikit-learn等工具的使用
本书面向中高级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首席科学家,前中科院博导、研究员,中国科学院大学教授。译有《信息检索导论》《大数据:互联网大规模数据挖掘与分布式处理》《机器学习实战》等书籍。
作品目录
版权声明
内容提要
译者简介
译者序
序
前 言
致 谢
Hobson Lane致谢
Cole Howard致谢
Hannes Max Hapke致谢
关于本书
路线图
主要内容
关于代码
关于作者
关于封面插画
资源与支持
配套资源
提交勘误
与我们联系
关于异步社区和异步图书
第一部分 处理文本的机器
第1章 NLP概述
1.1 自然语言与编程语言
1.2 神奇的魔法
1.3 实际应用
1.4 计算机“眼”中的语言
1.5 超空间简述
1.6 词序和语法
1.7 聊天机器人的自然语言流水线
1.8 深度处理
1.9 自然语言智商
1.10 小结
第2章 构建自己的词汇表——分词
2.1 挑战(词干还原预览)
2.2 利用分词器构建词汇表
2.3 情感
2.4 小结
第3章 词中的数学
3.1 词袋
3.2 向量化
3.3 齐普夫定律
3.4 主题建模
3.5 小结
第4章 词频背后的语义
4.1 从词频到主题得分
4.2 潜在语义分析
4.3 奇异值分解
4.4 主成分分析
4.5 潜在狄利克雷分布(LDiA)
4.6 距离和相似度
4.7 反馈及改进
4.8 主题向量的威力
4.9 小结
第二部分 深度学习(神经网络)
第5章 神经网络初步(感知机与反向传播)
5.1 神经网络的组成
5.2 小结
第6章 词向量推理(Word2vec)
6.1 语义查询与类比
6.2 词向量
6.3 小结
第7章 卷积神经网络(CNN)
7.1 语义理解
7.2 工具包
7.3 卷积神经网络
7.4 狭窄的窗口
7.5 小结
第8章 循环神经网络(RNN)
8.1 循环网络的记忆功能
8.2 整合各个部分
8.3 自我学习
8.4 超参数
8.5 预测
8.6 小结
第9章 改进记忆力:长短期记忆网络(LSTM)
9.1 长短期记忆(LSTM)
9.2 小结
第10章 序列到序列建模和注意力机制
10.1 编码-解码架构
10.2 组装一个序列到序列的流水线
10.3 训练序列到序列网络
10.4 使用序列到序列网络构建一个聊天机器人
10.5 增强
10.6 实际应用
10.7 小结
第三部分 进入现实世界(现实中的NLP挑战)
第11章 信息提取(命名实体识别与问答系统)
11.1 命名实体与关系
11.2 正则模式
11.3 值得提取的信息
11.4 提取人物关系(事物关系)
11.5 现实世界的信息提取
11.6 小结
第12章 开始聊天(对话引擎)
12.1 语言技能
12.2 模式匹配方法
12.3 知识方法
12.4 检索(搜索)方法
12.5 生成式方法
12.6 四轮驱动
12.7 设计过程
12.8 技巧
12.9 现实世界
12.10 小结
第13章 可扩展性(优化、并行化和批处理)
13.1 太多(数据)未必是好事
13.2 优化NLP算法
13.3 常数级内存算法
13.4 并行化NLP计算
13.5 减少模型训练期间的内存占用
13.6 使用TensorBoard了解模型
13.7 小结
附录A 本书配套的NLP工具
A.1 Anaconda3
A.2 安装nlpia
A.3 集成开发环境
A.4 Ubuntu包管理器
A.5 Mac
A.6 Windows
A.7 NLPIA自动化
附录B 有趣的Python和正则表达式
B.1 处理字符串
B.2 Python中的映射(dict和OrderedDict)
B.3 正则表达式
B.4 代码风格
B.5 技巧
附录C 向量和矩阵(线性代数基础)
向量
附录D 机器学习常见工具与技术
D.1 数据选择和避免偏见
D.2 模型拟合程度
D.3 数据集划分
D.4 交叉拟合训练
D.5 抑制模型
D.6 非均衡训练集
D.7 性能指标
D.8 专业技巧
附录E 设置亚马逊云服务(AWS)上的GPU
创建AWS GPU实例的步骤
附录F 局部敏感哈希
F.1 高维向量的区别
F.2 高维索引
F.3 推文点赞预测
资源
应用及项目
课程与教程
工具和包
研究论文及讲座
竞赛与奖励
数据集
搜索引擎
词汇表
缩略词
术语