2017-02-26 82 views
0

我試圖在JAPE中創建規則。 ANNIE正在確定電子郵件ID。我試圖識別所有的標記,它們是電子郵件ID的子字符串。例如:GATE JAPE規則註釋另一個包含的令牌

例如:以下是具有電子郵件ID([email protected])和其他文本(「cd x」)的文檔示例。 ANNIE NE Transducer將電子郵件ID標記爲kind=email我試圖識別所有其他標記,它們是電子郵件ID的子字符串。這裏cdx是電子郵件id令牌的子串的令牌。令牌可以位於電子郵件ID之外。

[email protected] .... 
..... 
cd x .... 
.... 

任何解決方案?

+0

你的問題不清楚給我。也許包括電子郵件中文本的快照,然後告訴我們你想要匹配什麼。 –

+0

進行了編輯。現在清楚了嗎? –

+0

因此,在這種情況下,'abcd.xyz @ gmail.com'是_input_,最終目標是標記該電子郵件地址的_substrings_的所有字符串爲_output_? –

回答

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    
} 
}