一份不可多得的自然语言处理资源清单

2023-12-24 22:50

本文主要是介绍一份不可多得的自然语言处理资源清单,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1


自然语言处理(Natural Langauge Processing,NLP)是计算机系统理解人类语言的一种能力,它也是人工智能(AI)的子集。NLP在很多商业场景中都有所应用,比如推荐系统、对话机器人等。NLP相关的岗位薪资和前景在机器学习算法岗中也是具有很大的吸引力,很多人转行从事这方面的研究,大多数人是通过自学来提升自己的能力。目前,网络上也有很多多免费资源可以帮助自学者发展NLP方面的专业知识,但资源多且杂,没有很好的一条线将其串起来,那么在本文中,我们列出了针对初学者和中级学习者的学习资源。

针对初学者的NLP资源

2


对于初学者而言,可以采用两种方法,即传统的机器学习和深度学习来学习使用NLP,这两种方法差别很大的, 这里讲述了两者之间的区别。

传统的机器学习

传统的机器学习算法一般比较复杂,通常不易被人理解。以下是一些资源,可以帮助读者开始使用机器学习学习NLP:

  • Jurafsky和Martin的语音和语言处理是传统自然语言处理领域中广受好评的圣经;
  • 更实用的方法是可以尝试使用 Natural Language Toolkit;

深度学习

深度学习是机器学习领域中的一个子领域,由于人工神经网络的引入,其性能一般远远优于传统的机器学习方法。初学者可以从以下资源开始:

  • CS 224n:这是斯坦福大学的公开课,也是开始使用深度学习进行NLP的最佳课程;
  • Yoav Golberg出版的免费和付费书籍也是开始深度学习NLP的重要资源;
  • 所有算法的非常全面的报道都可以在Jacob Einsenstein的NLP课程笔记中找到,该课程几乎涉及所有NLP方法。

针对从业者的NLP资源

3


如果你是一名数据科学家,那么将需要以下三种类型的资源:
1.快速入门指南/了解热门和新的知识;
2.特定问题的方法调查;
3.定期关注博客;

快速入门指南/了解热门和新的知识

  • 可以从Otter等人的深度学习NLP综述开始;
  • Young等人的综述,试图总结基于深度学习的NLP中的所有内容,并建议从业者开始使用NLP。
  • 可以参考这篇文章来了解LSTM和RNN的基础知识,它们在NLP中经常被使用。LSTMs的另一个更知名的总结可以在此阅读,这是一篇有趣的论文,用于了解RNN隐藏状态的工作原理,同时推荐以下两篇有趣的博文:
    1.http://colah.github.io/posts/2015-08-Understanding-LSTMs

2.https://distill.pub/2016/augmented-rnns/

  • 卷积神经网络(Convnets)可用于理解自然语言,通过阅读此文可以帮助你想象在Convnets中处理NLP;
  • Convnets和RNNs之间的相互比较已经在此文中总结出,二者实现的pytorch代码也公开在此;

特定问题的方法调查

从业者需要的另一类资源是对特定问题的回答:“我必须训练一个算法来完成某一项任务X,此时我能使用的最有利(也很容易获得)的东西是什么呢?”。
以下是你需要的内容:

文本分类

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

  • ParallelDots 博客中描述了关于情感分析的不同调查,虽然该调查是针对情感分析技术的,但可以将其扩展到大多数文本分类问题中。
  • 另一项关于情感分析算法的调查(由Linked大学和UIUC的人员进行)可以通过在此阅读。
  • 迁移学习在深入学习中变得非常热门,尤其是在图像处理任务中,只需要针对具体的分类任务进行模型微调就可以获得比较好的性能,同理,在维基百科上训练用于语言建模的NLP模型也可以在相对较少量的数据上迁移学习文本分类。以下是来自相关的资源链接:
    1.https://arxiv.org/abs/1801.06146

2.https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf

  • Fast.ai上有一个关于NLP的学习文档可供使用,链接在此。
    如果你正在学习两个不同的任务,而没有使用迁移学习的话,在此处提到了使用Convnet的技巧。
  • 我们还发布了关于Zero Shot Text分类的工作,该工作在没有任何数据集培训的情况下获得了良好的准确性,并且正在开发下一代。我们构建了自定义文本分类API,读者可以在其中定义自己的类别。

