从一个注释到另一个注释的标记文本
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;
我正在尝试在两个注释之间注释一些文本。虽然这看起来很简单,但我想明确排除包含另一个注释的文本段落。
假设我之前将文档的最后一个标记和一些 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;