1

到目前为止,我一直在通过创建 AnalysisEngine 和 CAS 并处理引擎从 maven 项目中运行 ruta 脚本。为此,我已将所有脚本和描述符文件(Engine 和 TypeSystem)放入 maven 项目的 scr/main/resources 文件夹中。

现在我想将脚本和 TypeSystem 文件放在外部路径中,并将路径动态传递给运行脚本的 java 代码。有可能吗?如果是这样,如何?

我只是将文件(脚本和描述符)放在外部路径中,并通过新路径来实例化 AnalysisEngine,如下所示;

final AnalysisEngine engine = AnalysisEngineFactory.createEngine("home/admin/Desktop/TEST_ScriptFolder/com/textjuicer/ruta/date/Dazzle_ChapRef_UpdatedEngine");

错误

org.apache.uima.util.InvalidXMLException:无法解析导入。在类路径或数据路径中找不到名为“home/admin/Desktop/TEST_ScriptFolder/com/textjuicer/ruta/date/Dazzle_ChapRef_UpdatedEngine.xml”的文件。(描述符:)在 org.apache.uima.fit.factory.AnalysisEngineFactory.createEngineDescription(AnalysisEngineFactory.java:869) 在 org.apache.uima.fit.factory(AnalysisEngineFactory.java:869) 在 org.apache.uima.resource.metadata.impl.Import_impl.findAbsoluteUrl(Import_impl.java:117) 在 org .apache.uima.fit.factory.AnalysisEngineFactory.createEngine(AnalysisEngineFactory.java:107) 在 com.textjuicer.ruta.date.ArtifactAnnotator.getAllAnnotations(ArtifactAnnotator.java:93) 在 ApplyingStyle.XmiTransformer.parseXMI(XmiTransformer.java:33) ) 在 ApplyingStyle.ApplyStyle.applyStyleOnDocx(ApplyStyle.java:76)

4

1 回答 1

1

有两层:

  1. RutaEngine 需要找到脚本/资源/描述符
  2. UIMA 需要能够解析描述符的导入

Ruta 中的资源查找有两个阶段,它在配置参数中指定的绝对路径中搜索它们。如果找不到资源,它会在类路径中搜索它。所以你需要设置配置参数:脚本位于scriptPaths,描述符位于 ,descriptorPaths词表位于resourcePaths。有关详细信息,请参阅文档

描述符中的导入问题可以通过在 UIMA ResourceManager 中设置数据路径或将导入更改为“位置”而不是“名称”来解决。数据路径可用作类路径的替代品。如果 Ruta 描述在 ruta-maven-plugin 中指定,则使用按位置导入。

免责声明:我是 UIMA Ruta 的开发人员

于 2016-06-13T08:23:13.247 回答