2016-07-01 4 views
1

Я начал изучать UIMA Ruta и испытываю некоторые проблемы в задаче. Мне нужно добавить простое правило, которое создаст новую объединенную аннотацию под названием FLName, которая будет состоять из аннотаций FirstName и LastName, которые транслитерируют каждое написанное на кириллическом языке. Вот мой код, может ли кто-нибудь найти, где я ошибаюсь?UIMA Ruta Как создать правило, которое создаст новую комбинированную аннотацию?

Main 
Document {-> CALL(TranslitCyrillic)}; 
Document {-> CALL(AnnotatePerson)}; 

Symbol {-> UNMARK(Symbol)}; 
Document {-> RETAINTYPE(SPACE)}; 
ALL {-> UNMARK(ALL)}; 

AnnotatePerson 
DECLARE Annotation FirstName (STRING first_name); 
DECLARE Annotation LastName (STRING last_name); 
DECLARE Annotation FLName(STRING first_name, STRING last_name); 

//in this rule trouble 
Word {FEATURE("translit", "beishor"), FEATURE("translit", "bishop") -> CREATE(FLName), FILL(FirstName, "first_name" = Word.translit), 
FILL(LastName, "last_name" = Word.translit)}; 


Word {FEATURE("translit", "beishor") -> CREATE(FirstName), FILL(FirstName, "first_name" = Word.translit)} 
Word {FEATURE("translit", "bishop") -> CREATE(LastName), FILL(LastName, "last_name" = Word.translit)}; 

Я пытаюсь сделать что-то вроде этого enter image description here

Но результата это enter image description here

ответ

1
Find the solution 
(FirstName # LastName){-> CREATE(FLName, "first_name" = FirstName, "last_name" = LastName)}; 
1

Дополнительно к правильному ответу, вот типичные варианты для создания сложных аннотаций :

(FirstName # LastName){-> CREATE(FLName, "first_name" = FirstName, "last_name" = LastName)}; 
FirstName # LastName{-> GATHER(FLName, "first_name" = 1, "last_name" = 3)}; 
(FirstName # LastName){-> FLName, FLName.first_name = FirstName, FLName.last_name = LastName}; 
(f:FirstName # l:LastName){-> FLName, FLName.first_name = f, FLName.last_name = l}; 

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я являюсь разработчиком UIMA Ruta

Смежные вопросы