为初学者和从业者提供免费的NLP资源!

点击上方关注,All inI中国

自然语言处理(NLP)是计算机系统理解人类语言的一种能力。它是人工智能(AI)的一部分。在线有多种资源可以帮助您从零开始学习NLP。

为初学者和从业者提供免费的NLP资源!

在本文中,我们列出了相关初学者和从业者级别的资源。

初学者的自然语言处理资源

初学者可以遵循两种方法,即传统机器学习和深度学习,开始使用自然语言处理时,这两种方法略有不同。

传统机器学习

传统的机器学习算法很复杂,不易理解。以下是您可以通过传统机器学习开始学习的自然语言处理的资源。

由Jurafsky和Martin撰写的SLP Book是传统自然语言处理的圣经。你可以在这里访问它。(https://web.stanford.edu/~jurafsky/slp3/)

如果想要更实用的入门教程,可以试用NLTK图书。(http://www.nltk.org/book/)

深度学习

为初学者和从业者提供免费的NLP资源!

深度学习是机器学习的一个子领域,由于人工神经网络的引入,它远远优于传统的机器学习。要通过深度学习开始学习自然处理语言,初学者可以查看以下资源:

  • CS 224n:这是开始使用深度学习进行自然语言处理的最佳课程。本课程由斯坦福大学主办,可在此处访问。(http://web.stanford.edu/class/cs224n/)
  • Yoav Golberg的免费和付费书籍是开始深度学习自然语言处理的一些很好的资源。您可以在这里访问免费书籍。(https://u.cs.biu.ac.il/~yogo/nnlp.pdf)
  • 所有算法的全面的报道都可以在Jacob Einsenstein的GATECH NLP课程笔记中找到,该课程几乎涉及所有NLP方法。您可以在此处访问GitHub上的内容。(https://github.com/jacobeisenstein/gt-nlp-class/blob/master/notes/eisenstein-nlp-notes.pdf)

从业者的自然语言资源

如果您是实践数据科学家,您可能需要三种类型的资源:

  1. 快速入门指南/了解什么是热门和前沿
  2. 特定问题的方法调查
  3. 博客定期跟踪

让我们为您介绍上述三种资源。

快速入门指南/热门新品

大家可以先从Otter等人的深度学习自然语言处理开始。可以在这里访问它。(https://arxiv.org/abs/1807.10854)

Young等人的一份调查报告试着总结了基于深度学习的自然语言处理的所有内容。您可以在此处访问该论文。(https://arxiv.org/abs/1708.02709)

您可以参考这篇文章(https://arxiv.org/abs/1808.03314)来了解LSTM和RNN的基础知识,它们在自然语言处理中经常使用。 LSTM的另一个著名(和高度知名)的调查,您可以看(https://arxiv.org/abs/1503.04069)这篇论文。通过一篇很酷的论文来了解RNN在隐藏状态是如何工作的,这是一个愉快的阅读。以下是我经常推荐的两篇博客文章:

了解LSTM网络(http://colah.github.io/posts/2015-08-Understanding-LSTMs/)

注意和增强递归神经网络(https://distill.pub/2016/augmented-rnns/)

卷积神经网络(Convnets)也可用于理解自然语言。您可以通过阅读这篇论文(https://arxiv.org/abs/1801.06287)来可视化它在NLP中的工作方式。

Bai等人在文中对Convnets和RNN进行了相互比较。(https://arxiv.org/abs/1803.01271)它的所有pytorch(我已经停止或减少了很大程度上阅读深度学习代码,不是用pytorch编写的)代码在这里是开源的。

问题特定的方法调查

为初学者和从业者提供免费的NLP资源!

另一种从业人员需要的资源是:“我必须训练算法来做X,我能应用的最酷(也很容易获得)的东西是什么?”

那么让我们从资源开始:

文本分类

人们解决的第一个问题是什么?主要是文本分类。文本分类可以将文本分类为不同类别或检测文本内的情感的形式。

我想强调一下我们之前在ParallelDots博客上做的一个易于阅读的情感分析技术调查。虽然该调查是针对情感分析技术的,但它可以扩展到大多数文本分类问题。(https://blog.paralleldots.com/data-science/breakthrough-research-papers-and-models-for-sentiment-analysis/)

这里指出的Arxiv调查论文将非常技术性,需要您阅读其他重要论文以深入理解某个主题。我们建议的方法是使用我们的链接来熟悉并享受一个主题的乐趣,但是请务必阅读我们给出的直接指南。乐趣很重要,但除非你详细了解了这些技术,否则在新情况下很难应用概念。

另一项关于情感分析算法的调查(由Linked和UIUC的人员进行)就在这里(https://arxiv.org/abs/1801.07883)。

或许您还没有听说过它,但迁移学习革命已经正在快速进入深度学习。就像在图像中训练ImageNet分类的模型可以针对任何分类任务进行微调一样,在维基百科上训练用于语言建模的NLP模型现在可以在相对较少量的数据上传输学习文本分类。我们还没有针对此的调查报告(因为话题太新),但我可以直接推荐给大家两篇来自OpenAI和Reuder和Howard的论文,这些论文涉及下面提到的技术:

  • 用于文本分类的通用语言模型微调
  • 通过生成性预训练提高语言理解力

Fast.ai有一个更友好的文档应用了这些方法。(https://arxiv.org/abs/1801.07883)

如果您正在学习两个不同的任务(不是从Wikipediaa语言建模任务转移),这里会提到使用Convnet的技巧。

但其实这种方法将慢慢涉及所有其他分类方法(从视觉中发生的简单推断)。我们还发布了关于零样本分类的工作,该分类在没有任何数据集训练的情况下获得了良好的准确性,并且正在开发下一代。我们构建了自定义文本分类API,它通常称为自定义分类器,您可以在其中定义自己的类别。

序列标记

序列标记是一个用一些属性标记单词的任务。这些包括词性标注、命名实体识别、关键字标记等。

我们为前面提到的这些任务的方法写了一个有趣的回顾。(http://nlp.fast.ai/classification/2018/05/15/introducting-ulmfit.html)

关于这些问题的一个非常好的资源是来自今年的COLING的论文,它为训练序列标记算法提供了最佳指导。你可以在这里访问它。(https://www.paralleldots.com/custom-classifier)

机器翻译

最近几天NLP的一大进步之一就是将文本从一种语言翻译成另一种语言的。如谷歌的系统是一个疯狂的16层LSTM,并给出了最先进的翻译结果。

媒体用夸张的报道,如“Facebook不得不关闭发明自己语言的人工智能”,将炒作吹得不成比例:

Facebook机器人创建人类无法理解的语言后关闭了AI系统

Facebook人工智能创造了自己的语言,预览了我们的潜在未来,令人毛骨悚然

有关机器翻译的详尽教程,可以参阅Philip Koehn的论文。(https://arxiv.org/abs/1709.07809)。

这里有一些我最喜欢的论文推荐给大家:

Google论文告诉您如何在有大量资金和数据时端到端地解决问题。(https://arxiv.org/abs/1609.08144)

Facebook的Convolutional NMT系统及其代码在此处是作为库发布的。(https://arxiv.org/abs/1705.03122)

https://marian-nmt.github.io/ 这是一个用C ++快速翻译的框架。http://www.aclweb.org/anthology/P18-4020

最后一个给到的推荐是http://opennmt.net/ ,它使每个人都能够训练他们的NMT系统。

问答

恕我直言,这将是下一个“机器翻译”。我们经常会有许多不同类型的问答系统任务,从选项中选择,从段落或知识图表中选择答案,并根据图像回答问题(也称为视觉问题回答),并且有不同的数据集都可以了解到最新的技术方法。

SQuAD数据集是一个问题回答数据集,用于测试算法阅读理解和回答问题的能力。微软今年早些时候发表了一篇论文,声称他们的翻译水平已经达到了人类级别的准确性。(https://www.ailab.microsoft.com/experiments/ef90706b-e822-4686-bbc4-94fd0bca5fc5)

另一组重要的算法是Visual Question Answering,它可以回答有关图像的问题。来自VQA 2017挑战赛的Teney等人的论文是一个很好的入门资源。(https://allenai.github.io/bi-att-flow/)您也可以在这里找到它在Github上的实现。(https://github.com/markdtw/vqa-winner-cvprw-2017)

在现实生活中,对于大型文档(比如谷歌如何在最初的几个结果中突出显示对您的查询的回答)的提取问题的回答可以使用迁移学习(因此只有很少的注释)来完成,如这篇论文所示(https://arxiv.org/abs/1804.07097)。如果您在这个领域工作,那么,您可以读读看。

释义、句子相似性或推理

比较句子的任务。 NLP有三个不同的任务:句子相似性、复述检测和自然语言推理(NLI),每个都需要比以前有更多的语义理解。 MultiNLI及其子集Stanford NLI是NLI最著名的基准数据集,并且最近已成为研究的焦点。还有用于释义检测的MS复述语料库和Quora语料库以及用于STS(语义文本相似性)的SemEval数据集。这里有一个关于该领域高级模型的优秀调查(https://arxiv.org/abs/1806.04330),NLI在临床领域的应用非常重要。(了解正确的医疗程序、副作用和药物的交叉影响等)。如果您希望在特定域中应用该技术,那么在医学领域应用NLI的教程是一个很好的方法。(https://arxiv.org/abs/1808.06752)

要关注的博客

最后,列出了一系列博客,我们推荐有兴趣跟踪研究和NLP研究新内容的人。

Einstein AI - https://einstein.ai/research

Google AI博客 - https://ai.googleblog.com/

WildML - http://www.wildml.com/

DistillPub - https://distill.pub/

neuro ML - https://www.neuroml.org/

为初学者和从业者提供免费的NLP资源!

相关推荐