在标记之间注释数据

Annotate Data in between Markup

我正在尝试编写一个规则来检测标记标签之间的数据。

例如输入数据格式是固定的

<1> Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim</1>
<2>  nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim</2>

我在这里基本上需要检测开始和结束标记之间的数据 在我的例子中,输出应该是 1 和 2

我正在尝试以下规则。

 Document{->ADDRETAINTYPE(MARKUP)};

STRING sStart = "<";
STRING sEnd = ">";
DECLARE spanStart;
DECLARE spanEnd;

DECLARE ZONE;
sStart -> spanStart;
sEnd -> spanEnd;

spanStart NUM spanEnd{->MARK(ZONE,2)}; 

但是没有检测到值,因为 1 和 2 没有被检测为数字

“1”和“2”未检测为 NUM,因为它们是 MARKUP。播种创建文档的分离非重叠分区。如果您想在当前最小的部分中创建注释,例如,在您的用例 MARKUP 中,您可以使用简单的正则表达式规则来实现,就像您在问题中使用 spanStart 和 spanEnd 所做的那样。

我会使用类似的东西:

MARKUP->{"\d+"-> ZONE;};

MARKUP->{"</?(\d+)>"-> 1 = ZONE;};

免责声明:我是 UIMA Ruta 的开发者