2017-02-17 12 views
1

Я смог с успехом использовать Ruta для создания аннотаций с помощью RegExpRule и REGEXP. Однако я столкнулся с небольшим блоком. У меня есть аннотации, созданные другим движком, который назначает функции String, которые являются по существу комментариями.Совместимость UIMA Ruta с использованием регулярного выражения

STRING featureComment; 
OtherEngineAnnotation{GETFEATURE("comment", featureComment)}; 
//featureComment = "some comment like text" 

Поскольку значения функции могут не произойти в документе я не могу использовать RegExpRules аннотировать значение признака. Я хотел, чтобы иметь возможность обыскать featureComment, используя в качестве примера регулярного выражения:

like\stext$ 

Основываясь на моем чтении документации это не представляется возможным. Мне было интересно, есть ли другой способ сделать это?

По существу можно проверить шаблон регулярного выражения на Ruta STRING?

ответ

1

Условие REGEXP может также работать на переменных или значений признаков, необязательный первый аргумент Правило может выглядеть следующим образом:

OtherEngineAnnotation{REGEXP(OtherEngineAnnotation.comment, "like\\stext$")}; 

или

o:OtherEngineAnnotation{REGEXP(o.comment, "like\\stext$")}; 

Пожалуйста, обратите внимание на verison из UIMA Рута. Вам нужно, по крайней мере, UIMA Ruta 2.5.0.

ОТКАЗ: Я разработчик UIMA Ruta

+0

Я обнаружил, что это не будет соответствовать на примере, когда значение функции является «некоторый комментарий как текст», так как он не является полное совпадение почти так, как если бы '^' и '$' добавлялись к шаблону регулярного выражения. Есть ли способ обойти это, помимо добавления '. *' К шаблону? – beyondTheGatesOfDoom

+1

К сожалению, нет. REGEXP использует только 'matches()'. Пока нет 'find()'. –