Ruta脚本使用toLowerCase转字符串小写时触发初始化报错问题
RUTA字符串转小写赋值报错解决方案
报错原因
你碰到的初始化报错是因为RUTA语法不支持将toLowerCase作为独立全局函数调用,脚本加载阶段解析到不符合语法规则的函数写法就会抛出初始化异常,还没到实际运行逻辑的阶段。而ASSIGN(s1, s2)属于基础变量赋值语法,符合规范所以可以正常执行。
你提供的报错信息参考:
2021-08-28 11:27:39 ERROR AnnotateFileHandler:67 - org.apache.uima.resource.ResourceInitializationException: Initialization of annotator class "org.apache.uima.ruta.engine.RutaEngine" failed. (Descriptor: )
解决方法
RUTA中字符串实例的大小写转换方法需要通过点语法直接调用在字符串对象上,将你的写法修改为以下格式即可:
ASSIGN(s1, s2.toLowerCase())
低版本兼容方案
如果你使用的UIMA Ruta版本低于2.5.0,字符串实例方法支持存在缺陷,可以用匹配临时赋值的方式实现相同效果:
STRING s1, s2; // 此处省略s2的赋值逻辑 Document{-> ASSIGN(s1, s2)}; s1 ".*" ->{ ASSIGN(s1, matchedText.toLowerCase()); };
内容的提问来源于stack exchange,提问作者RodP
相关产品推荐
相关产品推荐

