自然语言处理已成为 2020 年深度学习领域中研究最多的领域之一,这主要是由于其日益普及,未来的潜力以及对各种应用程序的支持。
如果你以前玩过深度学习,那么可能知道传统的深度学习框架,例如 Tensorflow,Keras 和 Pytorch。 假定你了解这些基本框架,本文将专门简要介绍很多有用的 NLP 库,2020 年把这些库都用起来吧!
1.AllenNLP
人气指数:⭐⭐⭐⭐(四星)
官网网站:https://allennlp.org/
GitHub:https://github.com/allenai/allennlp
简要说明:AllenNLP 是由世界著名的艾伦人工智能实验室(Allen Institute for AI Lab)建立的 NLP 深度学习通用框架,不仅包含了最先进的参考模型,可以进行快速部署,而且支持多种任务和数据集,还包含了很多很酷的演示案例,看完案例,你就知道自己是否想学习和使用这个框架了!
2.Fast.ai
人气指数:⭐⭐⭐⭐(四星)
官方网站: http://docs.fast.ai/
Github: https://github.com/fastai/fastai
简要说明:Fast.ai 的构建旨在通过其免费的在线课程和易于使用的软件库,为没有技术背景的人们提供深度学习的机会。 实际上,它的共同创始人杰里米·霍华德(Jeremy Howard)刚刚出版(2020年8月)一本全新的书,名为《面向程序员的 fastai 和 PyTorch 深度学习:不需要博士学位的AI应用》,其标题不言而喻。在 Fast.ai 库中,它们具有指定的 Text 节,该节用于与 NLP 相关的所有内容。它们具有具有超高层次的抽象和易于实现的 NLP 数据预处理、模型构建、培训和评估。 在这里,推荐那些偏爱实践而不是理论,并希望快速解决问题的人使用 Fast.ai。
1.Spacy
人气指数:⭐⭐⭐⭐⭐(五星)
官方网站:https://spacy.io/
GitHub:https://github.com/explosion/spaCy
简要说明:Spacy是最受欢迎的文本预处理库,也是你能找到最方便的库。它包含许多易于使用的函数,可以用于标记化、词性标记、命名实体识别等。它还支持59种以上的语言和几种预训练的单词向量,你很容易就可以快速入门!
2.NLTK
人气指数:⭐⭐⭐⭐⭐(五星)
官方网站:https://www.nltk.org/
GitHub:https://github.com/nltk/nltk
简要说明:与 Spacy 相似,它是 NLP 的另一个流行的预处理库。它的功能包括标记化、词干提取、标记、句法分析和语义推理。就我个人而言,NLTK 是我最喜欢的预处理库,因为 NLTK 足够简单,而且能帮助我们快速完成工作。
3.TorchText
人气指数:⭐⭐⭐⭐(四星)
官方网站:https://torchtext.readthedocs.io/en/latest/
GitHub:https://github.com/pytorch/text
简要说明:TorchText 因为得到 Pytorch 的支持,所以越来越受欢迎。它包含便利的数据处理实用程序,可在批量处理和准备之前将其输入到深度学习框架中。我经常使用 TorchText 来加载训练、验证和测试数据集,来进行标记化、vocab 构造和创建迭代器,这些迭代器稍后可被 dataloader 使用。它不仅是一个非常方便的工具,仅用几行简单的代码就能处理所有繁重的工作,还可以轻松地为数据集使用经过预训练的单词嵌入,例如 word2Vec 或 FastText。
使用 Pytorch 进行的 BERT 文本分类示例:
https://towardsdatascience.com/bert-text-classification-using-pytorch-723dfb8b6b5b
Huggingface
人气指数:⭐⭐⭐⭐⭐(五星)
官方网站:https://huggingface.co/
GitHub:https://github.com/huggingface/transformers
简要说明:这是最流行的库,它实现了从 BERT 和 GPT-2 到 BART 和 Reformer 的各种转换。huggingface 的代码可读性强和文档也是清晰易读。在官方github的存储库中,甚至通过不同的任务来组织 Python 脚本,例如语言建模、文本生成、问题回答、多项选择等。他们具有内置的脚本,用于为每个任务运行基线转换,真的很方便!
1.Gensim
人气指数:⭐⭐⭐(三星)
官方网站:https://radimrehurek.com/gensim/
GitHub:https://github.com/RaRe-Technologies/gensim
任务:主题建模,文本摘要,语义相似度
简要说明:Gensim 是用于特定文本主题建模的高端行业级软件。它的功能非常强大,独立于平台,并且具有可扩展性。不仅可以用来判断两个报纸文章之间的语义相似性,而且可以利用简单的函数调用来执行此操作并返回其相似度分数,非常方便!
2.OpenNMT
人气指数:⭐⭐⭐(三星)
官方网站:https://opennmt.net/
GitHub:https://github.com/OpenNMT/OpenNMT-py
任务:机器翻译
简要说明:OpenNMT 是用于机器翻译和序列学习任务的便捷而强大的工具。其包含的高度可配置的模型和培训过程,让它成为了一个非常简单的框架。因其开源且简单的特性,建议大家使用 OpenNMT 进行各种类型的序列学习任务。
3.ParlAI
人气指数:⭐⭐⭐(三星)
官方网站:https://parl.ai/
GitHub:https://github.com/facebookresearch/ParlAI
任务:面向任务的对话,聊天对话,视觉问答
说明:ParlAI 是 Facebook 的#1 框架,用于共享、训练和测试用于各种对话任务的对话模型。其提供了一个支持多种参考模型、预训练模型、数据集等的多合一环境。与本文中的其他大多数工具不同,如果你想自行定制内容,ParlAI 需要一定的编码水平和机器学习专业知识。换句话说,就是用起来有点复杂,但是如果你要是用于对话,它还是一个很好的工具。
4.DeepPavlov
人气指数:⭐⭐⭐(三星)
官方网站:http://deeppavlov.ai/
GitHub:https://github.com/deepmipt/DeepPavlov
任务:面向任务的对话,聊天对话
简要说明:除了 ParlAI 之外,我想说 DeepPavlov 更适合于应用程序和部署,而不是用于研究,尽管我们仍然可以用 DeepPavlov 来进行很多自定义。 我认为,DeepPavlov 到 ParlAI 就像 Tensorflow 到 Pytorch。DeepPavlov 是主要用于聊天机器人和虚拟助手开发的框架,因为它提供了生产就绪和行业级对话代理所需的所有环境工具。
--END--
喜欢本文的同学记得收藏+点赞~
更多内容,欢迎大家关注我们的公众号:为AI呐喊(weainahan)