序列标记

  • 序列标记是一种标记具有不同属性的单词的任务,这些任务包括词性标注、命名实体识别、关键字标记等,我们在这里为这些任务写了一个有趣的方法调查。
  • 今年COLING的研究论文为这些问题提供了一个很好的资源,它为训练序列标记算法提供了最佳指导。

机器翻译

  • 最近,NLP最大的进步之一就是发现了可以将文本从一种语言翻译成另一种语言的算法。谷歌的系统采用的是一个复杂的16层LSTM,并提供最先进的翻译结果。
  • 此外,部分媒体专家吹嘘炒作不成比例,一些夸张的报道声称“Facebook必须关闭发明自己语言的人工智能”:
    1.https://gadgets.ndtv.com/social-networking/news/facebook-shuts-ai-system-after-bots-create-own-language-1731309

2.https://www.forbes.com/sites/tonybradley/2017/07/31/facebook-ai-creates-its-own-language-in-creepy-preview-of-our-potential-future/#1d1ca041292c

  • 关于机器翻译的教程,请参阅菲利浦科恩的研究论文。使用深度学习机器翻译的具体评论在此。
    以下是本人最喜欢的几篇论文:
  • 谷歌的这篇论文告诉我们如何在有大量资金和数据的情况下端到端地解决问题;
  • Facebook的 Convolutional NMT系统及其代码在此处作为库发布;
  • https://marian-nmt.github.io/是一个用C ++快速翻译的框架;
  • http://www.aclweb.org/anthology/P18-4020;
  • http://opennmt.net/使每个人都能够训练他们的NMT系统;

问答系统

市面上有许多不同类型的问答任务,比如从选项中选择、从段落或知识图表中选择答案并根据图像回答问题,并且有不同的数据集可以了解最新技术方法。
* SQuAD数据集是一个问答数据集,它测试算法阅读理解和回答问题的能力。微软在今年早些时候发表的一篇论文中声称,他们已经达到了人类级别的精度。另一个重要的算法是Allen AI的BIDAF及其改进版;

  • 另一个重要的算法是Visual Question Answering,它可以回答有关图像的问题。Teney等人的论文是一个很好的入门资源,可以在Github上找到实现代码;
  • 在现实生活中,提取问答对大型文件应答可使用迁移学习来完成,相关的论文可以在此访问;

改述、句子相似或推理

NLP有三个不同的任务:句子相似性,释义检测和自然语言推理(NLI),每个都需要比上一个更多的语义理解。 MultiNLI及其子集Stanford NLI是NLI最有名的基准数据集,并且最近成为了研究的焦点;此外,还有MS复述语料库和Quora语料库用于释义检测,以及用于STS的SemEval数据集(语义文本相似性),可在这里找到此领域中对相关模型的调查综述。在临床领域应用NLI是非常重要的,比如了解正确的医疗程序、副作用和药物的交叉影响等,此教程是医学领域中应用NLI的一个好资源。
下面是这个领域推荐的论文列表:

  • 交互空间的自然语言推理——它采用了一种非常聪明的方法,使用DenseNet表示句子,你可以在这里阅读该论文;
  • 这篇来自Omar Levy小组的研究论文表明,即使是简单的算法也能完成任务;
  • BiMPM是预测释义的一个好模型,可以在这里访问;
  • 我们还有一项关于释义检测的新工作,它将关系网络应用于句子表示之上,并已在今年的AINL会议上被接受。

其他领域

