spaCy 共指解析 - 命名实体识别 (NER) 以返回唯一实体 ID?



也许我跳过了部分文档,但我试图确定的是标准NER工具集中每个实体的唯一ID。例如:

import spacy
from spacy import displacy
import en_core_web_sm
nlp = en_core_web_sm.load()
text = "This is a text about Apple Inc based in San Fransisco. "
"And here is some text about Samsung Corp. "
"Now, here is some more text about Apple and its products for customers in Norway"
doc = nlp(text)
for ent in doc.ents:
print('ID:{}t{}t"{}"t'.format(ent.label,ent.label_,ent.text,))

displacy.render(doc, jupyter=True, style='ent')

退货:

ID:381    ORG "Apple Inc" 
ID:382    GPE "San Fransisco" 
ID:381    ORG "Samsung Corp." 
ID:381    ORG "Apple" 
ID:382    GPE "Norway"

我一直在看ent.ent_ident.ent_id_,但根据文档,它们是不活动的。我在ent.root中也找不到任何内容。

例如,在GCPNLP中,每个实体都返回一个⟨实体⟩编号,使您能够识别文本中同一实体的多个实例。

这是一篇关于位于旧金山的苹果公司的文章。和这里有一些关于三星公司的文字。现在,这里还有一些关于苹果的文本⟨挪威⟩9">

spaCy支持类似的功能吗?或者有没有一种方法可以使用NLTK或Stanford?

您可以使用neuralRef库来获得与SpaCy的模型一起使用的共引用分辨率,如:

# Load your usual SpaCy model (one of SpaCy English models)
import spacy
nlp = spacy.load('en')
# Add neural coref to SpaCy's pipe
import neuralcoref
neuralcoref.add_to_pipe(nlp)
# You're done. You can now use NeuralCoref as you usually manipulate a SpaCy document annotations.
doc = nlp(u'My sister has a dog. She loves him.')
doc._.has_coref
doc._.coref_clusters

请在此处查找安装和使用说明:https://github.com/huggingface/neuralcoref

最新更新