gpt4 book ai didi

python - 仅使用 Spacy Phrasematcher 才能实现最长匹配

转载 作者:行者123 更新时间:2023-12-01 06:49:05 24 4
gpt4 key购买 nike

我创建了一个Spacy Phrasematcher匹配文档中的名称,遵循 tutorial 。我想使用生成的匹配作为附加训练数据来训练 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,以便它只匹配重叠匹配的最长匹配?

最佳答案

PhraseMatcher 没有内置方法在匹配时过滤掉重叠匹配,但有一个实用函数可以在匹配后过滤重叠匹配:spacy.util.filter_spans ()。它更喜欢最长的跨度,如果两个重叠的跨度长度相同,则使用文本中较早的跨度。

关于python - 仅使用 Spacy Phrasematcher 才能实现最长匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59105346/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com