如何在 Poetry 托管环境中下载 spaCy 模型

Rob*_*der 5 python nlp spacy virtual-environment python-poetry

我正在编写一个 Python Jupyter 笔记本,它对意大利语文本进行一些 NLP 处理。

我已经通过 Poetry 安装了 spaCy 3.5.3,然后尝试运行以下代码:

import spacy
load_model = spacy.load('it_core_news_sm')
Run Code Online (Sandbox Code Playgroud)

import行按预期工作,但运行spacy.load会产生以下错误:

OSError:[E050]找不到模型“it_core_news_sm”。它似乎不是 Python 包或数据目录的有效路径。模型名称正确,如https://spacy.io/models/it所示

经过网络搜索,我发现解决方案是发出以下命令:

python3 -m spacy download it_core_news_sm
Run Code Online (Sandbox Code Playgroud)

运行此命令后,上面的代码按预期工作,但是,是否有更“犹太”的方式通过 Poetry 来执行此操作?

Kyl*_*erg 10

您可以添加 URL 依赖项。首先编辑您的pyproject.toml文件以添加以下内容(注意:此处使用的名称应与包的名称匹配(即it_core_news_sm):

[tool.poetry.dependencies]
it_core_news_sm = {url = "https://github.com/explosion/spacy-models/releases/download/it_core_news_sm-3.5.0/it_core_news_sm-3.5.0.tar.gz"}
Run Code Online (Sandbox Code Playgroud)

然后运行相应的add调用:

poetry add https://github.com/explosion/spacy-models/releases/download/it_core_news_sm-3.5.0/it_core_news_sm-3.5.0.tar.gz
Run Code Online (Sandbox Code Playgroud)

所有 spaCy 模型都可以在 spaCy 的模型发布GitHub 页面上找到。