PyCharm找不到Spacy模型'en'

时间:2018-10-06 09:30:58

标签: python python-2.7 nlp spacy

我正在尝试从PyCharm中的SpaCy加载NLP模型'en',并且我正在使用Python 2.7。
我加载“ en”模型的代码是 nlp = spacy.load('en', disable=['parser', 'ner'])
但是,我收到以下错误
IOError: [E050] Can't find model 'en'. It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory.
然后我意识到我没有下载模型,因此我使用了PyCharm提供的终端来下载模型,我使用了python -m spacy download en

这是以下输出:

  

已满足要求:https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.0.0/en_core_web_sm-2.0.0中的en_core_web_sm == 2.0.0。   tar.gz#egg = en_core_web_sm == 2.0.0在c:\ python27 \ lib \ site-packages中
  您正在使用pip版本9.0.1,但是可以使用版本18.0。
  您应该考虑通过“ python -m pip install --upgrade pip”命令进行升级。
  您没有足够的权限执行此操作。

     

链接成功       C:\ Python27 \ lib \ site-packages \ en_core_web_sm->       C:\ Python27 \ lib \ site-packages \ spacy \ data \ zh_CN

     

您现在可以通过spacy.load('en')

加载模型

所以我很困惑...我想我无法下载'en'模型,因为我没有足够的权限,但是链接成功了吗?
看到此消息后,我尝试再次运行我的Python文件(因为终端指出链接成功),但最初的错误再次弹出。

是否有人曾经遇到过此问题,或者知道如何解决此错误?如何在PyCharm终端中“升级”我的特权,以便能够下载模型?

6 个答案:

答案 0 :(得分:4)

我不知道它是否仍然有用,但我也遇到了。该模块在Jupyter Notebook上加载得很好,但在我的PyCharm中却加载不了。要解决该问题,请转到PyCharm中项目的解释器(使用ctrl + alt + s)。查看正在使用的解释器的完整路径。然后以这种方式在终端上使用它:

xx-xx-xx-xx

现在应该可以通过您的PyCharm工作了。

答案 1 :(得分:2)

实际上,这就是您下载新的spacy模型时发生的情况,如Spacy所示:

  

download命令将通过pip安装模型,将软件包放置在 site-packages 目录中,并创建一个快捷链接,该链接可让您通过自定义名称加载模型。快捷方式链接将与spacy下载中使用的型号名称相同。

似乎您正在系统级进行安装,因此请尝试以“以管理员身份运行”运行它,也可以尝试使用 virtualenv 选项。忽略成功链接消息,因为它只是快捷方式。

您也可以参考this以获得详细的故障排除指南。

答案 2 :(得分:1)

Spacy解释了几种下载模型的方法: https://spacy.io/usage/models#download

使用python -m

# Download best-matching version of specific model for your spaCy installation
python -m spacy download en_core_web_sm

# Out-of-the-box: download best-matching default model and create shortcut link
python -m spacy download en

# Download exact model version (doesn't create shortcut link)
python -m spacy download en_core_web_sm-2.2.0 --direct

使用pip

# With external URL
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

# With local file
pip install /Users/you/en_core_web_sm-2.2.0.tar.gz

使用手动下载

https://spacy.io/usage/models#download-manual

现在如何使用PyCharm下载它?

我试图通过在虚拟环境(venv)中安装URL包 Project Interpreter 来做到这一点:

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

但是Pycharm无法直接安装tar。


解决方案:  最后,我只是在requirements.txt中添加tar的github URL,然后PyCharm将为您安装它。

requirements.txt 中添加以下内容

# spacy
spacy
# spacy model
https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.2.5/en_core_web_sm-2.2.5.tar.gz

您可以在github发布页面上的所有模型上使用它:https://github.com/explosion/spacy-models/releases/

答案 3 :(得分:0)

转到您的virtualenv,然后通过以下方式激活venv:

source venv/bin/activate

然后在激活时键入: python -m spacy download en_core_web_sm

然后通过以下方式停用virtualenv: deactivate

答案 4 :(得分:0)

如果您使用模型的直接链接,请确保使用以下链接链接下载的模型文件

python -m spacy link [package name or path] [shortcut] [--force]

通常,模型文件是在your-python-environment/lib/site-packages/下下载的。 下载tar并解压缩模型文件后,应该会看到一个名为en的文件夹。 有关更多信息,请参见this链接

答案 5 :(得分:0)

您可以为Python设置系统变量或打开CMD

C:\ CD ...转到安装了python.exe或python解释器的目录

C:\解释器的路径> python -m spacy下载en_core_web_sm

完成,它将安装软件包。您需要确定的是解释器的路径,如果它是常见的,甚至更好的是从项目中获取路径。