• 0

  • 18

2020年人气最高的十大NLP库推荐

4星期前

自然语言处理

自然语言处理已成为 2020 年深度学习领域中研究最多的领域之一,这主要是由于其日益普及,未来的潜力以及对各种应用程序的支持。

如果你以前玩过深度学习,那么可能知道传统的深度学习框架,例如 Tensorflow,Keras 和 Pytorch。 假定你了解这些基本框架,本文将专门简要介绍很多有用的 NLP 库,2020 年把这些库都用起来吧!

通用框架

1.AllenNLP

人气指数:⭐⭐⭐⭐(四星)

官网网站:allennlp.org/

GitHub:github.com/allenai/alle

简要说明:AllenNLP 是由世界著名的艾伦人工智能实验室(Allen Institute for AI Lab)建立的 NLP 深度学习通用框架,不仅包含了最先进的参考模型,可以进行快速部署,而且支持多种任务和数据集,还包含了很多很酷的演示案例,看完案例,你就知道自己是否想学习和使用这个框架了!

2.Fast.ai

人气指数:⭐⭐⭐⭐(四星)

官方网站: docs.fast.ai/

Github: github.com/fastai/fasta

简要说明:Fast.ai 的构建旨在通过其免费的在线课程和易于使用的软件库,为没有技术背景的人们提供深度学习的机会。 实际上,它的共同创始人杰里米·霍华德(Jeremy Howard)刚刚出版(2020年8月)一本全新的书,名为《面向程序员的 fastai 和 PyTorch 深度学习:不需要博士学位的AI应用》,其标题不言而喻。在 Fast.ai 库中,它们具有指定的 Text 节,该节用于与 NLP 相关的所有内容。它们具有具有超高层次的抽象和易于实现的 NLP 数据预处理、模型构建、培训和评估。 在这里,推荐那些偏爱实践而不是理论,并希望快速解决问题的人使用 Fast.ai。

预处理

1.Spacy

人气指数:⭐⭐⭐⭐⭐(五星)

官方网站:spacy.io/

GitHub:github.com/explosion/sp

简要说明:Spacy是最受欢迎的文本预处理库,也是你能找到最方便的库。它包含许多易于使用的函数,可以用于标记化、词性标记、命名实体识别等。它还支持59种以上的语言和几种预训练的单词向量,你很容易就可以快速入门!

2.NLTK

人气指数:⭐⭐⭐⭐⭐(五星)

官方网站:nltk.org/

GitHub:github.com/nltk/nltk

简要说明:与 Spacy 相似,它是 NLP 的另一个流行的预处理库。它的功能包括标记化、词干提取、标记、句法分析和语义推理。就我个人而言,NLTK 是我最喜欢的预处理库,因为 NLTK 足够简单,而且能帮助我们快速完成工作。

3.TorchText

人气指数:⭐⭐⭐⭐(四星)

官方网站:torchtext.readthedocs.io

GitHub:github.com/pytorch/text

简要说明:TorchText 因为得到 Pytorch 的支持,所以越来越受欢迎。它包含便利的数据处理实用程序,可在批量处理和准备之前将其输入到深度学习框架中。我经常使用 TorchText 来加载训练、验证和测试数据集,来进行标记化、vocab 构造和创建迭代器,这些迭代器稍后可被 dataloader 使用。它不仅是一个非常方便的工具,仅用几行简单的代码就能处理所有繁重的工作,还可以轻松地为数据集使用经过预训练的单词嵌入,例如 Word2Vec 或 FastText。

使用 Pytorch 进行的 BERT 文本分类示例:

towardsdatascience.com/

Transformers

Huggingface

人气指数:⭐⭐⭐⭐⭐(五星)

官方网站:huggingface.co/

GitHub:github.com/huggingface/

简要说明:这是最流行的库,它实现了从 BERT 和 GPT-2 到 BART 和 Reformer 的各种转换。huggingface 的代码可读性强和文档也是清晰易读。在官方github的存储库中,甚至通过不同的任务来组织 python 脚本,例如语言建模、文本生成、问题回答、多项选择等。他们具有内置的脚本,用于为每个任务运行基线转换,真的很方便!

具体任务

1.Gensim

人气指数:⭐⭐⭐(三星)

官方网站:radimrehurek.com/gensim

GitHub:github.com/RaRe-Technol

任务:主题建模,文本摘要,语义相似度

简要说明:Gensim 是用于特定文本主题建模的高端行业级软件。它的功能非常强大,独立于平台,并且具有可扩展性。不仅可以用来判断两个报纸文章之间的语义相似性,而且可以利用简单的函数调用来执行此操作并返回其相似度分数,非常方便!

2.OpenNMT

人气指数:⭐⭐⭐(三星)

官方网站:opennmt.net/

GitHub:github.com/OpenNMT/Open

任务:机器翻译

简要说明:OpenNMT 是用于机器翻译和序列学习任务的便捷而强大的工具。其包含的高度可配置的模型和培训过程,让它成为了一个非常简单的框架。因其开源且简单的特性,建议大家使用 OpenNMT 进行各种类型的序列学习任务。

3.ParlAI

人气指数:⭐⭐⭐(三星)

官方网站:parl.ai/

GitHub:github.com/facebookrese

任务:面向任务的对话,聊天对话,视觉问答

说明:ParlAI 是 Facebook 的#1 框架,用于共享、训练和测试用于各种对话任务的对话模型。其提供了一个支持多种参考模型、预训练模型、数据集等的多合一环境。与本文中的其他大多数工具不同,如果你想自行定制内容,ParlAI 需要一定的编码水平和机器学习专业知识。换句话说,就是用起来有点复杂,但是如果你要是用于对话,它还是一个很好的工具。

4.DeepPavlov

人气指数:⭐⭐⭐(三星)

官方网站:deeppavlov.ai/

GitHub:github.com/deepmipt/Dee

任务:面向任务的对话,聊天对话

简要说明:除了 ParlAI 之外,我想说 DeepPavlov 更适合于应用程序和部署,而不是用于研究,尽管我们仍然可以用 DeepPavlov 来进行很多自定义。 我认为,DeepPavlov 到 ParlAI 就像 Tensorflow 到 Pytorch。DeepPavlov 是主要用于聊天机器人和虚拟助手开发的框架,因为它提供了生产就绪和行业级对话代理所需的所有环境工具。

 

--END--

免责声明:文章版权归原作者所有,其内容与观点不代表Unitimes立场,亦不构成任何投资意见或建议。

程序员

18

相关文章推荐

未登录头像

暂无评论