gpt4 book ai didi

python - 导入错误 : No module named 'spacy.en'

转载 作者:IT老高 更新时间:2023-10-28 22:14:53 28 4
gpt4 key购买 nike

我正在开发一个使用 Spacy 的代码库。我使用以下方式安装了 spacy:

sudo pip3 install spacy

然后

sudo python3 -m spacy download en

在最后一条命令结束时,我收到一条消息:

    Linking successful
/home/rayabhik/.local/lib/python3.5/site-packages/en_core_web_sm -->
/home/rayabhik/.local/lib/python3.5/site-packages/spacy/data/en

You can now load the model via spacy.load('en')

现在,当我尝试运行我的代码时,就行了:

    from spacy.en import English

它给了我以下错误:

ImportError: No module named 'spacy.en'

我查看过 Stackexchange,最接近的是:Import error with spacy: "No module named en"这并不能解决我的问题。

任何帮助将不胜感激。谢谢。

编辑:我可能已经通过执行以下操作解决了这个问题:

 Python 3.5.2 (default, Sep 14 2017, 22:51:06) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import spacy
>>> spacy.load('en')
<spacy.lang.en.English object at 0x7ff414e1e0b8>

然后使用:

from spacy.lang.en import English

如果有任何其他答案,我仍然保持开放状态。

最佳答案

是的,我可以确认您的解决方案是正确的。你从pip下载的spaCy版本是v2.0,包含了很多新功能,还有a few changes to the API .其中之一是所有语言数据都已移至子模块 spacy.lang 以保持更清洁和更有条理。因此,您现在可以从 spacy.lang.en 导入,而不是使用 spacy.en

- from spacy.en import English
+ from spacy.lang.en import English

不过,还值得一提的是,运行 spacy download en 时下载的内容与 spacy.lang.en 不同。 spaCy 附带的语言数据包括静态数据,如标记化规则、停用词或词形还原表。您可以下载的 en 包是统计模型 en_core_web_sm 的快捷方式。它包括语言数据以及二进制权重,使 spaCy 能够对词性标签、依赖项和命名实体进行预测。

我实际上建议使用完整的型号名称,而不是仅仅下载 en,这样可以更清楚地看到发生了什么:

python -m spacy download en_core_web_sm
nlp = spacy.load("en_core_web_sm")

当您调用 spacy.load 时,spaCy 会执行以下操作:

  1. 找到名为“en_core_web_sm”的已安装模型(一个包或快捷链接)。
  2. 读取它的 meta.json 并检查它使用的是哪种语言(在本例中为 spacy.lang.en),以及它的处理管道应该如何(在本例中)大小写、taggerparserner)。
  3. 初始化语言类并向其添加管道。
  4. 从模型数据中加载二进制权重,以便管道组件(如标注器、解析器或实体识别器)进行预测。

this section in the docs了解更多详情。

关于python - 导入错误 : No module named 'spacy.en' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47295316/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com