UIMA Ruta 结合 MATCHEDTEXT 和 Star 或 Plus Reluctant
UIMA Ruta Combining MATCHEDTEXT and Star or Plus Reluctant
我想使用 MATCHEDTEXT 在多个单词上创建匹配。为了选择多个单词,我想使用 Star 或 Plus Reluctant 量词。这很好用,如果 MATCHEDTEXT 部分后面没有规则元素,但如果有,就像我示例中的最后一个 "SW","CW+?" 部分将不匹配。
我的测试字符串
small Large Large small.
我的鲁塔规则
STRING test;
DECLARE myObject(STRING label);
SW (CW+? { -> MATCHEDTEXT(test), CREATE(myObject, "label"=ao) }) SW;
这是 UIMA Ruta <=2.5.0 中的错误。匹配失败,因为不情愿的量词与组合规则元素有问题。
您可以通过删除不需要的组合规则元素来解决您的问题:
SW CW+? { -> MATCHEDTEXT(test), CREATE(myObject, "label"="x")} SW;
...或者避免不情愿的量词,这也不是必需的:
SW CW+ { -> MATCHEDTEXT(test), CREATE(myObject, "label"="x")} SW;
免责声明:我是 UIMA Ruta 的开发者
加上贪婪:
PACKAGE uima.ruta.example;
DECLARE myObject(STRING label);
STRING test;
DECLARE myObject(STRING label);
SW CW+ {-PARTOF(myObject) -> MATCHEDTEXT(test), CREATE(myObject, "label"="ao") } SW;
加上不情愿:
PACKAGE uima.ruta.example;
DECLARE myObject(STRING label);
STRING test;
DECLARE myObject(STRING label);
SW CW+? {-PARTOF(myObject) -> MATCHEDTEXT(test), CREATE(myObject, "label"="ao") } SW;
我想使用 MATCHEDTEXT 在多个单词上创建匹配。为了选择多个单词,我想使用 Star 或 Plus Reluctant 量词。这很好用,如果 MATCHEDTEXT 部分后面没有规则元素,但如果有,就像我示例中的最后一个 "SW","CW+?" 部分将不匹配。
我的测试字符串
small Large Large small.
我的鲁塔规则
STRING test;
DECLARE myObject(STRING label);
SW (CW+? { -> MATCHEDTEXT(test), CREATE(myObject, "label"=ao) }) SW;
这是 UIMA Ruta <=2.5.0 中的错误。匹配失败,因为不情愿的量词与组合规则元素有问题。
您可以通过删除不需要的组合规则元素来解决您的问题:
SW CW+? { -> MATCHEDTEXT(test), CREATE(myObject, "label"="x")} SW;
...或者避免不情愿的量词,这也不是必需的:
SW CW+ { -> MATCHEDTEXT(test), CREATE(myObject, "label"="x")} SW;
免责声明:我是 UIMA Ruta 的开发者
加上贪婪:
PACKAGE uima.ruta.example;
DECLARE myObject(STRING label);
STRING test;
DECLARE myObject(STRING label);
SW CW+ {-PARTOF(myObject) -> MATCHEDTEXT(test), CREATE(myObject, "label"="ao") } SW;
加上不情愿:
PACKAGE uima.ruta.example;
DECLARE myObject(STRING label);
STRING test;
DECLARE myObject(STRING label);
SW CW+? {-PARTOF(myObject) -> MATCHEDTEXT(test), CREATE(myObject, "label"="ao") } SW;