许多学生一直在要求我为如何开始自然语言处理准备指南。这篇博客文章旨在根据研究,对该领域的了解和个人经验来帮助他人。尽管这不是直接指南,但我在此处共享的资源可以帮助您根据需要创建自己的NLP学习路径。这将是我多年来遇到的教育资源的结合。我将分享我在研究这些资源及其适用方面的经验。
这份清单无论如何都不是详尽无遗的,但是它应该提供一些选择,对于任何有兴趣开始使用NLP的人来说都是一个很好的起点。您实际上并不需要消耗所有内容。只需选择适合您当前需求的资源即可。例如,也许您已经有了一些理论基础,而您只需要获得开发生产中的NLP系统的最佳实践。在这种情况下,您可以直接跳至建议,以获取有关NLP技术的动手经验。我只是在介绍我个人学习过的内容,我敢肯定还有很多其他我想念的资源,如果有任何建议,请随时发表评论。
Speech and Language Processing
by Dan Jurafsky and James H. Martin
学习基础知识对于学习任何一门学科都是至关重要的。我是非常推崇这一点的,因为这对我来说很有效。我关注这本书已经有一段时间了,现在已经是第三版了。这本书所涉及的材料写得特别好,为NLP提供了一个很好的理论基础。对于任何想要开始学习NLP的人来说,这有可能是一个很好的起点。即使我已经读过这本书,我也会定期回顾它,因为它定期更新该领域的最新发展。如果你真的很喜欢这本书,你也会发现这些讲座很有用,因为它们确实涵盖了书中所涉及的很多基本主题。
Linguistic Fundamentals for Natural Language Processing: 100 Essentials from Morphology and Syntax
by Emily M. Bender
Emily Bender是我最喜欢的语言学研究者之一。她的工作对我所从事的研究产生了巨大的影响,使我能够采用更加严谨的方法来进行关于NLP研究。NLP深受语言学的影响,事实上,Emily 主张用语言学的规则来指导NLP的发展。她的书为NLP中使用的语言学概念进行了一个精彩的介绍。对于任何从事NLP的学生来说,这都是一本必读的书。
Linguistic Structure Prediction
by Noah A. Smith
本书主要介绍自然语言处理与机器学习之间的联系,涵盖了统计,基于计算方法建模语言结构。本书假定你已经对机器学习有一定的接触。如果你对机器学习不太熟悉,可以在这里查看我做的机器学习推荐列表。建议你至少要做一门机器学习的入门课程,才能最大限度地利用这本书。
Introduction to Natural Language Processing
by Jacob Eisenstein
这是我最喜欢的NLP书籍之一,因为它专注于讨论语言学概念和应用。它涵盖了波束搜索、最大似然估计、矩阵因子化等方法。然后,它解释了如何利用这些方法来解决广泛的任务,如分类、词性标注、关系提取、语言建模等。这本书假定读者具备多元演算和线性代数等知识。这本书直接推荐的一本书是《机器学习数学》一书。与其他书相比,它是一本更高级的教科书,它确实需要对机器学习和数学概念有所了解。
Neural Network Methods in Natural Language Processing (Synthesis Lectures on Human Language Technologies)
by Yoav Goldberg
如果你刚刚开始学习NLP的旅程,你可能已经接触到NLP中更现代的方法,比如RNN和其他基于深度学习的模型。如果您正在寻找关于神经网络理论上的全面综述以及它们如何在NLP中使用,这本书就是为你准备的。在本书中找到的参考文献对我自己的研究起到了重要作用。
Modern Deep Learning Techniques Applied to Natural Language Processing
by Soujanya Poria and Elvis Saravia
关于NLP的现代方法,我还想推荐我和Soujanya Poria一起整理的这个开放资源。它会引导你了解NLP领域的一些最新发展,从单词嵌入到注意力机制再到强化学习。
CS224N: Natural Language Processing with Deep Learning | Winter 2019
by Christopher Manning and Abigail See
如果你最近刚开始接触NLP,你可能已经接触过这门流行的NLP课程。所有的讲座和幻灯片都是公开的,你可以在课程网站上找到它。这门课程非常注重NLP的深度学习方法,所以你会看到第一讲直接从词向量开始,然后过渡到卷积网络和transfomer等更高级的主题。如果你对经典的NLP方法感兴趣,你可能要看看开头提到的一本书。事实上,我强烈建议你这样做,因为它是对构建实际NLP系统在实践中有用的宝贵知识。
这样的理论知识很好,但是无论您是NLP研究人员还是工程师,都必须通过动手实践对其进行补充。我发现这些书对于在语言建模和基于文本的分类等主题上进行练习非常有用。
Natural Language Processing with PyTorch: Build Intelligent Language Applications Using Deep Learning
by Delip Rao and Brian McMahan
尽管这本书是基于PyTorch的,但用深度学习构建语言应用的实践还是很不错的。此外,还有一些传统概念和方法的内容和代码,比如TF-IDF和语义,等等。如果你是一名PyTorch开发人员,你会发现本书很容易上手。
Natural Language Processing in Action
by Hobson Lane, Cole Howard, and Hannes Hapke
这是另一本特别的书,也是我最喜欢的一本书,可以让你对所有的NLP进行实战练习。这本书指导你如何从语料库建立第一个词汇,一直到建立一个聊天机器人。这本书中有很多代码示例,所以如果你喜欢敲代码,它可能很适合你。
Practical Natural Language Processing
by Sowmya Vajjala, Bodhisattwa Majumder, Anuj Gupta, and Harshit Surana
在NLP的动手实践,我非常喜欢今年出版的这本书。它涵盖了从NLP的各种实际应用到部署NLP系统的最佳实践等主题。尽管我对这本书只读了一半,但我还是不得不把它收录进来,因为有很多NLP工程师都想熟悉如何更有效地构建NLP系统,了解构建NLP系统所需的技术。
附录(奖励)
这里有一些其他资源和项目,可以帮助你保持对NLP领域的了解。
- Papers with Code
- arXiv (cs.CL)
- Made with ML
- NLP Progress
- NLP News by Sebastian Ruder
- NLP Newsletter by Elvis Saravia
关于如何开始对NLP学习,我的建议就到这里了。重要的是,你要选择最适合自己的内容。我已经尝试为每个条目提供一些解释,希望能帮助你创建自己的学习路径。这些都是我遇到的最好的资源,我发现它们对扩展我的知识甚至教授这些概念非常有用,更不用说将它们应用于研究思路和构建从语义搜索引擎到情感分类器的NLP系统了。
本文转自雷锋网,如需转载请至雷锋网官网申请授权。