我正在尝试在JAPE中创建规则。 ANNIE正在识别电子邮件ID。我正在尝试识别所有标记为电子邮件ID的子字符串。
Ex:以下是具有电子邮件ID(abcd.xyz@gmail.com)和其他一些文本(“cd x”)的文档示例。 ANNIE NE Transducer将电子邮件ID标记为kind=email
我正在尝试识别所有其他令牌,这些令牌是电子邮件ID的子字符串。此处cd
和x
是标记,它们是电子邮件ID标记的子字符串。令牌可以位于电子邮件ID之外。
abcd.xyz@gmail.com ....
.....
cd x ....
....
任何解决方案?
答案 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
}
}