spacy 导入错误:"No module named en"

Import error with spacy: "No module named en"

我在使用 Python spaCy library 时遇到问题。它似乎安装正确但在

from spacy.en import English

我收到以下导入错误:

Traceback (most recent call last):
  File "spacy.py", line 1, in <module>
    from spacy.en import English
  File "/home/user/CmdData/spacy.py", line 1, in <module>
    from spacy.en import English
ImportError: No module named en

我不是很熟悉Python但是这是我在网上看到的标准导入,并且安装了库:

$ pip list | grep spacy
spacy (0.99)

编辑 我测试了重命名文件,但这不是问题所在。我在做的时候也遇到了同样的错误:

$ python -m spacy.en.download --force all
/usr/bin/python: No module named en

(该命令是为了下载部分机型)

您遇到此错误是因为您将自己的文件命名为 spacy.py。重命名文件,一切正常。

可能 /usr/bin/python 的 Python 版本不是安装 spacy 的版本。如果是这样,请导航到 'normal' 版本的 Python 位于 运行

之前的目录
python -m spacy.en.download

应该可以解决问题。 (例如,我使用 Anaconda 安装了 spacy,并且必须先导航到 C:\Anaconda2\。)

对于windows,使用管理员权限打开cmd。然后,

python -m spacy download en 

您应该看到 shell 提示说明。

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

加载模型

我遇到了同样的问题,问题出在存储模块 'en' 的文件夹 (spacy/lang/en)。

正在输入:

从spacy.lang.en导入英语

已解决问题。

对解决这个问题很有帮助。

SpaCy 有多种模型,具体取决于您选择的语言(甚至包含多语言模型),因此您可以查看 this link 以更好地了解哪些可能适合您的需求。

您也可以在这里找到正确的安装命令。例如,对于英语语言的小版本模型:

python -m spacy download en_core_web_sm

希望对您有所帮助!

这有效!

import spacy
import en_core_web_sm
nlp = en_core_web_sm.load()