文章发布于公号【数智物语】 (ID:decision_engine),关注公号不错过每一篇干货。

自然语言处理(英语:Natural Language Processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言。自然语言处理研究的内容包括但不限于如下分支领域:文本分类、信息抽取、自动摘要、智能问答、话题推荐、机器翻译、主题词识别、知识库构建、深度文本表示、命名实体识别、文本生成、文本分析(词法、句法、语法)、语音识别与合成等。以下自然语言处理书籍由数智物语根据公开资料、豆瓣评分综合整理。

01书单

01Speech and Language Processing (3rd ed. draft)

作者:Daniel Jurafsky / James H. Martin

书籍简介:2018年9月23日自然语言处理领域经典综述教材《Speech and Language Processing 》,中文名《自然语言处理综述》第三版发布。该书由 NLP 领域的大牛,斯坦福大学 Daniel Jurafsky 教授和科罗拉多大学的 James H. Martin 教授等人共同编写。Daniel Jurafsky 是斯坦福大学计算机科学教授,主要研究方向是计算语言学和自然语言处理。 James H. Martin 是科罗拉多大学博尔德分校计算机科学系一名教授,两位教授都是 NLP 领域知名学者。

推荐理由:经典的 NLP 教科书,涵盖了所有 NLP 的基础知识,也被国外许多著名大学选为自然语言处理和计算语言学课程的主要教材。本书写作风格引人入胜,深入技术细节而又不让人感觉枯燥,不仅可以作为高等学校自然语言处理和计算语言学等课程的本科生和研究生教材,对于自然语言处理相关领域的研究人员和技术人员也是不可或缺的权威参考书。

阅读链接:https://web.stanford.edu/~jurafsky/slp3/

02Foundations of Statistical Natural Language Processing

作者:Christopher Manning and Hinrich Schütze

书籍简介:本书涵盖的内容十分广泛,分为四个部分,共16章,包括了构建自然语言处理软件工具将用到的几乎所有理论和算法。全书的论述过程由浅入深,从数学基础到精确的理论算法,从简单的词法分析到复杂的语法分析,适合不同水平的读者群的需求。同时,《统计自然语言处理基础:国外计算机科学教材系列》将理论与实践紧密联系在一起,在介绍理论知识的基础上给出了自然语言处理技术的高层应用(如信息检索等)。

推荐理由:经典的统计自然语言处理入门教材。内容涉及统计自然语言处理用到的数学基础,词法到语法分析,以及自然语言处理的基本任务(比如文本分类、聚类,统计机器翻译,以及信息检索)。本教材成书较早(1999年),但是自然语言处理领域的基本概念和任务没有太大的变化,仍然适用于初学者快速了解自然语言处理相关的概念和任务,中文版本为《统计自然语言处理基础:国外计算机科学教材系列》(电子工业出版社出版)。

阅读链接:https://nlp.stanford.edu/fsnlp/

03Neural Network Methods in Natural Language Processing (Synthesis Lectures on Human Language Technologies)

作者:Yoav Goldberg

书籍简介:本书着重介绍神经网络模型在自然语言数据中的应用。书的前半部分介绍了有监督的机器学习和前馈神经网络的基础知识,基于语言数据的机器学习的基础知识。它还涵盖了可以定义和训练任意神经网络的计算图形抽象方面的知识,是当代神经网络软件库设计的基础。本书的第二部分介绍了更多专门的神经网络体系结构,包括一维卷积神经网络、递归神经网络、条件生成模型和基于注意力的模型。这些体系结构和技术是机器翻译、句法分析和许多其他应用程序的最先进算法的推动力量。最后,本书还讨论了树形网络,结构化预测和多任务学习的前景。

推荐理由:最近几年由于深度学习的兴起,使得图像识别、语音识别等多个方面都发生了很大的变革。深度学习在自然语言处理方面也是非常普遍了,一些经典的自然语言模式也都是基于神经网络的,这本书是目前市面上唯一一本介绍神经网络在自然语言处理的应用,而且书中的大量参考文献非常有价值。本书的作者在这个领域非常知名,并且对待学术态度极其严谨。

阅读链接:http://library1.org/_ads/7ECBFA717EC2AAF7E2F20AA3597D1C8C

04Natural Language Processing with Python

作者:Steven Bird / Ewan Klein / Edward Loper

书籍简介:本书教你如何用 Python 和 NLTK 库来做 NLP。提供了非常易学的自然语言处理入门介绍,该领域涵盖从文本和电子邮件预测过滤,到自动总结和翻译等多种语言处理技术。你还将通过使用综合语言数据结构访问含有丰富注释的数据集,理解用于分析书面通信内容和结构的主要算法。

推荐理由:这本书的实用性较强。如果你对 Python 与 NLTK 感兴趣,就看这本书,可以当做入门读物来看,整本书即涉及到了语料库的操作,也对传统的基于规则的方法有所涉及。全书包括了分词(tokenization)、词性标注(POS)、语块(Chunk)标注、句法剖析与语义剖析等方面,是 NLP 中不错的一本实用教程。

阅读链接:http://www.nltk.org/book/

05Introduction to Information Retrieval

作者:Christopher D.Manning / Prabhakar Raghavan /Hinrich Schütze

书籍简介:本书从计算机科学领域的角度出发,介绍了信息检索的基础知识,并对当前信息检索的发展做了回顾,重点介绍了搜索引擎的核心技术,如文档分类和文档聚类问题,以及机器学习和数值计算方法。书中所有重要的思想都用示例进行了解释,生动形象,引人入胜。

推荐理由: 关于排名/搜索的优秀参考书,作者从最简单的布尔检索到一个完整的搜索引擎,逐步深入,逐步引导读者思考,对建造一个大型搜索引擎需要用到的架构和算法都有所涉猎,搜索引擎并不仅仅是检索信息,它还有一个更重要的用处是对返回的结果进行排序,而这往往是非常重要的。

阅读链接:https://nlp.stanford.edu/IR-book/html/htmledition/irbook.html

02推荐课程

01CS224d: Deep Learning for Natural Language Processing

课程导师:Richard Socher

课程链接:http://cs224d.stanford.edu/syllabus.html

主要内容:斯坦福大学自然语言小组基于深度学习的自然语言处理课程。介绍了自然语言处理领域广泛应用的网络结构(例如循环神经网络、卷积神经网络以及递归神经网络等)及其在自然语言处理的经典任务,例如分类任务(情感分类),序列标注任务(实体识别),序列到序列的生成任务(机器翻译)等实际应用。

推荐理由:自然语言处理是信息时代最重要的技术之一。理解复杂的语言也是人工智能的重要组成部分。自然语言处理的应用无处不在,因为人们用语言沟通了大部分内容:网络搜索、广告、电子邮件、客户服务、语言翻译、放射学报告等等。本课程比较适合对这个领域感兴趣的初学者。

02Oxford Deep Learning for NLP class

课程导师:Phil Blunsom. Class by Deep Mind NLP Group.

适合人群:中级到高级学者

课程链接:https://machinelearningmastery.com/oxford-course-deep-learning-natural-language-processing/

主要内容:DeepMind 团队成员在牛津大学教授基于深度学习的自然语言处理的课程。内容涉及到词嵌入,基于循环神经网络的语言模型,基于循环神经网络和卷积神经网络的文本分类,基于循环神经网络的条件语言模型(广泛应用于机器翻译、文本摘要等)及其中的注意力机制,以及基于深度学习模型的自动问答等主要自然语言处理的任务。

推荐理由:深度学习方法在自然语言处理问题上达到了一定的效果。本课程的大部分材料都可以在线免费获取,比较适合对这个领域有一定的基础,希望了解最新进展和进一步学习和研究的同学。

03其他在线课程

Coursera:自然语言处理简介(由密西根大学提供的NLP课程)

https://www.coursera.org/learn/natural-language-processing

Dan Jurafsky 和 Chris Manning:自然语言处理(非常棒的视频介绍系列)

https://www.youtube.com/watch?v=QIdB6M5WdkI&list=PLl3AijnqmcEhr0fQqPfaC_6PbyVNBLJTE&index=3

03数据集

数据集:见 Nicolas Iderhoff 在 GitHub 上发布的 NlP 资源汇总:
https://github.com/niderhoff/nlp-datasets

* 文中图片来自豆瓣

参考文献

书单 | NLP秘笈,从入门到进阶,微软研究院AI头条,2017-12-20

独家 | 自然语言处理(NLP)入门学习资源清单,清华大学数据科学研究院,2017-09-29

数据挖掘、机器学习、自然语言处理这三者是什么关系?这几个怎么入门,量子位,2019-01-21

星标我,每天多一点智慧

最新文章

  1. 感恩回馈,新鲜出炉的《ASP.NET MVC 5框架揭秘》免费赠送
  2. unity 状态机 + svn + 码云 上篇
  3. [转]JavaScript程序编码规范
  4. easyUI validate函数【总结篇-部分转】
  5. MyEclipse 8.5整合Git,并在Github上发布项目【转】
  6. velocity学习记录
  7. MySQL基本概念
  8. 304. Range Sum Query 2D - Immutable
  9. li添加浮动时不能完全包裹的方法
  10. C#.Net 如何动态加载与卸载程序集(.dll或者.exe)5-----Assembly.Unload
  11. action 带参数跳转
  12. Strut2文件下载
  13. 开发错误日志之FTP协议传输文件问题
  14. 【HTML】Advanced1:Text: Time, Mark, and "Presentational"
  15. string内存管理
  16. bzoj2669[cqoi2012]局部极小值 容斥+状压dp
  17. post数据过多时,有可能会丢失数据
  18. Jmeter-正则表达式提取器获取token-小实例
  19. POJ 2117 Electricity 双联通分量 割点
  20. leetcode706

热门文章

  1. ElasticSearch(四)kibana实现CURD
  2. 活动推荐 | 听说 PHP 是最好的语言 - 和 OneAPM 一起參与上海 PHPCon 技术盛宴吧
  3. css定位的元素内层不自动扩高解决
  4. machine learning for hacker记录(2) 数据分析
  5. FFMPEG more samples than frame size (avcodec_encode_audio2) 的解决方案
  6. 万亿级日志与行为数据存储查询技术剖析(续)——Tindex是改造的lucene和druid
  7. Chapter2——如何分析Android程序
  8. tkinter.py
  9. Mysql数据库--语句整理/提升/进阶/高级使用技巧
  10. initWithFrame 与 initWithCoder 、awakeFromNib 的方法理解笔记