1
我正在使用UIMA Ruta处理文本,并希望删除重复的注释。如果某些特征(例如名称)具有相同的值,我认为注释是重复的。我曾经失败尝试了不同的方法,但我希望下面的例子将给出什么,我试图做一个想法:如何比较Ruta规则中两个不同注释的特征?
STRING nameVal;
Person {-> GETFEATURE("name", nameVal)}
ANY+?
Person.name == nameVal {-> UNMARK(Person)};
我自己也尝试这种变化:
STRING nameVal;
Person {-> GETFEATURE("name", nameVal)}
ANY+?
Person {-> UNMARK(Person)} <- { Person.name == nameVal; };
如果我更换变量nameVal与文字(见下面的例子),规则运作良好,似乎接近我想要的,但不完全。
Person
ANY+?
Person.name == "Mustermann" {-> UNMARK(Person)};
我认为,问题是,当比较评估时,全局变量尚未初始化。在Ruta中有没有办法将第一个匹配注释的特征与同一规则中最后一个匹配注释的特征进行比较?
的感谢您的快速解答开发者。其实,我也试过了。它只在UIMA Ruta 2.5.0中工作吗(我还没有升级)?将Ruta嵌入AE中时,是否需要某些配置?我明天将在工作中检查出来。 – Santam
是的,它只适用于UIMA Ruta 2.5.0,它支持像p1.name这样的标签表达式上的功能epxressions。 –
我现在做了一些测试,不幸的是它没有工作。在更新eclipse插件之后,我得到一个'IllegalArgumentException',并且提示“Passed arguments are invalid!”当使用Ruta Workbench在测试项目上运行Ruta时。在一个嵌入了Ruta egine的项目中,一组在Ruta 2.4.0下运行良好的规则会在Ruta 2.5.0下生成一个“RutaParseRuntimeException”。我正在使用Eclipse Mars.2 Release(4.5.2),Ruta Workbench 2.5.0和UIMA Tools以及runtime 2.9.0。我应该注意哪些问题? – Santam