在 Colab 中使用 NeuralCoref 出现属性错误

msa*_*msa 6 python-3.x spacy google-colaboratory

我正在尝试在 colab 中使用以下 spacy 模块:

\n\n

https://spacy.io/universe/project/neuralcoref

\n\n

我安装以下软件包:

\n\n
!pip install spacy\nimport spacy \n!pip show spacy\n\n!git clone https://github.com/huggingface/neuralcoref.git\nimport neuralcoref\n
Run Code Online (Sandbox Code Playgroud)\n\n

安装后我得到以下输出:

\n\n
Name: spacy\nVersion: 2.2.4\nSummary: Industrial-strength Natural Language Processing (NLP) in Python\nHome-page: https://spacy.io\nAuthor: Explosion\nAuthor-email: contact@explosion.ai\nLicense: MIT\nLocation: /usr/local/lib/python3.6/dist-packages\nRequires: thinc, murmurhash, preshed, blis, srsly, cymem, setuptools, plac, requests, tqdm, numpy, wasabi, catalogue\nRequired-by: fastai, en-core-web-sm\nCloning into \'neuralcoref\'...\nremote: Enumerating objects: 48, done.\nremote: Counting objects: 100% (48/48), done.\nremote: Compressing objects: 100% (44/44), done.\nremote: Total 739 (delta 14), reused 10 (delta 1), pack-reused 691\nReceiving objects: 100% (739/739), 67.86 MiB | 30.25 MiB/s, done.\nResolving deltas: 100% (368/368), done.\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后我按照网站上的说明进行操作:

\n\n
nlp = spacy.load(\'en\')\nneuralcoref.add_to_pipe(nlp)\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,我收到以下错误:

\n\n
---------------------------------------------------------------------------\nAttributeError                            Traceback (most recent call last)\n<ipython-input-8-fe99e1a1a10f> in <module>()\n      1 nlp = spacy.load(\'en\')\n----> 2 neuralcoref.add_to_pipe(nlp)\n      3 #coref = neuralcoref.NeuralCoref(nlp.vocab)\n      4 #nlp.add_pipe(coref, name=\'neuralcoref\')\n\nAttributeError: module \'neuralcoref\' has no attribute \'add_to_pipe\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

有人知道如何解决这个问题吗?

\n\n

编辑

\n\n

(成功)使用下面的建议后,当我尝试运行提供的示例时,colab 崩溃了(请参阅下面的详细信息)。

\n\n

这是使用的代码:

\n\n
from google.colab import drive\ndrive.mount(\'/content/gdrive\')\n\n!pip install neuralcoref\n\nimport spacy\nimport neuralcoref\n\nnlp = spacy.load(\'en\') #\xc2\xa0this is the line where it crashes\nneuralcoref.add_to_pipe(nlp)\n\ndoc1 = nlp(\'My sister has a dog. She loves him.\')\nprint(doc1._.coref_clusters)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我已在左下角附上一张屏幕截图,其中包含原始错误消息。

\n\n

在此输入图像描述

\n\n

编辑2

\n\n

当更改安装模块的顺序时,我得到了可以在 colab 上工作的代码(不知道为什么)。

\n\n

以下内容现在对我有用:

\n\n
from google.colab import drive\ndrive.mount(\'/content/gdrive\')\n\n!git clone https://github.com/huggingface/neuralcoref.git\n!pip install -U spacy\n!python -m spacy download en\n\nimport spacy\nnlp = spacy.load(\'en\')\n\n%cd neuralcoref\n\n!pip install -r requirements.txt\n!pip install -e .\n\nimport neuralcoref\nneuralcoref.add_to_pipe(nlp)\n\ndoc1 = nlp(\'My sister has a dog. She loves him.\')\nprint(doc1._.coref_clusters)\n
Run Code Online (Sandbox Code Playgroud)\n

kno*_*oop 5

更新:

由于上一个帮助解决了第一个问题但又产生了另一个问题,所以我更新了答案。

根据neuralcorefpage 的说法,对于我们的 Spacy 版本,我们需要从源代码手动安装它。

另外,请在 Colab 的新单元中以及安装后尝试以下每个块Restart Runtime

mkdir temp

cd temp

!git clone https://github.com/huggingface/neuralcoref.git
!pip install -U spacy
!python -m spacy download en

cd neuralcoref

!pip install -r requirements.txt
!pip install -e .


import neuralcoref
import spacy

nlp = spacy.load('en')
neuralcoref.add_to_pipe(nlp)

doc1 = nlp('My sister has a dog. She loves him.')
print(doc1._.coref_clusters)
Run Code Online (Sandbox Code Playgroud)


解决了