【问题标题】:Not able to load English language module of spacy with spacy.load('en')无法使用 spacy.load('en') 加载 spacy 的英语语言模块
【发布时间】:2019-05-23 12:14:04
【问题描述】:

我无法使用以下代码在 jupyter notebook 中加载英文模型-

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

错误信息:

OSError Traceback(最近调用 最后)在() ----> 1 spacy.load('en')

C:\ProgramData\Anaconda3\lib\site-packages\spacy_init_.py 在 负载(名称,**覆盖) 19 如果 depr_path 不在(真、假、无): 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(名称,**覆盖) 117 elif hasattr(name, 'exists'): # Path or Path-like to model data 118 return load_model_from_path(名称,**覆盖) --> 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强>

我已经下载了 spacy 包

!pip install spacy

和英文包用

python -m spacy download en

在 anaconda 提示符下

【问题讨论】:

  • 那么,您实际使用的是众多 Python 版本中的哪一个?你能减少你的问题吗,例如到一个可以从命令行启动的简单脚本?

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


【解决方案1】:

只用这个;

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

nlp = spacy.load("fr_core_news_sm")

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      pip install spacy python -m spacy download en

      【讨论】:

        【解决方案4】:

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

        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 notebook 中执行以下代码块。

        import spacy

        nlp = spacy.load('en_core_web_sm')

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

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

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

            1. 转到 python 的站点包。

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

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

            【讨论】:

              【解决方案7】:

              我安装了 Spyder 和 anconda,它们允许我运行 spacy,但只能在 Spyder 中运行。试试看你是否可以从那里跑。

              更新

              尝试使用以下代替

              pip install -U spacy
              python -m spacy download en
              

              在你的代码中使用这个:

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

              【讨论】:

                【解决方案8】:

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

                python -m spacy download en
                

                查看here,有错误的简要说明。

                【讨论】:

                • 感谢您的输入,我已尝试但给出以下错误 - 已满足要求:en_core_web_sm==2.0.0 from github.com/explosion/spacy-models/releases/download/… in c:\programdata\anaconda3\lib\site-packages (2.0. 0) 链接成功 C:\ProgramData\Anaconda3\lib\site-packages\en_core_web_sm --> C:\ProgramData\Anaconda3\lib\site-packages\spacy\data\en 现在可以通过 spacy.load( 'zh') 您没有足够的权限来执行此操作。
                • 嗯,很有意思,也许你下载了但没有链接。当您下载语言时,您是否遇到过这种错误? You do not have sufficient privilege to perform this operation.
                • 不,我没有遇到任何错误。在使用 spacy.load('en') 时,我遇到了错误“您没有足够的权限来执行此操作。”
                • 它显示了无效的语法文件“”,第 1 行 python -m spacy 下载 en ^ SyntaxError: invalid syntax
                • 你是在笔记本上运行的吗?如果您在笔记本中运行命令,则需要将 ! 字符添加到命令头,例如:!python -m spacy download en
                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2019-01-02
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多