【发布时间】:2019-11-29 13:01:21
【问题描述】:
我在tutorial 之后创建了一个Spacy Phrasematcher 来匹配文档中的名称。我想使用结果匹配作为额外的训练数据来训练 Spacy NER 模型。 但是,我的模式分别包含全名(例如“Barack Obama”)和姓氏(“Obama”)。
因此,在包含“Barack Obama”的句子中,两种模式都匹配,导致匹配重叠。但是,当我尝试使用数据进行训练时,这种重叠会触发异常,例如:
ValueError: [E103] Trying to set conflicting doc.ents: '(19, 33, 'PERSON')' and '(29, 33, 'PERSON')'. A token can only be part of one entity, so make sure the entities you're setting don't overlap.
我一直在考虑在使用数据进行训练之前过滤掉重叠匹配,但这似乎是一种非常低效的方法,导致大数据的处理时间显着增加。
有没有办法设置PhraseMatcher,使其只匹配重叠匹配的最长匹配?
【问题讨论】:
标签: python nlp spacy named-entity-recognition