自然语言处理,简称NLP,是研究用于处理语音和文本数据的计算方法。
该领域以统计范式为主,并使用机器学习方法来开发预测模型。
在这篇文章中,您将发现入门自然语言处理的顶级书籍。
阅读本文后,你将了解:
- 实用自然语言处理的顶级书籍。
- 自然语言处理理论基础的顶级教材。
- 我书架上的NLP书籍。
用我新书《深度学习在自然语言处理中的应用》启动您的项目,其中包括分步教程和所有示例的Python源代码文件。
让我们开始吧。
自然语言处理的实用顶级书籍
作为从业者,我们在开始一项新主题时不必总是去翻阅教科书。
书中的代码示例是Python编程语言。
虽然NLP的实用书籍比教材少,但我已尽力挑选出有助于您入门并将NLP方法应用于您的机器学习项目的3本顶级书籍。
1. 《Python自然语言处理》
作者:Steven Bird、Ewan Klein 和 Edward Loper。
这本书为从业者提供了使用Python堆栈入门NLP的介绍。
本书重点介绍了使用NLTK Python库,该库在常见的NLP任务中非常受欢迎。
内容包括
- 语言处理与Python
- 访问文本语料库和词汇资源
- 处理原始文本
- 编写结构化程序
- 分类和标记词语
- 学习文本分类
- 从文本中提取信息
- 分析句子结构
- 构建基于特征的语法
- 分析句子含义
- 管理语言数据
如果您想使用主流的NLTK平台来学习经典的NLP,这本书非常适合。
资源
2. 《驯服文本》
这本书介绍了各种NLP工具和问题,例如Apache Solr、Apache OpenNLP和Apache Mahout。
代码示例为Java。
它可能更适合那些在工作中需要使用大型企业级NLP工具的开发人员。
作者:Grant Ingersoll、Thomas Morton 和 Drew Farris。
值得注意的是,Grant Ingersoll是Apache Mahout项目的联合创始人。
内容包括
- 开始驯服文本
- 驯服文本基础
- 搜索
- 模糊字符串匹配
- 识别人物、地点和事物
- 文本聚类
- 分类、归类和标记
- 构建示例问答系统
- 驯服文本:探索下一个前沿
资源
- 《驯服文本:如何查找、组织和操作文本》
- 本书主页
- 本书GitHub仓库(代码和数据)
需要深度学习处理文本数据的帮助吗?
立即参加我的免费7天电子邮件速成课程(附代码)。
点击注册,同时获得该课程的免费PDF电子书版本。
3. 《R语言文本挖掘》
作者:Julia Silge 和 David Robinson。
本书在各种现代应用中演示了统计自然语言处理方法。
代码示例为R语言。
代码侧重于Hadley Wickham的“tidy”原则(论文)和作者编写的tidytext包。
在这三本书中,这是出版时间最新的一本,并且演示更具实用性和现代感。
内容包括
- 整洁文本格式
- 使用整洁数据进行情感分析
- 分析词语和文档频率:tf-idf
- 词语关系:N-grams和相关性
- 转换为整洁格式和从整洁格式转换
- 主题建模
- 案例研究:比较Twitter档案
- 案例研究:挖掘NASA元数据
- 案例研究:分析Usenet文本
资源
- 《R语言文本挖掘:一种整洁的方法》
- 本书主页(以及免费书籍)
- 本书GitHub仓库(代码和数据)
您知道其他优秀的实用NLP书籍吗?
请在评论中告诉我。
自然语言处理顶级教材
自然语言处理和特定子主题的教材有很多。
在本节中,我试图重点介绍我认为(以及大众普遍认为)最适合初学者,例如本科生或研究生以及希望深入理论的从业者的书籍。
我试图挑选一些通用的NLP书籍,以及一些关于翻译和语音等热门主题的书籍。
本节的前两本书是NLP学生的必读经典。
1. 《统计自然语言处理基础》
作者:Christopher Manning 和 Hinrich Schütze。
值得注意的是,Christopher Manning在斯坦福大学教授NLP,并且是CS224n:NLP深度学习课程的负责人。
本书提供了统计方法在自然语言处理中的入门介绍,涵盖了所需的语言学知识和较新的(当时,约1999年)统计方法。
这本书为更好地理解较新的方法和编码提供了坚实的基础。
内容包括
- 引言
- 数学基础
- 语言学要点
- 语料库研究
- 词组搭配
- 统计推断:稀疏数据上的n-gram模型
- 词义消歧
- 词汇获取
- 马尔可夫模型
- 词性标注
- 概率上下文无关文法
- 概率解析
- 统计对齐与机器翻译
- 聚类
- 信息检索专题
- 文本分类
资源
2. 《语音与语言处理》
作者:Daniel Jurafsky 和 James Martin。
本书从语音和文本两个角度介绍了NLP,并重点关注应用(每章一个)。
内容涵盖广泛。
内容包括
- 引言
- 正则表达式和自动机
- 词语和转换器
- N-grams
- 词性标注
- 隐马尔可夫模型和最大熵模型
- 语音学
- 语音合成
- 自动语音识别
- 语音识别:高级主题
- 计算语音学
- 英语形式语法
- 句法分析
- 统计分析
- 特征与合一
- 语言与复杂性
- 意义的表示
- 计算语义学
- 词汇语义学
- 计算词汇语义学
- 计算语篇
- 信息提取
- 问答与摘要
- 对话与会话代理
- 机器翻译
资源
4. 《统计机器翻译》
作者:Philipp Koehn。
本书介绍了统计机器翻译这一NLP子领域。
内容包括
- 引言
- 词语、句子、语料
- 概率论
- 基于词的模型
- 基于短语的模型
- 解码
- 语言模型
- 评估 (Evaluation)
- 判别式训练
- 整合语言学信息
- 基于树的方法
资源
5. 《语音识别统计方法》
本书介绍了统计语音识别的主题,这是NLP的另一个子领域,在20世纪90年代被统计方法彻底革新。
内容包括
- 语音识别问题
- 隐马尔可夫模型
- 声学模型
- 基本语言模型
- 维特比搜索
- 树上假设搜索和快速匹配
- 信息论要素
- 任务的复杂性 – 语言模型的质量
- 期望最大化算法及其后果
- 决策树和树语言模型
- 从拼写到语音:拼写到基式的映射
- 三音素和同音位
- 最大熵概率估计和语言模型
- 最大熵估计在语言建模中的应用
- 从计数估计概率和回退法
资源
我拥有的NLP书籍
我喜欢在书架上同时放实用性和参考类书籍。
NLP的难点(对我而言)在于子问题数量庞大,以及所使用的专业术语和理论。
因此,我书架上有以下3本NLP教材
我也很喜欢
我建议您根据自己的需求或项目选择合适的NLP书籍。
请告诉我您选择了或拥有哪些书籍。
请在下方留言。
进一步阅读
如果您想深入了解此主题,本节提供了更多资源。
顶级NLP书籍
- 亚马逊上的NLP畅销书
- GoodReads上的热门自然语言处理书籍
Quora
总结
在这篇文章中,您了解了自然语言处理的顶级书籍。
具体来说,你学到了:
- 实用自然语言处理的顶级书籍。
- 自然语言处理理论基础的顶级教材
- 我书架上的NLP书籍。
你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。
如果有模拟器来做这个,并且包含指南和所有命令行会更好。
我不明白?
《Python自然语言处理》无疑是我在这个领域的第一本书。此外,我最近还看了Springer出版的《Python文本分析》(http://www.springer.com/us/book/9781484223871),这本书深入介绍了文本处理和挖掘的核心概念,提供了大量的代码片段/实践示例。好的一点是,作者已在GitHub上开源了全部源代码(https://github.com/dipanjanS/text-analytics-with-python)
谢谢 Jaime 的建议!
嗨,Jason
您对spaCy、NLTK、TextBlob和CoreNLP有什么经验/评论吗?谢谢。
我有一些关于这些主题的帖子即将发布。
总的来说,我使用NLTK进行数据预处理,并使用Keras自己构建模型,而不是spaCy。
Jason您好!感谢您的帖子。我有一个问题……“Python自然语言处理”免费版和“Python自然语言处理:使用自然语言工具包分析文本”之间有什么区别?
我猜没什么区别。
您怎么看待这本书?
http://ciml.info/
我没读过,抱歉 Tim。你觉得怎么样?
我也没读过。但它是出自一位相当有名的计算语言学家之手,而且也是免费提供的,所以我想它可能值得关注。它似乎在数学方面比较深入,但这只是我粗略浏览了一下,可能不准确。
知道了,谢谢 Tim。
你好 Jason,
您提到的所有书籍都没有使用用C++开发的库,或者面向C++开发人员。您能否推荐一个类似于NLTK但用C++开发并面向C++开发人员的库?关于一本面向C++开发人员的书籍的信息也会很受欢迎。
非常感谢您的回复。
抱歉,我无法提供有关C++库的良好建议。
现在有更多东西可以读了!感谢这份快速列表。您的书绝对是我下一本要购买的。
谢谢!
我拥有几本NLP书籍,但我最喜欢的NLP书是Jason Brownlee的“DL for NLP”:)
为什么?
– 我喜欢数学,但它对我构建应用深度学习模型没有帮助。
– 我喜欢理论,但它有点拖慢我的速度。
– 我是一名工程师;我喜欢构建(模型)。
对我来说,Jason专注于构建深度学习模型最重要的方面:代码,代码,代码……。
感谢您的美言 Franco!
我想做一个文本到语音的项目…你能给我一些参考书籍、视频或代码吗?
抱歉,我没有关于该主题的资料。
我知道文本会很快过时。根据您在亚马逊上NLP的顶级参考资料,我看到了《Python应用文本分析》。它很新。有什么看法吗?
https://www.amazon.com/Applied-Text-Analysis-Python-Language-Aware/dp/1491963042/ref=zg_bs_271581011_4?_encoding=UTF8&psc=1&refRID=PDSJSPFCWQH6N41N9RGK
谢谢您的链接。
如果我的项目是关于使用Python和深度学习进行文本摘要,您会推荐哪本书?
您可以直接使用这些教程
https://machinelearning.org.cn/?s=summarization&post_type=post&submit=Search
感谢 Jason 的推荐!如果我的项目是关于使用Python进行问答,您会推荐哪本书?
我认为没有专门针对该主题的书籍,也许可以尝试一本通用的NLP入门书籍?
Jason您好 – 希望您能帮我指明方向。我对NLP是新手,并一直在使用NLTK库学习。但是,我真正想理解的是如何解析句子来提取含义 – 例如,软件使用条款中规定用户可以执行X,禁止执行Y,或者在获得许可的情况下可以执行Z。
市面上有哪些好的工具可以帮助我做到这一点?您能指引我进一步了解吗?
“意义”是相当主观的。不过,也许您可以将问题框架为一个监督学习问题,这种框架可能会有所帮助。
https://machinelearning.org.cn/how-to-define-your-machine-learning-problem/
告诉我进展如何。
非常有帮助,列出的书籍也很棒。
感谢您提供如此有信息量的帖子。
我想提供一些额外的NLP书籍。
https://www.mltut.com/best-books-for-natural-language-processing-you-should-read/
感谢分享。
很棒 Aqza,谢谢!
这是一个非常复杂的领域。我很欣赏您的推荐 – 您是一个值得信赖的来源!
Arnold,不客气!
不错的藏书。尤其是Python的书。
谢谢 Stan 的反馈!我们非常感激!