gpt4 book ai didi

spacy - 从 spaCy 中的一个 token 中检索实体的跨度

转载 作者:行者123 更新时间:2023-12-04 12:17:27 26 4
gpt4 key购买 nike

给定一个 token ,它是具有多个 token 的命名实体的一部分,是否有直接方法来获取该实体的跨度?

例如,考虑这个有两个词命名实体的句子:

>>> doc = nlp("This year was amazing.")
>>> doc.ents
(This year,)
>>> doc[0].ent_type_
'DATE'
>>> doc[1].ent_type_
'DATE'

假设我们考虑第一个标记(“This”),是否可以检索其所属的实体?也许是这样的:
>>> doc[0].ents_
(This year,)

我猜有时一个 token 可以是多个实体的一部分。

目前,我通过创建一个从索引到实体索引的反向字典来获得它。

谢谢!

最佳答案

您可以遍历 doc.ents然后将它们合并为一个标记,因为命名实体是 Span对象。
spaCy 还附带了一个方便的组件,您可以将其插入到自动处理此问题的管道中:

from spacy.pipeline import merge_entities    
nlp = spacy.load("en_core_web_sm") # or any other model
nlp.add_pipe(merge_entities)
print([token.text for token in nlp("John Murphy lives in New York City")])
# ['John Murphy', 'lives', 'in', 'New York City']

关于spacy - 从 spaCy 中的一个 token 中检索实体的跨度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55770365/

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