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 流程。
快速安装启动
为了实现最流畅的革新过程,项目开发者建议用户在一个新的虚拟环境中启动:
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