从一个注释到另一个注释的标记文本

Marking Text from one annotation to another

我正在尝试在两个注释之间注释一些文本。虽然这看起来很简单,但我想明确排除包含另一个注释的文本段落。

假设我之前将文档的最后一个标记和一些 POI 注释为其他几个注释。现在我想将文档的最后一个 POI 注释转移到该令牌。但该文本中不能有其他兴趣点。

我目前在做什么:

POI1 {->SHIFT(POI1,1,3)} ANY*?{-CONTAINS(POI2)} EndToken;

Ruta 仍将使用此规则对所有其他包含 POI2 注释的文本进行注释。

我错过了什么?

您的规则无效,因为 ANY* 没有终止符,因此 star-greedy 量词 * 覆盖 EndToken。此外,您通常会使用 CONTAINS 来检查另一个注解 exclusively。因此,PARTOF 条件适用于您的情况。

在 UIMA Ruta 中,您至少可以使用两种方法来解决您的问题:

1.) 边界匹配 - 注释预定义边界之间的文本

(Annotation1 ANY+{-PARTOF(Annotation2)} Annotation3){-> Annotation4};

2.) Transformation——修改目标注解的偏移量(你的方案)

Annotation1{->SHIFT(Annotation1,1,2)} Annotation2;

如果您的目标只是更改 POI1 注释的偏移量,那么以下规则应该有效:

POI1{->SHIFT(POI1,1,3)} ANY*?{-PARTOF(POI2), -PARTOF(EndToken)} EndToken;