如何在门口建立Jape规则

时间:2015-01-19 04:27:12

标签: gate

我需要建立一个规则,其中Lhs检查b中的第一个字符是否在b中然后检查整个单词而没有在查找中找到的第一个字符

1 个答案:

答案 0 :(得分:1)

这是类似于您想要的示例代码(从https://gate.ac.uk/wiki/jape-repository/strings.html#section-1.复制)。您可以阅读更多内容并获得确切的解决方案:

Rule:GetMobile
(
 {Phone}
):tag
-->
:tag{

// get the offsets
 Long phoneStart = tagAnnots.firstNode().getOffset();
 Long phoneEnd = tagAnnots.lastNode().getOffset();

// check the number is longer than or equal to 2 characters (just in case)
 if(phoneEnd - phoneStart >= 2) {
   try {
     String firstTwoChars = doc.getContent()
         .getContent(tagAnnots.firstNode().getOffset(),
                     tagAnnots.firstNode().getOffset() + 2).toString();

// check it matches 07
     if("07".equals(firstTwoChars)) {
       // create the new annotation

    gate.FeatureMap features = Factory.newFeatureMap();
    features.put("kind", "mobile");
    outputAS.add(tagAS.firstNode(),
                           tagAS.lastNode(), "Phone", features);
     }
   }
   catch(InvalidOffsetException e) {
     // not possible
     throw new LuckyException("Invalid offset from annotation");
   }
 }
}

以下是您可以阅读的地方:

https://gate.ac.uk/wiki/jape-repository/

https://gate.ac.uk/sale/talks/gate-course-jun14/module-1-jape/module-1-jape.pdf