python-3.x - 如何在 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)
我已尝试按照此链接的建议将 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
。这是在 Ubuntu 16.04 和 Mac 上唯一适用于神经核的组合。
- 在你的机器上安装 python 3.7,看这里
- 确保选择的python版本是3.7
- 创建您的项目文件夹
- 在给定的项目文件夹中创建一个 python虚拟环境
python -m venv ./venv
,如下所示, - 像这样安装 spaCy 2.1.0
python -m pip install spacy==2.1.0
。 - 安装神经核
python -m pip install neuralcoref
希望这可以帮助。
运行上面的代码后,我得到以下输出:
[My sister: [My sister, She], a dog: [a dog, him]]
Angela: [Angela, She]
Boston: [Boston, that city]
推荐阅读
- r - 查找字符串是否有两个斜杠并替换它
- php - 没有名为 pycurl 的模块
- java - 如何在 Java 中将环境指针传递给 Windows CreateProcess(使用 jna)
- c# - C# - 在对 Node.js 服务器的一个 Web 请求中执行上传和下载
- android - 如何将 Alexa 语音服务集成到自定义 Android 应用程序
- python - 在不修改大小的情况下全屏显示我的 Python 乌龟画布
- azure - 从图中查找路径,然后使用 Gremlin 计算路径在 Azure Cosmos DB 中出现的次数
- jenkins - 如何在 multibranchPipelineJob 中添加 Hg 安装选项?
- mysql - 在子例程中处理数据库打开和关闭
- python - Python 代码运行时间过长