Vaisakh
Vaisakh

Reputation: 1088

JAPE rule Sentence contains multiple cases

How can i check whether a sentence contain combinations? For example consider sentence. John appointed as new CEO for google. I need to write a rule to check whether sentence contains < 'new' + 'Jobtitle' >. How can i achieve this. I tried following. I need to check is there 'new' before word .

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

Upvotes: 3

Views: 917

Answers (1)

Yasen
Yasen

Reputation: 1683

One way to handle this is to revert it. Focus on the sequence you need and then get the covering Sentence:

(
  {Token@string == "new"}
  {Lookup.majorType = "jobtitle"}
):newJT

You should check this edge when the Sentence starts after "new", like this:

new

CEO

You can use something like this:

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

And then get the sentence (if you really need it) in the java RHS:

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

Upvotes: 2

Related Questions