Spacy在Windows 10和Python 3.5.3 :: Anaconda custom (64-bit)上找不到'en_core_web_sm'模型。

137
什么是spacy.load('en_core_web_sm')spacy.load('en')之间的区别? 这个链接解释了不同的模型大小。但我仍然不清楚spacy.load('en_core_web_sm')spacy.load('en')有什么区别。 spacy.load('en')对我来说运行良好。但spacy.load('en_core_web_sm')会抛出错误。
我已经按照以下方式安装了spacy。当我进入jupyter笔记本并运行命令nlp=spacy.load('en_core_web_sm')时,我收到以下错误消息。
---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
<ipython-input-4-b472bef03043> in <module>()
      1 # Import spaCy and load the language library
      2 import spacy
----> 3 nlp = spacy.load('en_core_web_sm')
      4 
      5 # Create a Doc object

C:\Users\nikhizzz\AppData\Local\conda\conda\envs\tensorflowspyder\lib\site-packages\spacy\__init__.py in load(name, **overrides)
     13     if depr_path not in (True, False, None):
     14         deprecation_warning(Warnings.W001.format(path=depr_path))
---> 15     return util.load_model(name, **overrides)
     16 
     17 

C:\Users\nikhizzz\AppData\Local\conda\conda\envs\tensorflowspyder\lib\site-packages\spacy\util.py in load_model(name, **overrides)
    117     elif hasattr(name, 'exists'):  # Path or Path-like to model data
    118         return load_model_from_path(name, **overrides)
--> 119     raise IOError(Errors.E050.format(name=name))
    120 
    121 

OSError: [E050] Can't find model 'en_core_web_sm'. It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory.

我如何安装Spacy ---

(C:\Users\nikhizzz\AppData\Local\conda\conda\envs\tensorflowspyder) C:\Users\nikhizzz>conda install -c conda-forge spacy
Fetching package metadata .............
Solving package specifications: .

Package plan for installation in environment C:\Users\nikhizzz\AppData\Local\conda\conda\envs\tensorflowspyder:

The following NEW packages will be INSTALLED:

    blas:           1.0-mkl
    cymem:          1.31.2-py35h6538335_0    conda-forge
    dill:           0.2.8.2-py35_0           conda-forge
    msgpack-numpy:  0.4.4.2-py_0             conda-forge
    murmurhash:     0.28.0-py35h6538335_1000 conda-forge
    plac:           0.9.6-py_1               conda-forge
    preshed:        1.0.0-py35h6538335_0     conda-forge
    pyreadline:     2.1-py35_1000            conda-forge
    regex:          2017.11.09-py35_0        conda-forge
    spacy:          2.0.12-py35h830ac7b_0    conda-forge
    termcolor:      1.1.0-py_2               conda-forge
    thinc:          6.10.3-py35h830ac7b_2    conda-forge
    tqdm:           4.29.1-py_0              conda-forge
    ujson:          1.35-py35hfa6e2cd_1001   conda-forge

The following packages will be UPDATED:

    msgpack-python: 0.4.8-py35_0                         --> 0.5.6-py35he980bc4_3 conda-forge

The following packages will be DOWNGRADED:

    freetype:       2.7-vc14_2               conda-forge --> 2.5.5-vc14_2

Proceed ([y]/n)? y

blas-1.0-mkl.t 100% |###############################| Time: 0:00:00   0.00  B/s
cymem-1.31.2-p 100% |###############################| Time: 0:00:00   1.65 MB/s
msgpack-python 100% |###############################| Time: 0:00:00   5.37 MB/s
murmurhash-0.2 100% |###############################| Time: 0:00:00   1.49 MB/s
plac-0.9.6-py_ 100% |###############################| Time: 0:00:00   0.00  B/s
pyreadline-2.1 100% |###############################| Time: 0:00:00   4.62 MB/s
regex-2017.11. 100% |###############################| Time: 0:00:00   3.31 MB/s
termcolor-1.1. 100% |###############################| Time: 0:00:00 187.81 kB/s
tqdm-4.29.1-py 100% |###############################| Time: 0:00:00   2.51 MB/s
ujson-1.35-py3 100% |###############################| Time: 0:00:00   1.66 MB/s
dill-0.2.8.2-p 100% |###############################| Time: 0:00:00   4.34 MB/s
msgpack-numpy- 100% |###############################| Time: 0:00:00   0.00  B/s
preshed-1.0.0- 100% |###############################| Time: 0:00:00   0.00  B/s
thinc-6.10.3-p 100% |###############################| Time: 0:00:00   5.49 MB/s
spacy-2.0.12-p 100% |###############################| Time: 0:00:10   7.42 MB/s

(C:\Users\nikhizzz\AppData\Local\conda\conda\envs\tensorflowspyder) C:\Users\nikhizzz>python -V
Python 3.5.3 :: Anaconda custom (64-bit)

(C:\Users\nikhizzz\AppData\Local\conda\conda\envs\tensorflowspyder) C:\Users\nikhizzz>python -m spacy download en
Collecting en_core_web_sm==2.0.0 from https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.0.0/en_core_web_sm-2.0.0.tar.gz#egg=en_core_web_sm==2.0.0
  Downloading https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.0.0/en_core_web_sm-2.0.0.tar.gz (37.4MB)
    100% |################################| 37.4MB ...
Installing collected packages: en-core-web-sm
  Running setup.py install for en-core-web-sm ... done
Successfully installed en-core-web-sm-2.0.0

    Linking successful
    C:\Users\nikhizzz\AppData\Local\conda\conda\envs\tensorflowspyder\lib\site-packages\en_core_web_sm
    -->
    C:\Users\nikhizzz\AppData\Local\conda\conda\envs\tensorflowspyder\lib\site-packages\spacy\data\en

    You can now load the model via spacy.load('en')


