无法使用 spacy.load('en') 加载 spacy 的英语模块



我无法在jupyter笔记本中加载英文模型,代码如下-

!pip install spacy
import spacy
spacy.load('en')

错误消息:

OSError Traceback(最近的调用最后)在()---->1空间负载(‘en’)

C: \ProgramData\Anaconda3\lib\site-packages\spacy_init_.py加载(名称,**覆盖)19如果depr_path不在(True、False、None)中:20 deposition_warning(Warnings.W001.format(路径=depr_path))--->21返回util.load_model(名称,**覆盖)2223

C: 中的\ProgramData\Anaconda3\lib\site packages\spacy\util.pyload_model(名称,**覆盖)117 elif hasattr(name,'exist'):#类似于模型数据的路径118返回load_model_from_path(名称,**覆盖)-->119引发IOError(Errors.E050.format(name=name))120121

O错误:[E050]找不到模型'en'。这似乎不是快捷链接、Python包或数据目录的有效路径。

我安装了python版本2.7.153.6.7Anaconda3 5.3.1

我已经下载了带有的spacy软件包

!pip install spacy

和带的英文包

python -m spacy download en

在anaconda提示中

编辑:根据您的评论,您似乎下载了模型,但无法链接。您没有权限执行此操作,请检查此处并将权限授予当前用户。之后下载相同脚本的模型:

python -m spacy download en

请查看此处,这里有对错误的简要描述。

我安装了Spyder和anoconda,这使我可以运行spacy,但只能在Spyder中运行。试试看你能不能从那里跑出来。

更新

尝试使用以下

pip install -U spacy
python -m spacy download en

在你的代码中使用这个:

import spacy
nlp = spacy.load('en')

我遇到了同样的问题。我用的是带窗户的蟒蛇。我通过以下步骤解决了这个问题
以管理员身份运行anaconda提示符或命令提示符,然后运行以下命令。

pip install spacy python -m spacy download en

如果您使用的是windows,可能是您下载了spacy模型,但符号链接失败了。不用担心,您可以手动复制粘贴文件夹以检测它。

  1. 转到您的python的站点包。

  2. 请参阅您下载的软件包,在我的案例中,它是en_core_web_sm

  3. 复制并重命名为/站点包/spacy/data/en-

在安装任何软件包之前以管理员身份运行anaconda提示符可以解决所有问题。通过这种方式,我不必使用pip3或conda双重安装模块。

打开命令提示符或终端并执行以下代码:

pip3 install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.2.0/en_core_web_sm-2.2.0.tar.gz

在你的Jupiter笔记本中执行下面的大块。

import spacy

nlp = spacy.load('en_core_web_sm')

希望以上代码适用于所有人:)

我正在构建一个使用spacy的脚本,但当我将其部署在每次提供的dataproc集群上时,默认情况下不会下载spacy模型。所以我所做的是尝试导入模型,如果没有下载,请下载&加载。

def load_spacy_model(model_name):
excluded_steps = ["tagger", "parser", "ner", "entitiy_linker", 
"entity_ruler", "textcat", "morphologizer",
"attribute_ruler", "senter", "sentencizer", 
"token2vec", "transformer"]
try:
spacy_model = spacy.load(model_name, exclude=excluded_steps)
except OSError:
spacy.cli.download(model_name)
spacy_model = spacy.load(model_name, exclude=excluded_steps)
return spacy_model

仅使用此;

导入spacy

nlp=spacy.load("en_core_web_sm")

此处"en_core_web_sm"中的"en"表示";英语">

对于Windows Python安装,您不需要使用此;

nlp=spacy.load('en')#只需删除或注释即可。

如果您转到SpaCy文档页面;https://spacy.io/usage/models

当您将"语言"下拉列表选择更改为其他语言时,的语法;"nlp=空间负载('en_core_web_sm')";将根据您的选择自动更改。例如,对于Franch Language(导入spacy后),语法将为;

nlp=spacy.load("fr_core_news_sm")

最新更新