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个回答

5
import spacy

nlp = spacy.load('/opt/anaconda3/envs/NLPENV/lib/python3.7/site-packages/en_core_web_sm/en_core_web_sm-2.3.1')

尝试使用图片中显示的包含版本号的绝对路径,这样可以正常工作。

它完美地运行。


4

首先,在jupyter notebook中使用以下命令安装spacy:

pip install -U spacy

然后编写以下代码:

import en_core_web_sm
nlp = en_core_web_sm.load()

3
打开Anaconda Navigator。点击任何一个集成开发环境(IDE)。运行代码:
!pip install -U spacy download en_core_web_sm
!pip install -U spacy download en_core_web_sm

这将有效。如果您直接打开IDE,请关闭它并按照以下步骤操作一次。


3

关于基于Windows的Anaconda:

  1. 打开Anaconda提示符

  2. 激活您的环境,例如:激活myspacyenv

  3. pip 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

  4. python -m spacy download en_core_web_sm

  5. 打开Jupyter Notebook,例如:激活myspacyenv,然后在Anaconda Prompt上运行jupyter notebook

import spacy spacy.load('en_core_web_sm')

它将顺利运行!


请注意,第二步是conda activate myspacyenv。 - Yev Guyduy

2

我也曾遇到同样的问题,无法使用'''spacy.load()'''加载模块。

以下是在Windows上解决此问题的步骤:

  1. 使用!python -m spacy download en_core_web_sm下载
  2. 导入en_core_web_sm,使用import en_core_web_sm
  3. 将其加载到某个变量中:使用en_core_web_sm.load()

完整代码如下:

python -m spacy download en_core_web_sm

import en_core_web_sm

nlp = en_core_web_sm.load()

2

与上述任何一种方法不同,这解决了我的错误。

conda install -c conda-forge spacy-model-en_core_web_sm

如果您是Anaconda用户,则这是解决方案。


2

这在colab上可以运行:

!python -m spacy download en
import en_core_web_sm
nlp = en_core_web_sm.load()

或者对于中等大小的公司:
import en_core_web_md
nlp = en_core_web_md.load()

2

使用不同语法加载模块对我很有效。

import en_core_web_sm
nlp = en_core_web_sm.load()

2

Anaconda用户

  1. 如果您使用的是conda虚拟环境,请确保它与基础环境中的Python版本相同。要验证这一点,请在每个环境中运行 python --version 命令。如果版本不一致,则需要创建一个新的虚拟环境并指定该版本的Python(例如 conda create --name myenv python=x.x.x)。

  2. 激活虚拟环境(conda activate myenv

  3. conda install -c conda-forge spacy
  4. python -m spacy download en_core_web_sm

我之前也遇到过这个问题,上面的方法对我起了作用。这可解决下载发生在当前虚拟环境无法访问的区域的问题。

然后您应该可以运行以下命令:

import spacy
nlp = spacy.load("en_core_web_sm")

2
打开命令提示符或终端并执行以下代码:
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')

希望以上代码对所有人都有效 :)


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