【发布时间】:2020-03-19 08:52:51
【问题描述】:
我正在尝试使用 spacy 。我需要下载英语、意大利语和西班牙语的语言模型。 我无法手动安装模型(因为我希望构建一段可移植的代码)所以我写了一个小函数,基本上是
import os
import spacy
lang='en'
try:
mod = lang+'_core_web_sm'
nlp = spacy.load(mod)
except:
print('model not present.. downloading and loading')
cmd = 'python -m spacy download '+ mod
os.system(cmd)
nlp = spacy.load(mod)
我在一个带有pip python3、windows 10 的 virtualenv 中。
模型下载没问题。这是 os.system(cmd) 的输出
收集 it_core_news_sm==2.2.5 来自 https://github.com/explosion/spacy-models/releases/download/it_core_news_sm-2.2.5/it_core_news_sm-2.2.5.tar.gz#egg=it_core_news_sm==2.2.5下载中 https://github.com/explosion/spacy-models/releases/download/it_core_news_sm-2.2.5/it_core_news_sm-2.2.5.tar.gz (14.5MB) 已满足要求:spacy>=2.2.2 in c:\users\marco.fumagalli\classifybusiness\lib\site-packages(来自 it_core_news_sm==2.2.5) (2.2.4) 已满足要求: srsly=1.0.2 英寸 c:\users\marco.fumagalli\classifybusiness\lib\site-packages(来自 spacy>=2.2.2->it_core_news_sm==2.2.5) (1.0.2) 已经有要求 满意:preshed=3.0.2 in c:\users\marco.fumagalli\classifybusiness\lib\site-packages(来自 spacy>=2.2.2->it_core_news_sm==2.2.5) (3.0.2) 已经有要求 满意:芥末=0.4.0 in c:\users\marco.fumagalli\classifybusiness\lib\site-packages(来自 spacy>=2.2.2->it_core_news_sm==2.2.5) (0.6.0) 已经有要求 满意:murmurhash=0.28.0 in c:\users\marco.fumagalli\classifybusiness\lib\site-packages(来自 spacy>=2.2.2->it_core_news_sm==2.2.5) (1.0.2) 已经有要求 满意:setuptools 在 c:\users\marco.fumagalli\classifybusiness\lib\site-packages\setuptools-40.8.0-py3.6.egg (来自spacy>=2.2.2->it_core_news_sm==2.2.5)(40.8.0)要求 已经满意:plac=0.9.6 in c:\users\marco.fumagalli\classifybusiness\lib\site-packages(来自 spacy>=2.2.2->it_core_news_sm==2.2.5) (1.1.3) 已经有要求 满意:目录=0.0.7 in c:\users\marco.fumagalli\classifybusiness\lib\site-packages(来自 spacy>=2.2.2->it_core_news_sm==2.2.5) (1.0.0) 已经有要求 满意:tqdm=4.38.0 in c:\users\marco.fumagalli\classifybusiness\lib\site-packages(来自 spacy>=2.2.2->it_core_news_sm==2.2.5) (4.43.0) 已经有要求 满意:cymem=2.0.2 in c:\users\marco.fumagalli\classifybusiness\lib\site-packages(来自 spacy>=2.2.2->it_core_news_sm==2.2.5) (2.0.3) 已经有要求 满意:thinc==7.4.0 in c:\users\marco.fumagalli\classifybusiness\lib\site-packages(来自 spacy>=2.2.2->it_core_news_sm==2.2.5) (7.4.0) 已经有要求 满意:blis=0.4.0 in c:\users\marco.fumagalli\classifybusiness\lib\site-packages(来自 spacy>=2.2.2->it_core_news_sm==2.2.5) (0.4.1) 已经有要求 满意:请求=2.13.0 in c:\users\marco.fumagalli\classifybusiness\lib\site-packages(来自 spacy>=2.2.2->it_core_news_sm==2.2.5) (2.23.0) 已经有要求 满意:numpy>=1.15.0 in c:\users\marco.fumagalli\classifybusiness\lib\site-packages(来自 spacy>=2.2.2->it_core_news_sm==2.2.5) (1.16.4) 已经有要求 满意:importlib-metadata>=0.20; python_version =0.0.7->spacy>=2.2.2->it_core_news_sm==2.2.5) (1.5.0) 已满足要求:urllib3!=1.25.0,!=1.25.1,=1.21.1 在 c:\users\marco.fumagalli\classifybusiness\lib\site-packages(来自 请求=2.13.0->spacy>=2.2.2->it_core_news_sm==2.2.5) (1.23) 已满足要求:chardet=3.0.2 in c:\users\marco.fumagalli\classifybusiness\lib\site-packages(来自 请求=2.13.0->spacy>=2.2.2->it_core_news_sm==2.2.5) (3.0.4) 已满足要求:certifi>=2017.4.17 in c:\users\marco.fumagalli\classifybusiness\lib\site-packages(来自 请求=2.13.0->spacy>=2.2.2->it_core_news_sm==2.2.5) (2019.11.28) 已满足要求:idna=2.5 in c:\users\marco.fumagalli\classifybusiness\lib\site-packages(来自 请求=2.13.0->spacy>=2.2.2->it_core_news_sm==2.2.5) (2.9) 已满足要求:zipp>=0.5 in c:\users\marco.fumagalli\classifybusiness\lib\site-packages(来自 导入库元数据>=0.20;蟒蛇版本 目录=0.0.7->spacy>=2.2.2->it_core_news_sm==2.2.5) (3.1.0) 安装收集的包:it-core-news-sm Running 为 it-core-news-sm 安装 setup.py:开始 为 it-core-news-sm 运行 setup.py install: finished with status 'done' 成功安装 it-core-news-sm-2.2.5 ✔ 下载并 安装成功您现在可以通过以下方式加载模型 spacy.load('it_core_news_sm')
但是当spacy.load(mod)被执行时:
OSError:[E050] 找不到模型“en_core_web_sm”。好像没有 是快捷链接、Python 包或数据的有效路径 目录。
很奇怪,因为如果我这样做了
import en_core_web_sm
en_core_web_sm.load()
它有效。
我该如何解决?
谢谢
【问题讨论】: