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