在标记

时间:2017-03-28 06:32:21

标签: apache nlp uima ruta

我正在尝试编写规则来检测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&amp; 2未被检测为数字

1 个答案:

答案 0 :(得分:1)

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

我会使用类似的东西:

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

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

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