使用当前spacy版本重试自定义语言模型(兼容性问题)



我安装了带有两个语言模型的spacy:vi_spacy(不是我的(,这是一个来自Github的spacy的自定义越南语模型,以及日语ja_core_news_trf模型。我首先用python安装了ja_core_news_trf模型-m spacy下载了ja_core _news_tr在anaconda命令行中执行命令,它工作起来没有问题。然后,当我在命令行中使用安装vi_spacy并尝试它时,它成功了。但当我尝试的时候,日本模式已经不起作用了。

每次我得到这个错误:

OSError: [E050] Can't find model 'ja_core_news_trf'. It doesn't seem to be a Python package or a valid path to a data directory.

即使当我键入pip-list命令时,ja_core_news_trf已经安装。经过调查,我发现vi_spacy只适用于spacy v3.0.8,但ja_core_news_trf需要spacy>3.2.0,<3.3.0,与当前版本不兼容。在输入python-m spacy信息后,我得到了这个错误消息:

UserWarning: [W095] Model 'ja_core_news_trf' (3.2.0) requires spaCy >=3.2.0,<3.3.0 and is incompatible with the current version (3.0.8). This may lead to unexpected results or runtime errors. To resolve this, download a newer compatible model or retrain your custom model with the current spaCy version. For more details and available updates, run: python -m spacy validate

在运行python-m spacy验证后,我得到了这个:

ja_core_news_trf   >=3.2.0,<3.3.0   3.2.0     --> n/a
vi_core_news_lg    >=3.0.5,<3.1.0   0.0.1     ✔
The following packages are custom spaCy pipelines or not available for spaCy
v3.0.8:
ja_core_news_trf

所以我的问题是,我如何用当前的spaCy版本重新培训定制的越南模型?当然,我试着联系开发人员,但他没有回复,所以我想自己做——这是可能的。

在几乎所有情况下,spaCy v3型号都与较新版本的spaCy v3向前兼容,因此请下载ja_core_news_trf,然后使用pip install --no-deps安装越南型号,这样pip就不会将较旧版本的spacy作为依赖项安装。

加载时会收到一个警告,旧型号可能不兼容,但请在数据上进行测试,只要性能与旧版本的spacy相同,就可以使用。

请参阅:https://spacy.io/usage/v3-2#upgrading

只有在可以访问原始训练数据的情况下,才能重新训练模型。

最新更新