我想用MATCHEDTEXT在多个单词上创建一个匹配。对于选择多个单词,我想使用星号或加法不情愿的量词。如果在MATCHEDTEXT部分后面没有规则元素,但是如果有一个元素,比如我的示例中的最后一个"SW“,"CW+?”部分不匹配。
我的测试字符串
small Large Large small.我的鲁塔规则
STRING test;
DECLARE myObject(STRING label);
SW (CW+? { -> MATCHEDTEXT(test), CREATE(myObject, "label"=ao) }) SW;发布于 2016-10-27 07:55:06
这是UIMA Ruta <=2.5.0中的一个bug。匹配失败,因为不情愿的量词对组合规则元素有一些问题。
您可以通过删除不需要的组合规则元素来解决问题:
SW CW+? { -> MATCHEDTEXT(test), CREATE(myObject, "label"="x")} SW;...or通过避免不情愿的量词,这也不是必需的:
SW CW+ { -> MATCHEDTEXT(test), CREATE(myObject, "label"="x")} SW;免责声明:我是UIMA Ruta的开发人员
发布于 2016-10-27 10:31:52
加上贪婪:
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;https://stackoverflow.com/questions/40245139
复制相似问题