介绍 spaCy v3.3
spaCy v3.3 是 spaCy 自然语言处理库的一个新版本。此版本提升了几乎所有统计管道组件的速度,增加了一个可训练的词形还原器,并包含针对芬兰语、韩语和瑞典语的新训练管道。
速度提升
spaCy v3.3 包含一系列速度改进,提升了所有核心管道组件在训练和推理阶段的速度。对于长文本,训练管道的预测速度提升了15%或更多。针对 en_core_web_md 的详细基准测试显示了 spaCy v3.2 与 v3.3 的速度对比:
速度基准:en_core_web_md
| CPU | 平均词数/文档 | v3.2 词/秒 | v3.3 词/秒 | 差异 |
|---|---|---|---|---|
| Intel Xeon W-2265 | 100 | 17292 | 17441 | 0.86% |
| 1000 | 15408 | 16024 | 4.00% | |
| 10000 | 12798 | 15346 | 19.91% | |
| Apple M1 | 100 | 18272 | 18408 | 0.74% |
| 1000 | 18794 | 19248 | 2.42% | |
| 10000 | 15144 | 17513 | 15.64% |
可训练词形还原器
新的可训练词形还原器组件使用编辑树将词元转换为其词元原形。可以通过训练快速入门尝试使用可训练词形还原器!
displaCy 支持重叠跨度
displaCy 现在支持来自 Doc.spans 的重叠跨度标注。
新训练管道
v3.3 引入了针对芬兰语、韩语和瑞典语的新的 CPU/CNN 管道,这些管道使用了新的可训练词形还原器和 floret 向量。由于使用了 Bloom 嵌入和子词,这些管道具有紧凑的向量且不存在词汇表外词。
| 包名 | 语言 | UPOS | 解析器 LAS | NER F1 |
|---|---|---|---|---|
fi_core_news_sm | 芬兰语 | 92.5 | 71.9 | 75.9 |
fi_core_news_md | 芬兰语 | 95.9 | 78.6 | 80.6 |
fi_core_news_lg | 芬兰语 | 96.2 | 79.4 | 82.4 |
ko_core_news_sm | 韩语 | 86.1 | 65.6 | 71.3 |
ko_core_news_md | 韩语 | 94.7 | 80.9 | 83.1 |
ko_core_news_lg | 韩语 | 94.7 | 81.3 | 85.3 |
sv_core_news_sm | 瑞典语 | 95.0 | 75.9 | 74.7 |
sv_core_news_md | 瑞典语 | 96.3 | 78.5 | 79.3 |
sv_core_news_lg | 瑞典语 | 96.3 | 79.1 | 81.1 |
特别感谢 Antti Ajanki, Tuomo Hiippala (芬兰语) 和 Elena Fano (瑞典语) 对新管道的贡献和帮助!
管道更新
以下语言训练管道中的词形还原器已从基于查找或规则的词形还原器切换为新的可训练词形还原器:
词形还原器准确率(md 管道)
| 语言 | v3.2 | v3.3 |
|---|---|---|
| 丹麦语 | 84.9 | 94.8 |
| 荷兰语 | 81.5 | 94.0 |
| 德语 | 73.4 | 97.7 |
| 希腊语 | 56.5 | 88.9 |
| 芬兰语 | - | 86.2 |
| 意大利语 | 86.6 | 97.2 |
| 韩语 | - | 90.0 |
| 立陶宛语 | 71.1 | 84.8 |
| 挪威语(博克马尔) | 76.7 | 97.1 |
| 波兰语 | 87.1 | 93.7 |
| 葡萄牙语 | 76.7 | 96.9 |
| 罗马尼亚语 | 81.8 | 95.5 |
| 瑞典语 | - | 95.5 |
spaCy 生态的新成员
自 v3.2 以来,许多很酷的新插件、扩展、管道和教程被添加到了 spaCy 生态中:
- Applied Language Technology course: 使用 spaCy 和 Stanza 的新手 NLP 课程。
- Augmenty: 一个文本增强库。
- classy-classification: 一个用于在 spaCy 内进行经典少样本和零样本分类的 Python 库。
- Concise Concepts: 基于词嵌入相似度的少样本 NER。
- Crosslingual Coreference: 使用英语共指模型和跨语言嵌入的跨语言共指。
- EDS-NLP: 用于从法语临床记录中提取信息的 spaCy 组件。
- eng-spacysentiment: 英语情感分析。
- Healthsea: 用于探索保健品效果的端到端 spaCy 管道。
- HuSpaCy: 工业级匈牙利语自然语言处理。
- Klayers: 作为某中心 Lambda 层的 spaCy。
- NER using spaCy: 使用 spaCy 进行命名实体识别(视频)。
- Scrubadub: 使用 spaCy 从文本中删除个人身份信息。
- spacypdfreader: 简易的 PDF 转文本再到 spaCy 文本提取。
- spacy-setfit-textcat: 使用 SetFit 和少样本分类进行实验。
- spacy-wrap: 在 spaCy 管道中包装微调后的 Transformer 模型。
- textnets: 使用网络进行文本分析。
- tmtoolkit: 文本挖掘和主题建模工具包。
查看 spaCy 生态
资源
- spaCy v3.3:v3.3 的新特性
- 发布说明:详细概述
- spaCy 模型目录:下载训练好的管道
- spaCy 生态:项目、插件和扩展
- spaCy 项目模板:端到端 NLP 工作流
- 视频教程:YouTube 上更深入的 spaCy 内容