JAPE规则句子包含多个案例

时间:2014-09-04 04:38:32

标签: text nlp grammar logical-operators gate

如何检查句子是否包含组合?例如,考虑句子。 John被任命为google的新CEO。 我需要写一个规则来检查句子是否包含< 'new'+'Jobtitle'>。 我怎样才能做到这一点。我试过跟随。我需要检查之前是否有'新'。

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

1 个答案:

答案 0 :(得分:2)

处理此问题的一种方法是还原它。专注于你需要的序列,然后得到覆盖句子:

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

当句子在“新”之后开始时,你应该检查这个边缘,如下所示:

new

CEO

您可以使用以下内容:

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

然后在java RHS中获取句子(如果你真的需要它):

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