从匹配器中排除结果

Exclude a result from a matcher

我正在尝试指定一个可以排除 某些结果的模式。 鉴于此文本:The Territory for the Titles shall be the United States, its territories and possessions, excluding Puerto Rico 我正在寻找一种只提取 the United States 的方法,就像 GPE 一样,并且不被排除在外。

我试着写一个像 [{'LEMMA': 'exclude', 'OP': '!'}, {'ENT_TYPE': 'GPE', 'OP': '+'}] 这样的模式,在我看来,它的意思应该是“只有在引理 exclude 后跟一个或多个 GPEs.

但在我使用 spacy 3 的测试中(以及 Rule-based Matcher Explorer),匹配器仍然匹配 be the United StatesPuerto Rico

有没有一种方法可以编写专门过滤掉 excluded GPEs 的模式?

Puerto Rico 匹配,因为 Puerto 引理不是 exclude(很明显)。 因此,过滤掉 Puerto 的一种方法是实际搜索既不是 eclude 也不是 GPE.

的内容

一个有效的模式是

[
    {'LEMMA': {'NOT_IN': ['exclude']},
     'ENT_TYPE': {'NOT_IN': ['GPE']}},
    {'ENT_TYPE': 'GPE', 'OP': '+'}
]