GATE JAPE规则注释另一个

时间:2017-02-26 12:07:48

标签: java regex gate

我正在尝试在JAPE中创建规则。 ANNIE正在识别电子邮件ID。我正在尝试识别所有标记为电子邮件ID的子字符串。

Ex:以下是具有电子邮件ID(abcd.xyz@gmail.com)和其他一些文本(“cd x”)的文档示例。 ANNIE NE Transducer将电子邮件ID标记为kind=email我正在尝试识别所有其他令牌,这些令牌是电子邮件ID的子字符串。此处cdx是标记,它们是电子邮件ID标记的子字符串。令牌可以位于电子邮件ID之外。

abcd.xyz@gmail.com ....
.....
cd x ....
....

任何解决方案?

1 个答案:

答案 0 :(得分:0)

好的,在这一方面取得了一些进展。这里的挑战是如何使用一个注释的文本来查找另一个注释。这是我的.jape文件代码

Imports: {
import my.pkg.*;
import static gate.Utils.*;
}

Phase: EmailID 
Input: Address 
Options: control = appelt  

Rule: EmailIDRule
(
{Address.kind==email}
):email
-->
:email{
    String email=stringFor(doc, emailAnnots).toString();
    doc.getFeatures().put("emilID",email);
}  

Phase: NameFromEmailID 
Input: Token SpaceToken Split
Options: control = appelt  

Rule: NameFromEmailID
(
(
{Token.category==NNP}
({SpaceToken})[1]
)[1,3]
):nam
-->
:nam{
String email = doc.getFeatures().get("emilID").toString();
String content=stringFor(doc, namAnnots).toString();
if(content!=null)
{
////write code to do wat ever u want and add features to annotation             
}
}