机器之心报道
作者:小舟、杜伟
spaCy 3.0 正式版来了。
spaCy 是具有工业级强度的 Python NLP 工具包,被称为最快的工业级自然语言处理工具。它支持多种自然语言处理的基本功能,主要功能包括分词、词性标注、词干化、命名实体识别、名词短语提取等。
近日,spaCy v3.0 正式发布,这是一次重大更新。
spcCy 3.0 更新文档地址:https://github.com/explosion/spaCy/releases/tag/v3.0.0
spaCy v3.0 有以下特点:
- 具有新的基于 transformer 的 pipeline,这使得 spaCy 的准确率达到了当前的 SOTA 水平;
- 提供了新的 workflow 系统,帮助用户将原型变为产品;
- pipeline 配置更加简单,训练 pipeline 也更加轻松;
- 与 NLP 生态系统的其他部分有许多新的和改进的集成。
spaCy v3.0 旨在优化用户的应用体验。用户可以使用强大的新配置系统来描述所有的设置,从而在 PyTorch 或 TensorFlow 等框架中编写支持 spaCy 组件的模型。新的 workflow 系统更加适用于步骤复杂的现代 NLP 流程。
快速安装启动
为了实现最流畅的更新过程,项目开发者建议用户在一个新的虚拟环境中启动:
代码语言:javascript复制pip install -U spacy
在具体操作上,用户可以选择自己的操作系统、包管理器、硬件、配置、训练 pipeline,以及选择 pipeline 时可以选择侧重效率性或者准确性。
新功能与改进之处
本次更新的 spaCy v3.0 增添了一些新功能,也进行了一系列改进,具体如下:
- 基于 Transformer 的 pipeline,支持多任务学习;
- 针对 18 种语言再训练的模型集合以及 58 个训练的 pipeline(包括 5 个基于 transformer 的pipeline);
- 针对所有支持语言再训练的 pipeline,以及用于马其顿语和俄语的新的核心 pipeline;
- 新的训练工作流和配置系统;
- 使用 PyTorch、TensorFlow 和 MXNet 等任何机器学习框架实现自定义模型;
- 管理从预处理到模型部署等端到端多步骤工作流的 spaCy 项目;
- 集成数据版本控制(Data Version Control, DVC)、Streamlit、Weights & Biases、Ray 等;
- 利用 Ray 的并行训练和分布式计算;
- 新的内置pipeline组件:SentenceRecognizer、Morphologizer、Lemmatizer、AttributeRuler 和 Transformer;
- 针对自定义组件的全新改进版 pipeline 组件 API 和装饰器;
- 从用户训练配置的其他 pipeline 中获取经过训练的组件;
- 为所有经过训练的 pipeline 包提供预建和更高效的二进制 wheel;
- 使用 Semgrex 运算符在依赖解析(dependency parse)中提供用于匹配模式的 DependencyMatcher;
- 在 Matcher 中支持贪婪模式(greedy pattern);
- 新的数据结构 SpanGroup,可以通过 Doc.spans 有效地存储可能重叠的 span 的集合;
- 用于自定义注册函数的类型提示和基于类型的数据验证;
- 各种新方法、属性和命令。
58 个训练的 pipeline
用户在下载训练的 pipeline 时,可以使用 spacy download 命令。58 个训练的 pipeline 如下图所示:
部分截图。
用户在自己的数据上训练 pipeline 时可参考训练文档,地址:https://spacy.io/usage/training
已删除或重命名的 API
下图中弃用的方法、属性和参数已经在 v3.0 中删除,其中的大多数已经弃用了一段时间,并且很多以往会引发错误。如果用户使用的是最新版本的 spaCy v2.x,则代码对它们的依赖性不大。
参考链接:
https://explosion.ai/blog/spacy-v3
https://zhuanlan.zhihu.com/p/51425975