spacy在Windows 10和Python 3.5.3上找不到模型'en_core_web_sm':: Anaconda自定义(64位)

use*_*622 13 python-3.x spacy

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.
Run Code Online (Sandbox Code Playgroud)

我如何安装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>
Run Code Online (Sandbox Code Playgroud)

Dip*_*ick 35

以下对我有用:

import en_core_web_sm

nlp = en_core_web_sm.load()
Run Code Online (Sandbox Code Playgroud)


小智 15

尝试这个方法,因为这对我来说很有吸引力:

在 Anaconda 提示符中,运行命令:

!python -m spacy download en
Run Code Online (Sandbox Code Playgroud)

运行上述命令后,您应该能够在 jupyter 笔记本中执行以下命令:

spacy.load('en_core_web_sm')
Run Code Online (Sandbox Code Playgroud)


gda*_*ras 14

您的误解的答案是Unix概念,即我们可以说Windows中的软链接类似于快捷方式。让我们解释一下。

当您使用时spacy download en,spaCy会尝试找到与您的spaCy分布相匹配的最佳小型模型。我正在谈论的小型模型默认值en_core_web_sm可以在对应于不同spaCy版本的不同版本中找到(例如spacyspacy-nightly具有en_core_web_sm不同的大小)。

当spaCy找到适合您的最佳型号时,它将下载它,然后将名称链接en到它下载的软件包,例如en_core_web_sm。这基本上意味着,无论您指的是什么,en您都将在指en_core_web_sm。换句话说,en链接不是“真正的”包之后,仅仅是的名称en_core_web_sm

但是,它反之亦然。您不能直接引用,en_core_web_sm因为您的系统不知道您已安装它。当您完成操作时spacy download en,基本上完成了pip安装。所以pip知道您已经en为python发行版安装了名为的软件包,但对该软件包一无所知en_core_web_sm。该软件包只是en在您导入时替换软件包,这意味着该软件包en只是与的软链接en_core_web_sm

当然,您可以en_core_web_sm使用命令直接下载:python -m spacy download en_core_web_sm,甚至还可以将名称链接en到其他模型。例如,您可以执行python -m spacy download en_core_web_lg然后然后python -m spacy link en_core_web_lg en。这将为 en命名en_core_web_lg,这是英语的大型SpaCy模型。

希望现在清楚了:)

  • 是的,它有效!我在 MacBook pro 上使用 Spacy。我需要的是模块 en_core_web_lg (3认同)

小智 13

对于那些即使从 Anaconda 提示以管理员身份安装后仍然面临问题的人,这里有一个快速修复:

1)到了下载的路径。例如

C:\Users\name\AppData\Local\Continuum\anaconda3\Lib\site-packages\en_core_web_sm\en_core_web_sm-2.2.0

2)复制路径。

3)粘贴到:nlp = spacy.load(r'C:\Users\name\AppData\Local\Continuum\anaconda3\Lib\site-packages\en_core_web_sm\en_core_web_sm-2.2.0')

4)像魅力一样工作:)

PS:检查spacy版本


小智 12

不要!python -m spacy download en_core_web_lg从 jupyter 内部运行。改为这样做:

import spacy.cli
spacy.cli.download("en_core_web_lg")
Run Code Online (Sandbox Code Playgroud)

在运行上述两个命令之前,您可能需要重新启动内核才能使其工作。


小智 10

在 Colab 中使用 Spacy 语言模型只需要以下两个步骤:

  1. 下载模型(根据模型大小改名)
!python -m spacy download en_core_web_lg 
Run Code Online (Sandbox Code Playgroud)
  1. 重新启动 colab 运行时! 执行快捷键?Ctrl + M + 。

测试

import spacy
nlp = spacy.load("en_core_web_lg")
Run Code Online (Sandbox Code Playgroud)

成功的!!!


小智 7

最初,我在anaconda提示符下使用以下语句下载了两个en软件包。

python -m spacy download en_core_web_lg
python -m spacy download en_core_web_sm
Run Code Online (Sandbox Code Playgroud)

但是,我一直遇到连接错误,最后在命令下运行有助于我建立链接并解决了错误。

python -m spacy download en
Run Code Online (Sandbox Code Playgroud)

  • 这对我也有用。在我的 MacBook 终端上,我运行了“python -m spacy download en_core_web_lg”和“python -m spacy download en_core_web_sm”,但仍然收到“OSError: [E050] Can't find model 'en'”。它似乎不是快捷方式链接、Python 包或数据目录的有效路径。输入 `spacy.load('en')` 和 `spacy.load('en_core_web_lg')` 时出现 Python 错误。在终端中运行“python -m spacy download en”,然后在 Python 中运行“spacy.load('en')”,我能够加载模型。 (5认同)

Tim*_*ayi 6

根据spacy不同版本加载模块的步骤

下载适合您的 spaCy 安装的特定型号的最佳匹配版本

python -m spacy download en_core_web_sm
pip install .tar.gz archive from path or URL
pip install /Users/you/en_core_web_sm-2.2.0.tar.gz
Run Code Online (Sandbox Code Playgroud)

或者

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
Run Code Online (Sandbox Code Playgroud)

添加到您的需求文件或环境 yaml 文件。有一系列版本可以与一个 spacy 版本兼容,您可以在https://github.com/explosion/spacy-models/releases下查看更多信息

如果您不确定运行下面的代码

nlp = spacy.load('en_core_web_sm') 
Run Code Online (Sandbox Code Playgroud)

将发出警告,告知哪个版本型号将与您安装的 spacy 版本兼容

环境.yml 示例

name: root
channels:
  - defaults
  - conda-forge
  - anaconda
dependencies:
  - python=3.8.3
  - pip
  - spacy=2.3.2
  - scikit-learn=0.23.2
  - pip:
    - https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.3.1/en_core_web_sm-2.3.1.tar.gz#egg=en_core_web_sm
Run Code Online (Sandbox Code Playgroud)


小智 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')
Run Code Online (Sandbox Code Playgroud)

尝试提供包含版本的包的绝对路径,如图所示。

它工作得很好。


小智 5

首先,使用以下命令为 jupyter notebook 安装 spacy pip install -U spacy

然后编写如下代码:

import en_core_web_sm
nlp = en_core_web_sm.load()
Run Code Online (Sandbox Code Playgroud)


小智 5

我在 Windows 上运行Jupyter笔记本。

最后是版本问题,需要在conda cmd提示符下执行以下命令(以管理员身份打开)

  • pip 安装 spacy==2.3.5

  • python -m spacy 下载 en_core_web_sm

  • python -m spacy 下载 en

from chatterbot import ChatBot
import spacy
import en_core_web_sm
nlp = en_core_web_sm.load()
ChatBot("hello")
Run Code Online (Sandbox Code Playgroud)

输出 - 在此输入图像描述


小智 5

我在 spacy.io 上看到了一个简单的解决方案

from spacy.lang.en import English
nlp=English()
Run Code Online (Sandbox Code Playgroud)

https://course.spacy.io/en/chapter1