文档不明确,请使用以下之一:org.apache.uima.ruta.type.Document uima.tcas.DocumentAnnotation

问题描述 投票:0回答:2

我正在使用 Ruta 注释框架来注释输入文本,之前我使用类路径中的 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:当我运行批次而不是单个实例时,我遇到这个问题;

apache uima ruta
2个回答
0
投票

我对 NUM、SPECIAL 等预定义类型也有同样的问题。 我将 ruta 中的 bibtex-examples 集成到我的管道中,并尝试像答案 1 中那样调用 rutaEngine(只是 Year 脚本)。 我还使用 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 项目内部运行良好,但在我的“真实”项目之外则不然。


0
投票

@Gaurav 这个问题解决了吗,因为我仍然使用 3x 版本的 ruta?

© www.soinside.com 2019 - 2024. All rights reserved.