UIMA Ruta 否定条件
UIMA Ruta negating conditions
这可能是一个微不足道的问题,但我是 Ruta 的新手,所以请多多包涵。
我的测试数据由以下格式的数字组成:
0.1 毫米 0,11 毫米 1.1 毫米 1,1 毫米 1 毫米
我使用以下规则来注释前四个示例:
((NUM(COMMA|PERIOD)NUM) W{REGEXP("mm")}) {-> nummm};
Document{->MARK(nummm)};
现在我也想注释“1mm”,例如,但我现在有点卡住了,因为我不知道该怎么做。我尝试否定条件,例如 AFTER(如 "if NUM mm not after comma or period"),但它要么不起作用,要么语法错误。如有任何帮助,我们将不胜感激!
编辑:我要补充一点,我想注释“1mm”,但不是逗号或句点后的 1mm 部分,截至目前,我基本上对所有内容都注释了两次。
在 UIMA Ruta 中确实有很多方法可以指定它。
这是我想到的第一件事:
(NUM{-PARTOF(nummm)} (PM{PARTOF({COMMA,PERIOD})} NUM)? W{REGEXP("mm")}){-> nummm};
这可能不是 "best" 规则,但应该符合您的要求。主要有以下三个变化:
- 我将规则的中间部分设为可选,这样它也可以匹配单个
NUM
。
- 我在第一个规则元素中添加了取反的 PARTOF,因此如果起点已被
nummm
注释覆盖,匹配将失败。 -
是 NOT
条件的快捷方式。
- 我用一个简单的规则元素替换了昂贵的析取组合规则元素,只是因为它在这里并不是真的有必要。
此规则有效,因为在考虑下一个规则匹配之前,规则匹配的操作已经执行。
免责声明:我是 UIMA Ruta 的开发者。
这可能是一个微不足道的问题,但我是 Ruta 的新手,所以请多多包涵。 我的测试数据由以下格式的数字组成:
0.1 毫米 0,11 毫米 1.1 毫米 1,1 毫米 1 毫米
我使用以下规则来注释前四个示例:
((NUM(COMMA|PERIOD)NUM) W{REGEXP("mm")}) {-> nummm};
Document{->MARK(nummm)};
现在我也想注释“1mm”,例如,但我现在有点卡住了,因为我不知道该怎么做。我尝试否定条件,例如 AFTER(如 "if NUM mm not after comma or period"),但它要么不起作用,要么语法错误。如有任何帮助,我们将不胜感激!
编辑:我要补充一点,我想注释“1mm”,但不是逗号或句点后的 1mm 部分,截至目前,我基本上对所有内容都注释了两次。
在 UIMA Ruta 中确实有很多方法可以指定它。
这是我想到的第一件事:
(NUM{-PARTOF(nummm)} (PM{PARTOF({COMMA,PERIOD})} NUM)? W{REGEXP("mm")}){-> nummm};
这可能不是 "best" 规则,但应该符合您的要求。主要有以下三个变化:
- 我将规则的中间部分设为可选,这样它也可以匹配单个
NUM
。 - 我在第一个规则元素中添加了取反的 PARTOF,因此如果起点已被
nummm
注释覆盖,匹配将失败。-
是NOT
条件的快捷方式。 - 我用一个简单的规则元素替换了昂贵的析取组合规则元素,只是因为它在这里并不是真的有必要。
此规则有效,因为在考虑下一个规则匹配之前,规则匹配的操作已经执行。
免责声明:我是 UIMA Ruta 的开发者。