首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >spaCy v2.2性能优化与新功能详解

spaCy v2.2性能优化与新功能详解

原创
作者头像
用户11764306
发布2026-05-27 14:06:23
发布2026-05-27 14:06:23
160
举报

spaCy v2.2:更精简、更高效的自然语言处理库

新版模型与数据增强

spaCy v2.2 带来了重新训练的统计模型,修复了错误并提升了对小写文本的处理性能。为了解决训练数据与实际数据在大小写和格式上的差异问题,开发了新的数据增强系统。该系统在训练过程中支持词语替换和配对标点符号(如引号)的处理。

通过 --orth-variant-level 参数可启用数据增强策略,默认值为 0.3,表示 30% 的标记在训练期间会被替换。被选中的输入有 50% 的概率会被强制转换为小写。

新增语言模型

新增了挪威语立陶宛语的预训练模型。当前版本未使用预训练词向量和 spacy pretrain 命令,后续版本将进一步提升准确率。

荷兰语NER模型改进

基于 LaSSy 语料库和 OntoNotes 5 标注,训练了包含 20 个实体类别的全新命名实体识别模型,取代了之前的半自动维基百科模型。新版模型目录已更新,展示更详细的模型信息包括标签体系。

命令行训练新功能

spacy train 命令现已集成文本分类器支持,示例命令如下:

代码语言:bash
复制
python -m spacy train en /output /train /dev --pipeline textcat --textcat-arch simple_cnn --textcat-multilabel

新增 debug-data 命令,用于验证训练和开发数据、获取统计信息、发现无效实体标注、循环依赖、低数据量标签等问题。

更小的磁盘占用与更好的语言资源处理

将基于查找的词形还原表从 Python 文件迁移为 gzip 压缩的 JSON,并移至独立包 spacy-lookups-data。spaCy 安装体积现在缩小了 5-10 倍。

大型语言资源现在由统一的 Lookups API 支持,自定义组件也可以利用该 API 将查找表存入共享的 Vocab 对象。

DocBin:高效序列化

新的 DocBin 类可高效序列化/反序列化 Doc 对象集合,内部将每个 Doc 转换为 numpy 数组,并维护所有字符串集合。序列化格式为 gzip 压缩的 msgpack。

使用示例:

代码语言:python
复制
import spacy
from spacy.tokens import DocBin

doc_bin = DocBin(attrs=["LEMMA", "ENT_IOB", "ENT_TYPE"], store_user_data=True)
texts = ["Some text", "Lots of texts...", "..."]
nlp = spacy.load("en_core_web_sm")
for doc in nlp.pipe(texts):
    doc_bin.add(doc)
bytes_data = doc_bin.to_bytes()

# 后续反序列化
nlp = spacy.blank("en")
doc_bin = DocBin().from_bytes(bytes_data)
docs = list(doc_bin.get_docs(nlp.vocab))

10倍更快的短语匹配

v2.2 将 PhraseMatcher 替换为基于 Trie 树的算法,在标记级别进行搜索而非字符级别。基准测试(10,000 篇维基百科文章)结果如下:

查询数

匹配数

v2.1.8(秒)

v2.2.0(秒)

10

0

0.439

0.027

100

795

0.457

0.028

1,000

11,376

0.512

0.043

10,000

105,688

0.632

0.114

少量查询时速度提升近 20 倍,1 万条查询时仍快约 5 倍。FINISHED

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • spaCy v2.2:更精简、更高效的自然语言处理库
    • 新版模型与数据增强
    • 新增语言模型
    • 荷兰语NER模型改进
    • 命令行训练新功能
    • 更小的磁盘占用与更好的语言资源处理
    • DocBin:高效序列化
    • 10倍更快的短语匹配
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档