neuralcoref使用教程-指代消解

2020-03-03 10:52:33 浏览数 (1)


作者: 明天依旧可好 | 柯尊柏 邮箱: ke.zb@qq.com 编译器: jupyter notebook 创作时间: 2020.3.1


文章目录

  • 一、什么是指代消解
  • 二、案例展示
  • 三、进入正题:配置环境
  • 四、neuralcoref有哪些函数可以用

neuralcoref与spaCy的配合使用,目前版本上存在不兼容现象(今天是2020.3.1),需要将spaCy降解到2.1.0版本才可以正常使用

代码语言:javascript复制
pip install spaCy==2.1.0

如果事前已经安装过了,可以使用下面的语句来卸载

代码语言:javascript复制
pip uninstall spaCy

一、什么是指代消解

举个例子

A 来自湖北,他喜欢吃橘子。B来自湖南,她喜欢吃苹果。

我们将这段语料输入到电脑,电脑会就认为这段文字描述的四个人(分别是“A”,“他”,“B”,“她”),实际上文字中的“A”与“他”均是指A,但是电脑是无法理解这个的。

假如我们使用指代消解,电脑就会知道

A 来自湖北,A喜欢吃橘子。B来自湖南,B喜欢吃苹果。

二、案例展示

先看例子

代码语言:javascript复制
import en_core_web_sm
import spacy
nlp = spacy.load('en')

import neuralcoref
neuralcoref.add_to_pipe(nlp)

#我们输入文本:My sister has a dog. She loves him.
doc = nlp(u'My sister has a dog. She loves him.')
doc._.coref_resolved

'''
输出:'My sister has a dog. My sister loves a dog.'
'''

三、进入正题:配置环境

需要安装的包有:en_core_web_smspacy2.1.0neuralcoref,在命令行中直接使用pip安装。

1.安装neuralcoref语句:

代码语言:javascript复制
pip install neuralcoref

2.安装spacy2.1.0,如果安装速度过慢建议F墙,不要安装最新版本,会出现问题的(为你们节约了三天时间)

代码语言:javascript复制
pip install spacy==2.1.0

3.安装en_core_web_sm语句:

代码语言:javascript复制
pip install en_core_web_sm

安装后可使用上面的案例来检查,看自己是否成功。

四、neuralcoref有哪些函数可以用

我们借用上面的例子,然后一一调用它们,来看看结果

代码语言:javascript复制
import en_core_web_sm
import spacy
nlp = spacy.load('en')

import neuralcoref
neuralcoref.add_to_pipe(nlp)

#我们输入文本:My sister has a dog. She loves him.
doc = nlp(u'My sister has a dog. She loves him.')
doc._.coref_resolved

我们用下面的方法替换代码中的最后一行,对比一下输出结果。

方法

返回结果

解释

doc._.has_coref

True

返回boolean,判断是否解决了文档中的指代问题

doc._.coref_clusters

[My sister: [My sister, She], a dog: [a dog, him]]

返回列表,说明指代关系

doc._.coref_resolved

‘My sister has a dog. My sister loves a dog.’

返回消除指代后的结果

doc._.coref_scores

{My sister: {My sister: 1.3110305070877075},a dog: {a dog: 1.804752230644226, My sister:-1.6715972423553467},She: {She: -0.10834205150604248,My sister: 8.058426856994629,a dog: -1.0625176429748535},him: {him: -1.870743989944458,My sister: 3.1147186756134033,a dog: 4.356405258178711,She: -3.1379528045654297}}

互指消解分数,简单来说就是相关性系数


官网:【neuralcoref的GitHub官网

0 人点赞