gpt4 book ai didi

python - Spacy:Trying to set conflicting doc.ents: A token can only be part of one entity, 所以确保你设置的实体不重叠

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

我尝试使用 spacy 从文本中提取所需的自定义实体。

import spacy
from spacy_lookup import Entity
data = {0:["count"],1:["unique count","unique"]}

def processText(text):
nlp = spacy.blank('en')
for i,arr in data.items():
fLabel = "test:"+str(i)
fEntitty = Entity(keywords_list=list(set(arr)),label=fLabel)
fEntitty.name = fLabel
nlp.add_pipe(fEntitty)
match_doc = nlp(text)
print(match_doc.ents)
processText("unique count of city")

但是上面的代码会抛出这样的错误

ValueError: [E103] Trying to set conflicting doc.ents: '(1, 2, 'test:0')' and '(0, 2, 'test:1')'. A token can only be part of one entity, so make sure the entities you're setting don't overlap.

不仅是这种情况,人名也有同样的问题,比如 Karthik vs Karthik reddy,Jon vs Jon Allen谁能帮我解决这个问题。

提前致谢!

最佳答案

在 spaCy 中,命名实体永远不会重叠。如果“Jon Allen”是一个名字,则不应将“John”也注释为一个名字。因此,在训练之前,您必须解决这些重叠/冲突的情况。

在评论中讨论后编辑:你会想要实现一个 on_match函数过滤出非重叠集的匹配项。

关于python - Spacy:Trying to set conflicting doc.ents: A token can only be part of one entity, 所以确保你设置的实体不重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63620691/

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