无法在Google Colab上加载spacy模型'en_core_web_lg'。

32

我正在使用谷歌Colab和spacy构建一个命名实体识别模型,为此我已经下载了spaCy的'en_core_web_lg'模型。

import spacy.cli
spacy.cli.download("en_core_web_lg")

我收到一条消息,内容是

 Download and installation successful
You can now load the model via spacy.load('en_core_web_lg')

然而,当我尝试加载模型时,出现了问题。
nlp = spacy.load('en_core_web_lg')

以下错误信息被打印出来:
OSError: [E050] Can't find model 'en_core_web_lg'. It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory.

有人能帮我解决这个问题吗?


1
截至2022年6月,在colab.to上执行import spacy.cli; spacy.cli.download("en_core_web_lg"); nlp = spacy.load('en_core_web_lg')不再出现错误。在我看来,问题已经消失了! - Davide Fiocco
4个回答

82

跑步

import spacy.cli
spacy.cli.download("en_core_web_lg")
nlp = spacy.load("en_core_web_lg")

最近版本的spaCy不应再出现任何错误。

如果运行代码仍然出现错误,则应该在一个单元格中运行(需要一些时间,但提供了与spacy.cli不同的进度视觉反馈)。

!python -m spacy download en_core_web_lg

然后,通过以下方式***重新启动colab运行时***:

  • 使用colab菜单Runtime > Restart runtime
  • 或者使用键盘快捷键Ctrl+M .

之后,执行

import spacy
nlp = spacy.load('en_core_web_lg')

应该无瑕工作。


21

在Google Colab笔记本中,您应该将模型作为软件包导入

无论您如何下载和安装模型:

!pip install <model_s3_url> # tar.gz file e.g. from release notes like https://github.com/explosion/spacy-models/releases//tag/en_core_web_lg-2.3.1
!pip install en_core_web_lg
import spacy

您在Colab中没有权限使用Spacy正常加载模型:

nlp = spacy.load("en_core_web_lg") # not via packages
nlp = spacy.load("/path/to/en_core_web_lg") #not via paths
nlp = spacy.load("en") # nor via shortcut links
spacy.load()

相反,直接导入模型并加载它:

import en_core_web_lg
nlp = en_core_web_lg.load()

然后按照指示使用:

doc = nlp("This is a sentence. Soon, it will be knowledge.")

6

0
我在Google Colab上遇到了一个类似的问题:
nlp = spacy.load('en_core_web_md') 

我怀疑这可能与模型的大小有关。使用小的spacy模型对我有效。

spacy download en_core_web_sm
nlp = spacy.load('en_core_web_sm')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接