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

时间:2019-07-08 02:08:36

标签: python nlp google-colaboratory spacy

出于某种学习目的,我正在使用google colab,并已使用以下命令下载了spaCy'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.

打印以下错误:

public class JsonDateTimeOffsetAndMillisecondsConverter: JsonConverter
{
    public override bool CanConvert(Type objectType)
    {
        return objectType == typeof(DateTime);
    }

    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        var t = long.Parse((string)reader.Value);
        return new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddMilliseconds(t);
    }

    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        // How to write in json the datetime property as milliseconds?        }
}

有人可以帮助我解决这个问题吗?

6 个答案:

答案 0 :(得分:6)

在Google Colab笔记本中,您应该import the model as a package

但是您下载并安装模型:

!pip install en_core_sci_lg
!pip install <model_s3_url>
import spacy, scispacy

您在Colab中没有权限以正常的spacy用法加载模型:

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

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

import en_core_sci_lg
nlp = en_core_sci_lg.load()

然后按照指示使用:

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

答案 1 :(得分:1)

在使用Python 3内核的colab上,应该都设置为在一个单元格中运行(花了一段时间,但与spacy.cli不同,它为您提供了有关进度的视觉反馈)

!python -m spacy download en_core_web_lg

然后重新启动colab运行时(要在colab菜单中执行此操作,请转到“运行时”>“重新启动运行时...”。)

之后,执行

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

应该正常工作。

答案 2 :(得分:1)

似乎最好的答案是在此线程上:How to install models/download packages on Google Colab?

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

答案 3 :(得分:0)

我在Google colab上遇到了类似的问题:

output: [5, 8, 8, 9, 9]

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

nlp = spacy.load('en_core_web_md') 

答案 4 :(得分:0)

如果您有jquery-ui/themes/base/core.css但没有Python Interpreter,则可以尝试:

terminal

答案 5 :(得分:0)

以下为我工作

import en_core_web_sm
nlp = en_core_web_sm.load()