2022 年每个机器学习工程师都应该动手的 15 大 NLP 工具
已发表: 2021-01-01NLP 是 2022 年 AI/数据科学领域最受追捧的领域之一。它具有广泛的应用,并发现其用例被许多行业采用。 今天实践 NLP 的顶级行业是金融/金融科技、银行、法律、医疗保健、保险、零售、广告和媒体、出版媒体,这个名单可以继续。
因此,如果有人想在 AI 领域建立职业生涯,那么 NLP 绝对应该是他们的首选。 最近,与它相关的研究有了飞跃式的发展。 但如果有人会迷失在大海中,那么让我列出 2022 年要使用的顶级 NLP 工具。
我还将它们列为有用的、必要的和不可或缺的,其中有用的排名最低,不可或缺的排名最高。
目录
A. 通用
2. NLTK :好的 NLTK 在 2022 年仍然适用于各种文本预处理任务,如标记化、词干提取、标记、解析、语义推理等。但即使 NLTK 易于使用,但今天它的用例有限应用。 许多现代算法不需要大量的文本预处理。
- Github :github.com/nltk/nltk
- 结论:有帮助
- 原因:2022年的相关性
2. Spacy :Spacy 是完美的一体化 NLP 库,具有非常直观且易于使用的 API。 与 NLTK 一样,它也支持各种预处理任务。 但 Spacy 最好的部分是它支持许多常见的 NLP 任务,如 NER、POS 标记、标记化、统计建模、语法驱动的句子分割等,开箱即用,支持 59 多种语言。 即将推出的 spacy 3.0 将改变游戏规则,并支持转换器架构。
- Github :github.com/explosion/spaCy
- 结论:不可或缺
- 原因:简单,支持开箱即用的各种常见任务和速度。
3. 纯文本:Python 为字符串操作提供了正则表达式,但使用它的模式是一项痛苦的工作。 使用 Clean-text 可以轻松完成这项工作。 它非常简单易用,但同时也很强大。 它甚至可以清除非字母数字的 ASCII 字符。

- Github :github.com/jfilter/clean-text
- 结论:有帮助
- 原因:用例有限,但很容易使用。
阅读:顶级深度学习工具
B. 基于深度学习的工具:
4. 拥抱人脸变形金刚:基于变形金刚的模型是当前 NLP 世界的轰动。 Hugging Face 转换器库提供了与 TF 2.0 和 Pytorch 一起使用的所有 SOTA 模型(如 BERT、GPT2、RoBERTa 等)。 他们的预训练模型可以开箱即用地用于各种下游任务,如 NER、序列分类、抽取式问答、语言建模、文本生成、摘要、翻译。 它还支持对自定义数据集进行微调。 查看他们出色的文档和模型附录以开始使用。
- Github :github.com/huggingface/transformers
- 结论:不可或缺
- 原因:当前 NLP 世界的轰动,为各种各样的下游任务提供了大量的预训练模型
5. Spark NLP :最近,在 NLP 领域,尤其是在医疗保健领域,引起最大轰动的是 Spark NLP。 由于它使用 Apache Spark 作为后端,因此保证了出色的性能和速度。 与 Hugging Face 转换器、TensorFlow、Spacy 相比,他们提供的基准测试声称其训练性能最好。
突出的一件事是访问它提供的嵌入词的数量,如 BERT、ELMO、通用句子编码器、GloVe、Word2Vec 等。 由于其通用性,它还允许为任何用例训练模型。 许多公司,包括 FAANG,都在使用它。
- Github :github.com/JohnSnowLabs/spark-nlp
- 结论:不可或缺
- 理由:优秀的生产级性能,通用性。
6. Fast AI : 它建立在 Pytorch 之上,可用于设计任何框架,包括基于 NLP 的框架。 它的 API 非常直观,目标是最少的代码并强调实用性而不是理论。 它还可以轻松地与 Hugging face 转换器集成。 该库的作者是 Jeremy Howard,他总是强调使用最佳实践。
- Github :github.com/fastai/fastai
- 判决:必不可少
- 理由:有用的API,强调实用性。
7. 简单的变形金刚:它基于拥抱脸变形金刚,并为其提供了一种简单的高级 API。 但不要认为这是它的限制。 对于不寻求定制设计架构但希望基于标准步骤开发模型的任何人,没有其他库比它更好。
它支持所有最常用的 NLP 用例,如文本分类、令牌分类、问答、语言建模、语言生成、多模态分类、会话 AI、文本表示生成。 它也有优秀的文档。

