v3.7版本的新特性
spaCy v3.7 新增了对 Python 3.12 的支持,引入了用于项目工作流的新独立库 Weasel,并更新了基于 transformer 的训练管道以使用我们新的 Curated Transformers 库。
此版本不再支持Python 3.6。
Weasel
spaCy projects 功能已迁移至新的独立库 Weasel。这为spaCy项目中的特定设置带来了一些小改动(详见下方升级指南),同时也使得该工作流功能可以在spaCy之外使用。
所有spacy project命令应像之前一样运行,只是现在它们底层使用的是Weasel。
已注册向量
您可以在[nlp.vectors]下指定自定义注册的向量类,以便使用Vectors不支持的格式的静态向量。要实现自定义向量,请扩展抽象类BaseVectors。查看使用BPEmb子词嵌入的示例。
Additional features and improvements
- 增加对Python 3.12的支持。
- 扩展至Thinc v8.2版本。
- 将
transformers扩展功能升级至spacy-transformersv1.3版本。 - 为CLI评估添加
--spans-key选项,用于spacy benchmark accuracy命令。 - 为
spacy.info延迟加载CLI模块。 - 为
spacy.training.example添加类型存根。 - 针对依赖匹配器中不支持的模式键发出警告。
Language.replace_listeners: 将被替换的监听器和tok2vec管道传递给回调函数,以支持spacy-curated-transformers。- 在非交互式环境中,始终使用
tqdm并设置disable=None来禁用输出。 - Language updates:
- 为古希腊语添加左右尖括号作为标点符号。
- 更新土耳其语的例句。
- Package setup updates:
- 更新NumPy 1.25+版本的构建约束。对于Python 3.9+版本,在构建二进制轮文件时不再需要设置构建约束。
- 重构Cython性能分析功能,以便在包设置中禁用Python 3.12的性能分析,因为当前Cython尚不支持Python 3.12的性能分析。
训练好的管道
Pipeline更新
基于Transformer的trf流水线已更新,现在使用我们新的精选Transformer库,该库采用了Thinc模型封装器以及来自spaCy精选Transformers的流水线组件。
关于从v3.6升级的注意事项
此版本放弃了对Python 3.6的支持,移除了对Python 3.7的mypy检查,并删除了ray额外组件。此外,以下部分还描述了针对spaCy项目的若干次要变更。
spaPy项目的向后不兼容性
spacy project 由于过渡到独立库 Weasel 而存在一些向后不兼容性,该库与 spaCy 的耦合度较低。当 Weasel 检测到您的环境或项目配置中存在较旧的 spaCy 特定设置时,会产生警告。
- 不再支持
spacy_version配置项。 - 由于
pkg_resources已被弃用,不再支持check_requirements配置键。 - 不再检查
SPACY_CONFIG_OVERRIDES环境变量。您可以使用WEASEL_CONFIG_OVERRIDES来设置配置覆盖项。 - 不再支持
SPACY_PROJECT_USE_GIT_VERSION环境变量。 - 错误代码现在是Weasel特有的,不再遵循spaCy错误代码。
Pipeline包版本兼容性
当你加载一个使用早期spaCy v3版本训练的流程包时,会看到警告提示该流程可能存在兼容性问题。这并不一定属实,但我们建议针对你的测试套件或评估数据运行这些流程,以确保不会出现意外结果。
如果您正在使用我们提供的训练好的管道之一,您应该运行spacy download来更新至最新版本。要查看所有已安装包及其兼容性的概览,您可以运行spacy validate。
如果您已经训练了自己的自定义流程,并确认其仍按预期工作,可以在meta.json中更新spaCy版本要求:
更新v3.6配置
要将spaCy v3.6的配置更新为新的v3.7设置,请运行
init fill-config:
在许多情况下(spacy train,
spacy.load),新默认值将自动填充,
但您需要填写新设置才能运行
debug config 和 debug data。