以下是一些更详细的综述性文章,阅读这些文章可以帮助你,获取在制作NLP系统时可能遇到的其他任务的研究信息。

  • 语言建模(LM)——语言建模是学习一个无监督语言表示的任务,这是通过给定前N个单词的句子来预测第(n + 1)个单词。这些模型具有两个重要的实际用途,即自动完成并用作文本分类的转移学习的基础模型。详细的综述文章在此,如果有兴趣了解如何根据搜索历史自动完成手机/搜索引擎中的LSTM工作, 可以阅读这篇论文;
  • 关系提取——关系提取是提取句子中存在的实体之间关系的任务,给定的句子“A像r一样与B相关”,那么得到三元组(A,r,B)。详细的综述文章在此,它使用BIDAF进行零射击关系提取;
  • 对话系统—— 随着聊天机器人革命的开始,对话系统现在也风靡一时。许多人将对话系统看作成意图检测、关键字检测、问答等模型的组合,而其他人则尝试端到端地对其进行建模。详细的综述文章在此,在这里提下Facebook AI的Parl.ai框架;
  • 文本摘要——文本摘要用于从文档中获取精简文本(段落/新闻文章等)。有两种方法可以做到这一点:提取和抽象总结。虽然抽取摘要从文章中提供了具有最高信息内容的句子,但抽象概括的目的是像人类一样编写摘要。来自爱因斯坦AI的演示将抽象概括带入了主流研究中,详细的综述文章在此;
  • 自然语言生成(NLG)—— 自然语言生成是计算机旨在像人类一样写作的研究,可能是写故事、诗歌、图像标题等。目前,在生成图像标题上已经做得很好了,其中将LSTM和注意机制相结合,使得输出可用于现实生活中,详细的综述文章在此;

关注博客

以下是推荐关注的博客列表,对于NLP感兴趣的读者可以时常浏览:

  • 爱因斯坦AI : https://einstein.ai/research
  • Google AI:https://ai.googleblog.com/
  • WildML: http://www.wildml.com/
  • DistillPub: https://distill.pub/
  • Sebastian Ruder: http://ruder.io/

作者信息

Muktabh Mayank,数据科学家、企业家、社会学家
个人主页:https://twitter.com/muktabh
文章原标题《Free resources to learn Natural Language Processing》,译者:Uncle_LLD。
文章为简译,更为详细的内容,请查看原文。

这篇关于一份不可多得的自然语言处理资源清单的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/533389

相关文章

电脑提示xlstat4.dll丢失怎么修复? xlstat4.dll文件丢失处理办法

《电脑提示xlstat4.dll丢失怎么修复?xlstat4.dll文件丢失处理办法》长时间使用电脑,大家多少都会遇到类似dll文件丢失的情况,不过,解决这一问题其实并不复杂,下面我们就来看看xls... 在Windows操作系统中,xlstat4.dll是一个重要的动态链接库文件,通常用于支持各种应用程序

C++中RAII资源获取即初始化

《C++中RAII资源获取即初始化》RAII通过构造/析构自动管理资源生命周期,确保安全释放,本文就来介绍一下C++中的RAII技术及其应用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、核心原理与机制二、标准库中的RAII实现三、自定义RAII类设计原则四、常见应用场景1. 内存管理2. 文件操

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

Golang 日志处理和正则处理的操作方法

《Golang日志处理和正则处理的操作方法》:本文主要介绍Golang日志处理和正则处理的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录1、logx日志处理1.1、logx简介1.2、日志初始化与配置1.3、常用方法1.4、配合defer

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

Python处理大量Excel文件的十个技巧分享

《Python处理大量Excel文件的十个技巧分享》每天被大量Excel文件折磨的你看过来!这是一份Python程序员整理的实用技巧,不说废话,直接上干货,文章通过代码示例讲解的非常详细,需要的朋友可... 目录一、批量读取多个Excel文件二、选择性读取工作表和列三、自动调整格式和样式四、智能数据清洗五、

SpringBoot如何对密码等敏感信息进行脱敏处理

《SpringBoot如何对密码等敏感信息进行脱敏处理》这篇文章主要为大家详细介绍了SpringBoot对密码等敏感信息进行脱敏处理的几个常用方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录​1. 配置文件敏感信息脱敏​​2. 日志脱敏​​3. API响应脱敏​​4. 其他注意事项​​总结

Python使用python-docx实现自动化处理Word文档

《Python使用python-docx实现自动化处理Word文档》这篇文章主要为大家展示了Python如何通过代码实现段落样式复制,HTML表格转Word表格以及动态生成可定制化模板的功能,感兴趣的... 目录一、引言二、核心功能模块解析1. 段落样式与图片复制2. html表格转Word表格3. 模板生