2014-03-28 6 views
-1

방금 ​​Ruta로 시작했고 다음과 같이 작동하는 규칙을 작성하고 싶습니다.간단한 Ruta 어노 테이터

XYZ를 클릭하면 이전에 입력 한 텍스트를 Annotator CompanyDetails에 할당합니다. 예를 들어

는 :

이 문장을 다음과 우리가 관심있는 문구를 포함하는 단락이다. LL, Inc. 델라웨어 유한 책임 회사 (XYZ).

스크립트를 실행 한 후 주석 자에 CompanyDetails 문자열을 포함합니다 : LL을 사 델라웨어 유한 책임 회사

+0

안녕 르노를 지금까지, 나는 몇 가지의 시도 트릭은 작동하지 않았고 다음과 같은 것을 시도하고 있습니다. AnnotatorAtTheBeginingOfParagraph PM? 어떤 +? {-> MARK (회사 세부 정보)} 회사 상세 정보; 그러나 이것이 그렇게 단순하지 않기 때문에 내가 계속하기 전에 더 많은 경험있는 사람들로부터 듣고 싶습니다. – user3471682

+0

답변에 예제를 추가했습니다.이 예제는 문장을 말하며 단락을 가리 킵니다. 그러나 단락이 필요한 경우 쉽게 교환 할 수 있어야합니다. 모범적 인 규칙의 구문에 문제가 있으면 알려주십시오. 오히려 얽힌 요소를 사용하고 너무 많은 의견을 추가하지 않았습니다. –

답변

0

당신이 주석 자 'CompanyDetails'에 대해 이야기 할 때 당신이 유형 'CompanyDetails'의 주석을 의미한다고 가정 .

이 작업을 해결할 수있는 많은 방법이 많이 있습니다. 다음은 도우미 규칙을 적용한 한 예입니다.

DECLARE Annotation CompanyDetails (STRING context); 
DECLARE Sentence, XYZ; 

// just to get a running example with simple sentences 
PERIOD #{-> Sentence} PERIOD; 
#{-> Sentence} PERIOD; 
"XYZ" -> XYZ; // should be done in a dictionary 

// the actual rule 
STRING s; 
Sentence{-> MATCHEDTEXT(s)}->{XYZ{-> CREATE(CompanyDetails, "context" = s)};}; 

이 예에서는 전체 문장의 문자열을 지형지 물에 저장합니다. 규칙은 모든 문장에서 일치하고 변수의 '에 덮어 쓴 텍스트를 저장합니다.' 그런 다음 문장의 내용을 조사합니다. 인라인 된 규칙은 XYZ에서 일치를 시도하고 유형이 CompanyDetails 인 주석을 만들고 변수의 값을 context이라는 지형지 물에 할당합니다. 차라리 getCoveredText()로 문자열을 얻을 수 있기 때문에 문자열 대신 주석을 저장하고 싶습니다. 그냥 문장에서 XYZ 전에 토큰을 필요로하는 경우, 당신은 (대신 문자열이 시간의 주석에) 그런 일 할 수있는 :

DECLARE Annotation CompanyDetails (Annotation context); 
DECLARE Sentence, XYZ, Context; 

// just to get a running example with simple sentences 
PERIOD #{-> Sentence} PERIOD; 
#{-> Sentence} PERIOD; 
"XYZ" -> XYZ; 

// the actual rule 
Sentence->{ #{-> Context} SPECIAL? @XYZ{-> GATHER(CompanyDetails, "context" = 1)};}; 
+0

예제를 실행할 때 UIMA Ruta 2.2.0을 사용했지만 차이가 없어야합니다. –

+0

안녕하세요. Peter, 나는 둘 다 시도해 보았습니다. 고맙습니다! – user3471682