- Github :github.com/ThilinaRajapakse/simpletransformers
- 判决:必不可少
- 原因:像 Hugging Face 转换器的简单高级 API
另请阅读:如何用 Python 制作聊天机器人?
C. 利基用例:
8. Rasa : 迄今为止最完整的对话式人工智能工具,用于构建智能聊天机器人、文本和语音助手。 训练起来非常灵活。
- GitHub :
- 结论:有帮助
- 原因:用例有限,但同时也是同类产品中最好的。
9. TextAttack :经验丰富的 ML 从业者总是更重视测试而不是训练。 该框架适用于 NLP 中的对抗性攻击、对抗性训练和数据增强。 它有助于检查 NLP 系统的稳健性。 开始使用它可能会有点令人困惑,但请按照他们的文档开始并了解使用它的动机。
- Github :github.com/QData/TextAttack
- 判决:必不可少
- 原因:独特而强大的工具。
10. Sentence Transformer :生成嵌入或将文本转换为向量是设计任何 NLP 框架的关键构建块。 一种老派的方法是使用 TF-IDF,但它缺乏上下文。 使用变压器可以解决这个问题。 有很多工具可以生成基于变换器的嵌入(甚至可以调整和使用拥抱面部变换器),但没有一个工具能像句子变换器那样完全简单。
- Github :github.com/UKPLab/sentence-transformers
- 结论:有帮助
- 原因:用例有限,但可以完成工作。
11. BertTopic :如果有人想设计强大的主题建模系统,那么看看 BERTTopic。 它使用 BERT 嵌入和 c-TF-IDF(作者修改后的 TF-IDF 版本)来创建密集的集群,从而允许易于解释的主题,同时在主题描述中保留重要的词。

- Github :github.com/MaartenGr/BERTopic
- 结论:有帮助
- 原因:用例有限,但同时也是同类产品中最好的
12. Bert Extractive Summarizer :这是另一个很棒的工具,基于拥抱脸转换器,可用于文本摘要。 它根据上下文汇总输入文本,因此您无需担心丢失有价值的信息。
- Github :github.com/dmmiller612/bert-extractive-summarizer
- 结论:有帮助
- 原因:用例有限,但同时也是同类产品中最好的
D. 其他(非编码)工具:
13. Doccano : 它是一个简单但功能强大的数据标记工具,可用于标记情感分析、命名实体识别、文本摘要等。那里有很多工具,但 Doccano 是最容易设置和最快的出发。
- Github :github.com/doccano/doccano
- 判决:必不可少
- 原因:快速上手,支持多种格式。
14. Github Actions :目前,Github 最好的功能不是免费(甚至是私有)代码托管,而是它的 Github action。 它是目前最好的 CI/CD 工具之一。 如果不知何故你不使用它,那么你错过了很多。 CI/CD 工具使开发快速且可靠。
- 结论:不可或缺
- 原因:具有强大社区支持的免费 CI/CD 工具。
15. DVC(数据版本控制):数据是任何数据科学项目的核心,因此管理它是关键。 DVC 从 Git 中汲取灵感。 它毫不费力地与 Git 集成。 它使我们能够来回更改版本化数据或数据时间旅行。 它还适用于 aws s3、azure blob 存储、gcp 云存储等云存储。
- Github :github.com/iterative/dvc
- 结论:不可或缺
- 原因:与 git、云存储一起使用,可用于管理大量数据
如果您想掌握机器学习并学习如何训练代理玩井字游戏、训练聊天机器人等,请查看 upGrad 的机器学习和人工智能 PG 文凭课程。
哪种自然语言处理算法最准确?
朴素贝叶斯算法提供最准确的结果。 它在贝叶斯定理的概念上起作用。 此外,与其他算法相比,它需要更少的训练时间。 它主要用于分类问题的情况。 当给定多个类或需要文本分类时,首选使用朴素贝叶斯算法。
NLP 难还是容易?
自然语言处理非常有用,但也有点复杂。 世界很大,自然语言的数量也很大。 每种自然语言都有不同的语法和脚本。 此外,当上下文发生变化时,单词的含义也会发生变化。 因此,进行 NLP 是一项艰巨的任务,但如果这是你真正感兴趣的,随着时间的推移和实践,这个过程对你来说似乎会更容易。
NLP中词干提取的过程中做了什么?
存在如此多的自然语言,执行 NLP 会变得相当困难。 因此,要获得第一个词或词根,需要进行词干提取。 借助通用且有效的规则,所有标记都被削减并找到词干或词根。 执行此过程是为了使任务更简单。