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

时间:2018-12-24 09:37:00

标签: python python-3.x python-2.7 jupyter-notebook spacy

我无法使用以下代码在jupyter笔记本中加载英语模型-

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

错误消息:

  

OSError跟踪(最近的呼叫   最后)在()   ----> 1 spacy.load('en')

     

C:\ ProgramData \ Anaconda3 \ lib \ site-packages \ spacy__init __。py在   负载(名称,**覆盖)        19如果depr_path不在(True,False,None)中:        20 deprecation_warning(Warnings.W001.format(path = depr_path))   ---> 21返回util.load_model(name,** overrides)        22        23

     

C:\ ProgramData \ Anaconda3 \ lib \ site-packages \ spacy \ util.py在   load_model(name,** overrides)       117 elif hasattr(name,'e​​xists'):#路径或类似路径的模型数据       118 return load_model_from_path(name,** overrides)   -> 119提高IOError(Errors.E050.format(name = name))       120       121

     

OSError:[E050]找不到型号'en'。这似乎不是一个   快捷方式链接,Python包或数据目录的有效路径。

我已经安装了python版本2.7.15、3.6.7、3.7.1和Anaconda3 5.3.1

我已经在anaconda提示符下下载了带有(!pip install spacy)的spacy软件包和带有(python -m spacy download zh)的英语软件包

8 个答案:

答案 0 :(得分:3)

我安装了Spyder和anoconda,这使我可以运行spacy,但只能在Spyder中运行。尝试看一下是否可以从那里运行。

更新

尝试使用以下内容代替

pip install -U spacy
python -m spacy download en

在您的代码中使用它:

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

答案 1 :(得分:2)

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

python -m spacy download en

检查here,有错误的简短说明。

答案 2 :(得分:2)

我有同样的问题。我正在Windows下使用Anaconda。我按照以下步骤解决了这个问题。
以管理员身份运行anaconda提示符或命令提示符,然后运行以下命令。

pip install spacy python -m spacy download en

答案 3 :(得分:0)

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

  1. 转到python的站点软件包。

  2. 查看下载的软件包,对于我来说是 en_core_web_sm

  3. 将其复制并重命名为../ site-packages / spacy / data / en

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

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')

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

答案 6 :(得分:0)

我正在构建一个使用 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

答案 7 :(得分:0)

只使用这个;

导入空间

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 = spacy.load('en_core_web_sm')" 将根据您的选择自动更改。 例如,对于法语语言(导入 spacy 之后),语法将是;

nlp = spacy.load("fr_core_news_sm")