Я обрабатываю текст с UIMA 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)};
Я считаю, проблема заключается в том, что при сопоставлении сравнения глобальная переменная еще не была инициализирована. Есть ли способ в Руте сравнить особенность первой согласованной аннотации с особенностью последней согласованной аннотации внутри того же правила?
Спасибо за ваш быстрый ответ. Собственно, я тоже это пробовал. Работает ли он только в UIMA Ruta 2.5.0 (еще не обновлен)? При использовании Ruta, встроенного в AE, требуется ли какая-то конфигурация? Я проверю это завтра на работе. – Santam
Да, он работает только в UIMA Ruta 2.5.0, который поддерживает функции epxressions на выражения меток типа 'p1.name'. –
Я провел некоторое тестирование сейчас, и, к сожалению, это не сработало. После обновления плагинов eclipse я получаю «IllegalArgumentException» с сообщением «Пропущенные аргументы недействительны!» при запуске Ruta в тестовом проекте с использованием инструмента Ruta Workbench. В проекте, в котором запущен Ruta egine, набор правил, который хорошо работает под Ruta 2.4.0, генерирует «RutaParseRuntimeException» под Ruta 2.5.0. Я использую Eclipse Mars.2 Release (4.5.2), Ruta Workbench 2.5.0 и UIMA Tools и runtime 2.9.0. Есть ли какие-то проблемы, о которых я должен знать? – Santam