2016-07-01 2 views
1

나는 UIMA Ruta를 배우기 시작하고 작업에 어려움을 겪고있다. 나는 각각의 키릴 문자로 쓰여진 단어를 음역하는 FirstName과 LastName 어노테이션으로 구성 될 FLName이라는 새로운 결합 된 어노테이션을 작성하는 간단한 규칙을 추가해야합니다. 여기 내 코드가 있는데, 내가 어디서 잘못 찾았습니까? 나는이 enter image description hereUIMA 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

답변

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의 개발자입니다.

관련 문제