msa*_*msa 6 python-3.x spacy google-colaboratory
我正在尝试在 colab 中使用以下 spacy 模块:
\n\nhttps://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\nRun Code Online (Sandbox Code Playgroud)\n\n安装后我得到以下输出:
\n\nName: 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.\nRun Code Online (Sandbox Code Playgroud)\n\n然后我按照网站上的说明进行操作:
\n\nnlp = spacy.load(\'en\')\nneuralcoref.add_to_pipe(nlp)\nRun 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\'\nRun Code Online (Sandbox Code Playgroud)\n\n有人知道如何解决这个问题吗?
\n\n编辑
\n\n(成功)使用下面的建议后,当我尝试运行提供的示例时,colab 崩溃了(请参阅下面的详细信息)。
\n\n这是使用的代码:
\n\nfrom 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)\nRun Code Online (Sandbox Code Playgroud)\n\n我已在左下角附上一张屏幕截图,其中包含原始错误消息。
\n\n\n\n编辑2
\n\n当更改安装模块的顺序时,我得到了可以在 colab 上工作的代码(不知道为什么)。
\n\n以下内容现在对我有用:
\n\nfrom 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)\nRun Code Online (Sandbox Code Playgroud)\n
更新:
由于上一个帮助解决了第一个问题但又产生了另一个问题,所以我更新了答案。
根据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)