spacy语言模型在哪里下载



我有一个简单的命令:

python -m spacy download en_core_web

而且我一辈子都不知道它下载到哪里。我搜索"en_core_web",但在任何地方都找不到任何东西。我一辈子都不知道该搜索什么来理解这个命令背后的语法。

你把这条线叫什么?python命令行参数?我找不到要搜索的内容来指定下载位置。

请帮忙!

我偶然发现了同样的问题,可以使用模型类变量找到加载的spacy模型的模型路径。

例如,在命令行完成模型下载后,如下所示:
python -m spacy download en_core_web_sm

然后在python shell中:

import spacy
model = spacy. load("en_core_web_sm")
model._path

这将显示该模型在系统中的安装位置。

如果您想下载到其他位置,我相信您可以在命令行中编写以下内容:
python -m spacy.en.download en_core_web_sm --data-path /some/dir

希望能帮助

我似乎找不到任何证据表明spacy关注$SPACY_DATA_DIR环境变量,在尝试将模型下载到特定位置时,我也无法获得上述--data-pathmodel.path(--model.path?(参数。对我来说,这是一个问题,因为我试图将模型排除在Docker映像之外,这样它们就可以在不重建映像的情况下被持久化或轻松更新。

最终得出了以下使用预训练模型的解决方案:

  1. 正常运行下载代码(即python -m spacy.download en_core_web_lg(
  2. 在Python中:import spacy,然后是nlp = spacy.load('en_core_web_lg')
  3. 现在将其保存到您想要的位置:nlp.to_disk('path/to/dir')

您现在可以通过nlp=spacy.load('path/to/dir')从本地文件加载此文件。文档中有一个建议,您可以手动下载模型:

您可以将模型数据目录放置在本地文件系统的任何位置。要将其与spaCy一起使用,只需为数据目录创建一个快捷链接,即可为其指定一个名称。但我不明白这在实践中意味着什么(我已经向spaCy提交了一个"问题"(。

希望这能帮助其他试图做类似事情的人。

将上面提出的所有解决方案放在一起,为了控制spacy的下载位置,可以采用以下方法:

cache_dir=os.getenv("cache_dir", "../../models")
model_path="en_core_web_sm"
try:
nlp = spacy.load(os.path.join(cache_dir,model_path))
except OSError:
spacy.cli.download(model_path)
nlp = spacy.load(model_path)
nlp.to_disk(os.path.join(cache_dir,model_path))

这样,从第二次执行开始,模型将在请求的位置下可用

nlp = spacy.load(os.path.join(cache_dir,model_path))

最新更新