2016-07-01 8 views
1

Ich habe angefangen UIMA Ruta zu lernen und habe einige Probleme in der Aufgabe. Ich muss eine einfache Regel hinzufügen, die eine neue kombinierte Annotation namens FLName erstellt, die aus Annotationen FirstName und LastName besteht, die jedes kyrillisch geschriebene Wort transliteriert. Hier ist mein Code, könnte jemand finden, wo ich falsch liege?UIMA Ruta Wie macht man Regeln, die neue kombinierte Annotationen erzeugen?

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)}; 

Ich versuche, so etwas wie diese enter image description here

Aber Ergebnis ist dieses enter image description here

Antwort

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

Zusätzlich zu der richtigen Antwort zu tun, hier sind die typischen Optionen komplexe Anmerkungen erstellen :

(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}; 

DISCLAIMER: Ich bin ein Entwickler von UIMA Ruta

Verwandte Themen