文档含糊不清,请改用以下内容之一:org.apache.uima.ruta.type.Document uima.tcas.DocumentAnnotation

时间:2016-11-24 07:23:28

标签: apache uima ruta

我之前使用Ruta注释框架来注释输入文本我使用的是来自classpath的Ruta脚本。但根据客户要求,我们必须在代码之外移出Ruta脚本,所有这些都需要与系统分离。我可以实现这一切。我正在做的是在系统启动时我正在阅读所有引擎&脚本资源&缓存到goggle gauvas缓存中,每件事情都运行正常。唯一的问题是在运行批处理(并发进程)时有时候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:我运行批次时遇到的问题不是针对单个实例;

1 个答案:

答案 0 :(得分:0)

我对NUM,SPECIAL等预定义类型有同样的问题。 我在我的管道中集成了来自ruta的bibtex-examples,并尝试在答案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)

另一个问题是我无法宣布自己的" temorary"类型(例如" Marker")在" aaa"等语句中 - >标记。 错误读取"无法解析类型:标记 它在RUTA项目中运行良好,但不在我的"真实"项目