我想在使用UIMA Ruta脚本添加和改进结果注释之前运行HeidelTime。我当然可以在Java的管道中按顺序运行它们,但是如果UIMA Ruta Workbench可以实现这一点会更方便。
根据我对UIMA Ruta Manual的理解,可以使用UIMAFIT
关键字添加外部分析引擎。我一直在寻找将HeidelTime独立JAR添加到 CLASSPATH 的方法,但我还是无法让UIMA Ruta Workbench检测到HeidelTime分析仪。
所以我的问题是:如何在UIMA Ruta Workbench的UIMA Ruta脚本中方便地包含HeidelTime?请注意,我是UIMA,UIMA Ruta和Eclipse的新手。
答案 0 :(得分:2)
首先是坏消息:你不能在UIMA Ruta中使用HeidelTime作为uimaFIT分析引擎,因为它不是uimaFIT组件。它实际上可以工作但在这种情况下不会因为HeidelTime的initialize()期间的默认值的硬性要求以及非字符串参数值的要求而失败。 UIMA Ruta不支持声明注入参数值。它看起来如下:
UIMAFIT de.unihd.dbs.uima.annotator.heideltime.HeidelTime(Language,german,Date,True,Time,True,Duration,True,Set,True,Temponym,False,Type,news);
好消息是您可以使用分析引擎描述HeidelTime.xml来使用HeidelTime。但是,HeidelTime有一些UIMA Ruta不支持的特殊版本,因此您需要进行一些自定义。
为了从Ruta脚本中调用HeidelTime,您需要做什么? 有几种选择。这是我用UIMA Ruta Workbench 2.6.1进行测试的那个:
<import location="HeidelTime_TypeSystem.xml"/>
导入脚本中的所有描述并调用分析引擎,例如,使用模拟的标记和句子:
ENGINE HeidelTime;
TYPESYSTEM HeidelTime_TypeSystem;
ANY{-> Token};// mock tokenizer and sentence splitter
(# PERIOD){-> Sentence};
(PERIOD # PERIOD){-> Sentence};
EXEC(HeidelTime, {Timex3});
t:Timex3{t.timexType == "DATE"}; // do something with a date
为了使其工作,您需要做的最后一件事是将HeidelTime添加到脚本的启动委托的类路径中。有两种选择:
我建议您选择1,因为无论如何您都需要说明。
总的来说,我当然建议在Java管道中调用HeidelTime,而不是在Ruta脚本中调用。
免责声明:我是UIMA Ruta的开发者