(C:\Users\nikhizzz\AppData\Local\conda\conda\envs\tensorflowspyder) C:\Users\nikhizzz>

7
我有几个可能的想法,可以解决这个问题。首先,尝试重新下载模型:python -m spacy download en_core_web_sm - Qusai Alothman
2
顺便提一下,'en' 的默认值是 'en_core_web_sm',因此它们实际上是相同的。请参见这个链接 - Qusai Alothman
3
只需执行 python -m spacy download en_core_web_sm 命令即可。 - Prasanth Rajendran
34个回答

1
我在MacOS上运行PyCharm,虽然以上答案都没有完全适用于我,但他们提供了足够的线索,最终我能够使一切正常。我正在连接一个ec2实例,并已配置PyCharm,以便我可以在我的Mac上进行编辑,并自动更新我的ec2实例上的文件。因此,问题出在ec2方面,尽管我已经多次安装Spacy,但它仍然找不到。如果我从命令行运行python脚本,一切都很好。但是,在PyCharm中,一开始无法找到Spacy和模型。最终,我使用添加“requirements.txt”文件的建议解决了“finding” Spacy问题。但是,模型仍然无法识别。 我的解决方案:手动下载模型并将其放置在ec2实例上的文件系统中,并在加载时明确指向它们。我从这里下载了文件:

https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.0.0/en_core_web_sm-3.0.0.tar.gz

https://github.com/explosion/spacy-models/releases/download/en_core_web_lg-3.0.0/en_core_web_lg-3.0.0.tar.gz

下载后,我将它们移动到我的ec2实例中,在文件系统中对它们进行了解压和解包,例如:/path_to_models/en_core_web_lg-3.0.0/

然后,我使用显式路径加载模型,并且在PyCharm中可以正常工作(请注意使用的路径一直到en_core_web_lg-3.0.0;如果您不使用带有config.cfg文件的文件夹,则会出现错误):

nlpObject = spacy.load('/path_to_models/en_core_web_lg-3.0.0/en_core_web_lg/en_core_web_lg-3.0.0')

太棒了,这正是我在寻找的。你有找到一种方法来使用cURL下载tar文件吗?我认为GitHub会进行某种重定向以防止人们将其用作文件存储。 - dcsan

1

检查已安装的spacy版本

pip show spacy

你将得到如下结果:

名称: spacy 版本: 3.1.3 概述: Python中的工业级自然语言处理(NLP)

使用以下命令安装相关模型的版本: !pip install -U https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.0.0/en_core_web_sm-3.0.0.tar.gz


0

我遇到了类似的问题。我从特定的conda环境中安装了spacy和en_core_web_sm,但是出现了两个不同的问题如下:

[Errno 2] No such file or directory: '....\en_core_web_sm\en_core_web_sm-2.3.1\vocab\lexemes.bin' 或者 OSError: [E050] Can't find model 'en_core_web_sm'.... It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory.

我做了以下操作:

  1. 以管理员身份打开命令提示符
  2. 进入C:>
  3. 激活我的Conda环境(如果您在特定的conda环境中工作):
c:\>activate <conda environment name>
  1. (conda环境名称)c:\>python -m spacy download en
  2. 返回Jupyter Notebook,您可以加载语言库:
nlp = en_core_web_sm.load()

对我来说,它有效 :)


0
这是我所做的:
  1. 进入我正在使用Anaconda Prompt /命令行的虚拟环境

  2. 运行以下命令:python -m spacy download en_core_web_sm

然后就完成了


0

我尝试了以上所有答案,但都没有成功。以下是对我有效的解决方法:

(仅适用于WINDOWS系统)

  1. 以管理员权限运行anaconda命令提示符(重要)
  2. 然后运行以下命令:
  pip install -U --user spacy    
  python -m spacy download en

请尝试以下命令进行验证:
  1. Try below command for verification:
import spacy
spacy.load('en')
  • 它也可能适用于其他版本: 输入图像描述

  • 0

    如果您已经下载了spacy和语言模型(例如en_core_web_smen_core_web_md),那么您可以按照以下步骤操作:

    1. 以管理员身份打开Anaconda提示符

    2. 然后输入:python -m spacy link [包名称或路径] [快捷方式]

      例如:python -m spacy link /Users/you/model en

    这将创建一个符号链接到您的语言模型。现在,您可以在笔记本或脚本中使用spacy.load("en")加载模型。


    0
    尝试这个:-
    !python -m spacy download en_core_web_md

    0

    下载 en_core_web_sm 压缩文件

    从 Anaconda 中打开终端或者打开 Anaconda 环境。 运行以下命令:

    pip3 install /Users/yourpath/Downloads/en_core_web_sm-3.1.0.tar.gz;
    

    或者

    pip install /Users/yourpath/Downloads/en_core_web_sm-3.1.0.tar.gz;
    

    重新启动Jupyter,它就会正常工作。


    0

    在操作系统控制台中运行此命令:

    python -m spacy download en
    python -m spacy link en_core_web_sm en_core_web_sm
    

    然后在Python控制台或Python IDE中运行以下代码:

    import spacy
    spacy.load('en_core_web_sm')
    

    0

    我也遇到了类似的问题。这是我如何解决的:

    1. 以管理员模式启动Anaconda提示符。
    2. 安装以下两个包: python -m spacy download en 和 python -m spacy download en_core_web_sm 完成上述步骤后,我才开始使用Jupyter笔记本,在其中访问此软件包。 现在我可以访问两个包: import spacy nlp = spacy.load('en_core_web_sm') 或者 nlp = spacy.load('en') 两者都对我有效。

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接