文档不明确,请使用以下选项之一:org.apache.uima.ruta.type.Document uima.tcas.DocumentAnnotation
我正在使用Ruta注释框架来注释输入文本,之前我使用的是来自类路径的Ruta脚本。但根据客户的需求,我们必须将Ruta脚本移出代码之外,所有这些都需要与系统解耦。我可以实现这一切。我正在做的是,当系统启动时,我正在将所有引擎和脚本资源和缓存读取到goggle gauvas缓存中,一切正常。唯一的问题是在运行批处理(并发进程)时,框架抛出异常 请参阅下面的堆栈跟踪文档不明确,请使用以下选项之一:org.apache.uima.ruta.type.Document uima.tcas.DocumentAnnotation,apache,uima,ruta,Apache,Uima,Ruta,我正在使用Ruta注释框架来注释输入文本,之前我使用的是来自类路径的Ruta脚本。但根据客户的需求,我们必须将Ruta脚本移出代码之外,所有这些都需要与系统解耦。我可以实现这一切。我正在做的是,当系统启动时,我正在将所有引擎和脚本资源和缓存读取到goggle gauvas缓存中,一切正常。唯一的问题是在运行批处理(并发进程)时,框架抛出异常 请参阅下面的堆栈跟踪 原因:java.lang.IllegalArgumentException:文档不明确,请使用以下选项之一:org.apache.ui
原因:java.lang.IllegalArgumentException:文档不明确,请使用以下选项之一:org.apache.uima.ruta.type.Document uima.tcas.DocumentAnnotation
位于org.apache.uima.ruta.RutaEnvironment.getType(RutaEnvironment.java:367)
位于org.apache.uima.ruta.RutaEnvironment.getType(RutaEnvironment.java:376)
位于org.apache.uima.ruta.RutaEnvironment.getType(RutaEnvironment.java:376)
位于org.apache.uima.ruta.expression.type.SimpleTypeExpression.getType(SimpleTypeExpression.java:45)
位于org.apache.uima.ruta.rule.RutaTypeMatcher.getType(RutaTypeMatcher.java:247)
位于org.apache.uima.ruta.rule.RutaTypeMatcher.getTypes(RutaTypeMatcher.java:262)
位于org.apache.uima.ruta.rule.RutaTypeMatcher.getMatchingAnnotations(RutaTypeMatcher.java:58)
位于org.apache.uima.ruta.rule.RutaRuleElement.getAnchors(RutaRuleElement.java:52)
位于org.apache.uima.ruta.rule.RutaRuleElement.startMatch(RutaRuleElement.java:59)
位于org.apache.uima.ruta.rule.ComposedRuleElement.startMatch(ComposedRuleElement.java:73)
位于org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:47)
位于org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:40)
位于org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:29)
位于org.apache.uima.ruta.RutaScriptBlock.apply(RutaScriptBlock.java:63)
位于org.apache.uima.ruta.RutaScriptBlock.apply(RutaScriptBlock.java:63)
位于org.apache.uima.ruta.action.CallAction.callScript(CallAction.java:96)
在org.apache.uima.ruta.action.CallAction.execute(CallAction.java:78)上
位于org.apache.uima.ruta.rule.AbstractRuleElement.apply(AbstractRuleElement.java:130)
位于org.apache.uima.ruta.rule.RuleElementCareter.applyRuleElements(ruleElementCareter.java:111)
位于org.apache.uima.ruta.rule.ComposedRuleElement.applyRuleElements(ComposedRuleElement.java:554)
位于org.apache.uima.ruta.rule.AbstractRuleElement.doneMatching(AbstractRuleElement.java:84)
位于org.apache.uima.ruta.rule.ComposedRuleElement.fallback(ComposedRuleElement.java:475)
位于org.apache.uima.ruta.rule.ComposedRuleElement.fallbackContinue(ComposedRuleElement.java:384)
位于org.apache.uima.ruta.rule.RutaRuleElement.startMatch(RutaRuleElement.java:100)
位于org.apache.uima.ruta.rule.ComposedRuleElement.startMatch(ComposedRuleElement.java:73)
位于org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:47)
位于org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:40)
位于org.apache.uima.ruta.rule.RutaRule.apply(RutaRule.java:29)
位于org.apache.uima.ruta.RutaScriptBlock.apply(RutaScriptBlock.java:63)
位于org.apache.uima.ruta.RutaModule.apply(RutaModule.java:48)
位于org.apache.uima.ruta.engine.RutaEngine.process(RutaEngine.java:477)
... 还有22个
PS:当我运行批处理而不是单个实例时,我会遇到这个问题我对预定义类型(如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”->Marker这样的语句中声明自己的“临时”类型(例如“Marker”)。
错误为“无法解析类型:标记”
它在RUTA项目内部运行良好,但在我的“真实”项目外部运行不好“项目。我知道您使用的是ruta<2.5.0?文档已在2.5.0中删除。然而,无论如何,这个问题不应该发生。您可以升级到2.5.0,但请注意,2.5.0中的数据路径有一个bug。作为一个热修复程序,您还可以在脚本中用DocumentAnnotation替换文档。@PeterKluegl我正在使用2.2.0,根据您的说法,文档在2.5.0中被删除,因此我认为这不会产生问题。是和否。问题是短名称之间存在冲突。发生异常是因为存在类型。DocumentAnnotation具有文档的别名。因此,该脚本无法解析给定字符串“Document”的类型。如果存在包含不同版本的其他lib,是否可以检查依赖关系?您建议的更改现在运行良好。我将检查其他lib依赖关系