
知识图谱
|
363
这个函数接受一个
spaCy
的
Doc
对象(名叫
doc
)作为参数,并返回一个
Doc
。因此,
我们可以将它作为流水线的一个组件,添加到已有的流水线中:
nlp.add_pipe(norm_entities)
现在,我们针对各个示例的句子,重复这个过程,并检查结果:
doc = nlp(text)
print(*[([t.text for t in e], e.label_) for e in doc.ents], sep='
\n
')
输出结果:
(['Baker', 'International'], 'ORG')
(['New', 'York', 'Stock', 'Exchange'], 'ORG')
12.4.3
合并实体词语
在很多情况下,我们应该将合成的名称(如上例所示)当成一个词语,因为这样可
以简化句子的结构。为此,
spaCy
提供了一个内置的流水线函数
merge_entities
。
我们将它添加到我们的
NLP
流水线中,将每个命名实体都合并成一个词语:
from spacy.pipeline import merge_entities
nlp.add_pipe(merge_entities)
doc = nlp(text)
print(*[(t.text, t.ent_type_) for t in doc if t.ent_type_ != ''])
输出结果:
('Baker International', 'ORG') ('New York Stock Exchange', 'ORG') ...