我正在使用Spacy 1.8.2。我添加了一些自定义实体:
def add_entity(matcher, document, i, matches):
ent_id, label, start, end = matches[i]
document.ents += (Span(document, start, end, label),)
nlp.matcher.add_entity("person_one",on_match=add_entity)
nlp.matcher.add_pattern("person_one",[{ENT_TYPE:"PERSON"}],label = "PERSON_ONE")
现在, PERSON_ONE 实体已识别,但 PERSON实体不是。
我希望所有默认实体以及与任何自定义规则匹配的任何范围的自定义实体。
答案 0 :(得分:0)
看起来spaCy不支持重叠实体;见here
问题是Matcher类自动设置命名实体注释,但命名实体注释不允许重叠实体。缺乏重叠的实体并不理想,但它是一个标准的限制,并没有那么成问题。
如上所述,这是NER系统的一个非常标准的限制。
解决此问题的一种非常简单的方法是运行NER两次,一次使用规则,一次不使用,并合并实体。