我可以使用Uima Ruta分割单词的字母吗?
实施例
1.(WHO)
2.(APIAs)
脚本:
DECLARE NEW;
BLOCK (foreach)CAP{}
{
W{REGEXP(".")->MARK(NEW)};
}
答案 0 :(得分:1)
是的,这是通过UIMA Ruta中的simple regex规则实现的:
DECLARE Char;
CAP->{"."->Char;};
您不能使用常规规则,因为您需要匹配小于RutaBasic的东西。唯一的选择是使用直接在文本上而不是在注释上操作的正则表达式规则。你当然应该非常小心,因为这可能导致很多注释。
有些紧凑的规则的一些解释:CAP->{"."->Char;};
CAP // the only rule element of the rule: match on each CAP annotation
->{// indicates that inlined rules follow that are applied in the context of the matched annotation.
"." // a regular expression matching on each character
-> Char // the "action" of the regex rule: create an annotation of the type Char for each match of the regex
;}; // end of regex rule, end of inlined rules, end of actual rule
总结一下,规则迭代所有CAP注释,在每个迭代覆盖文本上应用正则表达式并为匹配创建注释。
您当然也可以使用BLOCK而不是内联规则。
免责声明:我是UIMA Ruta的开发者