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

新手上路,请多包涵

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 notebook 并运行命令 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>

原文由 user2543622 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

你误解的答案是一个 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 知道您为 python 发行版安装了一个名为 en 的包,但对包 en_core_web_sm 。这个包只是替换包 en 当你导入它时,这意味着包 en 只是一个软链接 en_core_web_sm

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

希望现在清楚了:)

原文由 gdaras 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

 python -m spacy download en_core_web_lg
python -m spacy download en_core_web_sm

但是,我一直收到链接错误,最后运行下面的命令帮助我建立链接并解决了错误。

 python -m spacy download en

如果使用 Jupyter,还要确保重新启动运行时。 -PS:如果您遇到链接错误,请尝试给予管理员权限。

原文由 Tarun Reddy 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题