如何在 Spacy 中使用 neuralcoref
How to use neuralcoref in Spacy
我一直在尝试使用库 neuralcoref
:基于神经网络和 spaCy 的最先进的共指解决方案。我在 conda 1.9.7 和 Spacy 2.2.4 中使用 Ubuntu 16.04、Python 3.7.3。
我的代码(来自https://spacy.io/universe/project/neuralcoref):
import spacy
import neuralcoref
nlp = spacy.load('en_core_web_sm')
neuralcoref.add_to_pipe(nlp)
doc1 = nlp('My sister has a dog. She loves him.')
print(doc1._.coref_clusters)
doc2 = nlp('Angela lives in Boston. She is quite happy in that city.')
for ent in doc2.ents:
print(ent._.coref_cluster)
我遇到了这个错误
/home/daniel/anaconda3/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: spacy.morphology.Morphology size changed, may indicate binary incompatibility. Expected 104 from C header, got 112 from PyObject
return f(*args, **kwds)
/home/daniel/anaconda3/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: spacy.vocab.Vocab size changed, may indicate binary incompatibility. Expected 96 from C header, got 104 from PyObject
return f(*args, **kwds)
/home/daniel/anaconda3/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: spacy.tokens.span.Span size changed, may indicate binary incompatibility. Expected 72 from C header, got 80 from PyObject
return f(*args, **kwds)
我已尝试按照此 link:
的建议将 Spacy 的版本降级到 2.1.0
conda config --append channels conda-forge
conda install spacy=2.1.0
但是,我做不到
PackagesNotFoundError: The following packages are not available from current channels:
- spacy=2.1.0
Current channels:
- https://conda.anaconda.org/conda-forge/linux-64
- https://conda.anaconda.org/conda-forge/noarch
- https://repo.anaconda.com/pkgs/main/linux-64
- https://repo.anaconda.com/pkgs/main/noarch
- https://repo.anaconda.com/pkgs/r/linux-64
- https://repo.anaconda.com/pkgs/r/noarch
To search for alternate channels that may provide the conda package you're
looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
如何在不降级的情况下解决这个问题? neuralcoref有新的更新版本吗?
要使 neuralcoref
正常工作,您需要使用 spaCy 版本 2.1.0
和 python 版本 3.7
。这是 neuralcored 在 Ubuntu 16.04 和 Mac.
上唯一适用的组合
- 在您的计算机上安装 python 3.7,请参阅
- 确保python选择的版本是3.7
- 创建项目文件夹
- 像这样在给定的项目文件夹中创建一个 python virtual environment,
python -m venv ./venv
,
- 像这样安装 spaCy 2.1.0
python -m pip install spacy==2.1.0
。
- 安装 neuralcoref
python -m pip install neuralcoref
希望对您有所帮助。
在 运行 你上面的代码之后,我得到以下输出:
[My sister: [My sister, She], a dog: [a dog, him]]
Angela: [Angela, She]
Boston: [Boston, that city]
严格按照 Raqib 所说的去做。我使用了 google colab,所以如果使用 google colab,请跳过 (1)。
添加以下命令:
1)使用以下方法创建新环境:(将 myenv 更改为您要将环境命名为的名称)
conda create --name myenv
Select那个环境:
conda info --envs
conda activate myenv
2)然后在该环境中安装python 3.7
安装 python 版本
!apt-get install python3.7
3) 安装支持版本的 spacy 和 neuralcoref。
!pip install spacy==2.1.0
!pip install neuralcoref
!pip install https://github.com/explosion/spacy-models/releases//download/en_core_web_lg-2.1.0/en_core_web_lg-2.1.0.tar.gz
import pandas as pd
import re
import spacy
import neuralcoref
import en_core_web_lg
nlp = en_core_web_lg.load()
neuralcoref.add_to_pipe(nlp)
降级到 spacy 2
pip uninstall -y neuralcoref
pip install --no-cache-dir neuralcoref --no-binary neuralcoref
pip install -U spacy==2.3.7
python -m spacy download en
如果您使用的是 jupyter,请重新启动内核。
和.....
import logging;
logging.basicConfig(level=logging.INFO)
import neuralcoref
更新
pip install -U spacy==2.3.7
pip install neuralcoref
python -m spacy download en
这不是问题的直接答案,但是如果你想使用neuralCoref,另一种选择是使用Java中编写的原始版本。节库有一个 coreNLP client,可以访问原始的 coreNLP 模型。这不需要您使用(过时的)Spacy。
我一直在尝试使用库 neuralcoref
:基于神经网络和 spaCy 的最先进的共指解决方案。我在 conda 1.9.7 和 Spacy 2.2.4 中使用 Ubuntu 16.04、Python 3.7.3。
我的代码(来自https://spacy.io/universe/project/neuralcoref):
import spacy
import neuralcoref
nlp = spacy.load('en_core_web_sm')
neuralcoref.add_to_pipe(nlp)
doc1 = nlp('My sister has a dog. She loves him.')
print(doc1._.coref_clusters)
doc2 = nlp('Angela lives in Boston. She is quite happy in that city.')
for ent in doc2.ents:
print(ent._.coref_cluster)
我遇到了这个错误
/home/daniel/anaconda3/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: spacy.morphology.Morphology size changed, may indicate binary incompatibility. Expected 104 from C header, got 112 from PyObject
return f(*args, **kwds)
/home/daniel/anaconda3/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: spacy.vocab.Vocab size changed, may indicate binary incompatibility. Expected 96 from C header, got 104 from PyObject
return f(*args, **kwds)
/home/daniel/anaconda3/lib/python3.7/importlib/_bootstrap.py:219: RuntimeWarning: spacy.tokens.span.Span size changed, may indicate binary incompatibility. Expected 72 from C header, got 80 from PyObject
return f(*args, **kwds)
我已尝试按照此 link:
的建议将 Spacy 的版本降级到 2.1.0conda config --append channels conda-forge
conda install spacy=2.1.0
但是,我做不到
PackagesNotFoundError: The following packages are not available from current channels:
- spacy=2.1.0
Current channels:
- https://conda.anaconda.org/conda-forge/linux-64
- https://conda.anaconda.org/conda-forge/noarch
- https://repo.anaconda.com/pkgs/main/linux-64
- https://repo.anaconda.com/pkgs/main/noarch
- https://repo.anaconda.com/pkgs/r/linux-64
- https://repo.anaconda.com/pkgs/r/noarch
To search for alternate channels that may provide the conda package you're
looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
如何在不降级的情况下解决这个问题? neuralcoref有新的更新版本吗?
要使 neuralcoref
正常工作,您需要使用 spaCy 版本 2.1.0
和 python 版本 3.7
。这是 neuralcored 在 Ubuntu 16.04 和 Mac.
- 在您的计算机上安装 python 3.7,请参阅
- 确保python选择的版本是3.7
- 创建项目文件夹
- 像这样在给定的项目文件夹中创建一个 python virtual environment,
python -m venv ./venv
, - 像这样安装 spaCy 2.1.0
python -m pip install spacy==2.1.0
。 - 安装 neuralcoref
python -m pip install neuralcoref
希望对您有所帮助。
在 运行 你上面的代码之后,我得到以下输出:
[My sister: [My sister, She], a dog: [a dog, him]]
Angela: [Angela, She]
Boston: [Boston, that city]
严格按照 Raqib 所说的去做。我使用了 google colab,所以如果使用 google colab,请跳过 (1)。 添加以下命令:
1)使用以下方法创建新环境:(将 myenv 更改为您要将环境命名为的名称)
conda create --name myenv
Select那个环境:
conda info --envs
conda activate myenv
2)然后在该环境中安装python 3.7
安装 python 版本
!apt-get install python3.7
3) 安装支持版本的 spacy 和 neuralcoref。
!pip install spacy==2.1.0
!pip install neuralcoref
!pip install https://github.com/explosion/spacy-models/releases//download/en_core_web_lg-2.1.0/en_core_web_lg-2.1.0.tar.gz
import pandas as pd
import re
import spacy
import neuralcoref
import en_core_web_lg
nlp = en_core_web_lg.load()
neuralcoref.add_to_pipe(nlp)
降级到 spacy 2
pip uninstall -y neuralcoref
pip install --no-cache-dir neuralcoref --no-binary neuralcoref
pip install -U spacy==2.3.7
python -m spacy download en
如果您使用的是 jupyter,请重新启动内核。
和.....
import logging;
logging.basicConfig(level=logging.INFO)
import neuralcoref
更新
pip install -U spacy==2.3.7
pip install neuralcoref
python -m spacy download en
这不是问题的直接答案,但是如果你想使用neuralCoref,另一种选择是使用Java中编写的原始版本。节库有一个 coreNLP client,可以访问原始的 coreNLP 模型。这不需要您使用(过时的)Spacy。