我使用Ruta注释框架对输入文本进行注释,之前我从类路径中使用了Ruta脚本。但是根据客户端的要求,我们必须将Ruta脚本移出代码之外,所有这些都需要与系统分离。我可以实现这一切。我所做的是,当系统启动时,我将所有的引擎和脚本资源和缓存读入gauvas缓存,每件事情都在工作,fine.The只是在运行批处理(并发进程)Ruta框架抛出异常时遇到的唯一问题。
见下面的堆栈跟踪。
Caused by: java.lang.IllegalArgumentException: Document is ambiguous, use one of the following instead : org.apache.uima.ruta.type.Document uima.tcas.DocumentAnnotation
at org.apache.uima.ruta.RutaEnvironment.getType(RutaEnvironment.java:367) at org.apache.uima.ruta.RutaEnvironment.getType(RutaEnvironment.java:376) at org.apache.uima.ruta.RutaEnvironment.getType(RutaEnvironment.java:376) at org.apache.uima.ruta.expression.type.SimpleTypeExpression.getType(SimpleTypeExpression.java:45) at org.apache.uima.ruta.rule.RutaTypeMatcher.getType(RutaTypeMatcher.java:247) at org.apache.uima.ruta.rule.RutaTypeMatcher.getTypes(RutaTypeMatcher.java:262) at org.apache.uima.ruta.rule.RutaTypeMatcher.getMatchingAnnotations(RutaTypeMatcher.java:58) at org.apache.uima.ruta.rule.RutaRuleElement.getAnchors(RutaRuleElement.java:52) at org.apache.uima.ruta.rule.RutaRuleElement.startMatch(RutaRuleElement.java:59) at org.apache.uima.ruta.rule.ComposedRuleElement.startMatch(ComposedRuleElement.java:73) at org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:47) at org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:40) at org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:29) at org.apache.uima.ruta.RutaScriptBlock.apply(RutaScriptBlock.java:63) at org.apache.uima.ruta.RutaScriptBlock.apply(RutaScriptBlock.java:63) at org.apache.uima.ruta.action.CallAction.callScript(CallAction.java:96) at org.apache.uima.ruta.action.CallAction.execute(CallAction.java:78) at org.apache.uima.ruta.rule.AbstractRuleElement.apply(AbstractRuleElement.java:130) at org.apache.uima.ruta.rule.RuleElementCaretaker.applyRuleElements(RuleElementCaretaker.java:111) at org.apache.uima.ruta.rule.ComposedRuleElement.applyRuleElements(ComposedRuleElement.java:554) at org.apache.uima.ruta.rule.AbstractRuleElement.doneMatching(AbstractRuleElement.java:84) at org.apache.uima.ruta.rule.ComposedRuleElement.fallback(ComposedRuleElement.java:475) at org.apache.uima.ruta.rule.ComposedRuleElement.fallbackContinue(ComposedRuleElement.java:384) at org.apache.uima.ruta.rule.RutaRuleElement.startMatch(RutaRuleElement.java:100) at org.apache.uima.ruta.rule.ComposedRuleElement.startMatch(ComposedRuleElement.java:73) at org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:47) at org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:40) at org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:29) at org.apache.uima.ruta.RutaScriptBlock.apply(RutaScriptBlock.java:63) at org.apache.uima.ruta.RutaModule.apply(RutaModule.java:48) at org.apache.uima.ruta.engine.RutaEngine.process(RutaEngine.java:477) ... 22 more
PS:我在运行批处理时面临这个问题,而不是单个实例;
发布于 2018-01-10 10:48:43
我在预定义的类型(如NUM、SPECIAL等)上也有同样的问题。我在我的管道中集成了来自ruta的bibtex示例,并试图调用一个类似于答案1中的rutaEngine (只是一个年份脚本)。我还使用DKPro core.opennlp.OpenNlpSegmenter。在运行脚本时,我得到了类似于原始问题中的类似错误:
Caused by: java.lang.IllegalArgumentException: NUM is ambiguous, use one of
the following instead : de.tudarmstadt.ukp.dkpro.core.api.syntax.type.dependency.NUM
org.apache.uima.ruta.type.NUM
at org.apache.uima.ruta.RutaEnvironment.getType(RutaEnvironment.java:459)
另一个问题是我不能声明自己的“临时”类型。在诸如"aaa“->标记之类的语句中。错误的内容是“无法解析类型:标记在RUTA项目中运行良好,但在我的”真正“项目中不起作用。
https://stackoverflow.com/questions/40780215
复制相似问题