将训练有素的 Spacy 2 管道迁移到 Spacy 3

问题描述

到目前为止,我一直在使用 spacy 2.3.1,并且已经为我的自定义语言类训练并保存了几个管道。但是现在使用 spacy 3.0 和 spacy.load('model-path') 我面临着诸如 config.cfg file not found 和其他类型的错误之类的问题。

升级 spacy 后,我是否必须从头开始训练模型?是否有迁移训练模型的分步指南?

解决方法

恐怕您无法仅迁移经过训练的管道。使用 v2 训练的管道与 v3 不兼容,因此您不能只对它们使用 spacy.load

您必须将代码库迁移到 v3,并重新训练模型。您有两个选择:

  • 更新您的训练循环以将 API 调用从 v2 更改为 v3,请参阅此处了解更多详细信息:https://spacy.io/usage/v3#migrating
  • (推荐方法):将您的训练代码完全转换为 v3 中的新 config system。虽然这似乎是一个很大的不同,但您会很快掌握配置系统的窍门,并且您会注意到与从头开始编写所有内容相比,它更加强大和方便。要开始使用配置系统,请查看 init config 命令,例如:
python -m spacy init config config.cfg --lang en --pipeline ner,textcat --optimize accuracy

这将为您提供一些合理的默认设置,以及您可以根据自己的要求进一步自定义的配置文件。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...