我正在尝试从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终端中“升级”我的特权,以便能够下载模型?
答案 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
我试图通过在虚拟环境(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
完成,它将安装软件包。您需要确定的是解释器的路径,如果它是常见的,甚至更好的是从项目中获取路径。