2014-09-04 3 views
3

문장에 조합이 포함되어 있는지 여부를 어떻게 확인할 수 있습니까? 예를 들어 문장을 고려해보십시오. John은 Google의 새로운 CEO로 임명되었습니다. 문장에 < 'new'+ 'Jobtitle'>이 포함되어 있는지 확인하는 규칙을 작성해야합니다. 어떻게해야합니까? 나는 다음을 시도했다. 나는 낱말의 앞에 "새로운"가다는 것을 검사 할 필요가있다.JAPE 규칙 문장에 여러 사례가 포함되어 있습니다.

Rule: CustomRules 
(
    { 
     Sentence contains {Lookup.majorType == "organization"}, 
     Sentence contains {Lookup.majorType == "jobtitle"}, 
     Sentence contains {Lookup.majorType == "person_first"} 
    } 
) 
+0

다음 질문을 참조하십시오. JAPE patern이 한 문장 내에서만 일치하도록 제한합니다. 그런 다음 다른 JAPE를 사용하여 대응하는 문장을 선택할 수 있습니다. http://stackoverflow.com/questions/29198611/jape-file-to-find-the-pattern-within-a-sentence – dedek

답변

2

이 문제를 해결하는 한 가지 방법은 되돌리기입니다. 당신이 필요로하는 순서에 초점을 맞춘 후 커버 문장 수 :

new 

CEO 

당신이 같은 것을 사용할 수 있습니다 문장은 다음과 같이 한 후 "새"를 시작할 때 당신이 가장자리를 확인해야합니다

(
    {[email protected] == "new"} 
    {Lookup.majorType = "jobtitle"} 
):newJT 

을 : 자바 RHS에서

{Token ... } 
{!Sentence, Lookup.majorType ...} 

그리고 (당신이 정말로 필요하면) 다음 문장을 얻을 :

long end = newJTAnnots.lastNode().getOffset(); 
long start = newJTAnnots.firstNode().getOffset(); 
AnnotationSet sentences = inputAS.get("Sentence", start, end);