2016-08-27 7 views
1

Если я использую тег P (из Html Annotator) как PASSAGE.I хочу игнорировать разметку из аннотации.Хотите удалить разметку из аннотации-UIMA RUTA

SCRIPT:

//------------------------------------------------------------------- 
// SPECIAL SQUARE HYPHEN PARENTHESIS 
//------------------------------------------------------------------- 
DECLARE LParen, RParen; 
SPECIAL{REGEXP("[(]") -> MARK(LParen)}; 
SPECIAL{REGEXP("[)]") -> MARK(RParen)}; 

DECLARE LSQParen, RSQParen; 
SPECIAL{REGEXP("[\\[]") -> MARK(LSQParen)}; 
SPECIAL{REGEXP("[\\]]") -> MARK(RSQParen)}; 

DECLARE LANGLEBRACKET,RANGLEBRACKET; 
SPECIAL{REGEXP("<")->MARK(LANGLEBRACKET)}; 
AMP{REGEXP("&lt;")->MARK(LANGLEBRACKET)}; 
SPECIAL{REGEXP(">")->MARK(RANGLEBRACKET)}; 
AMP{REGEXP("&gt;")->MARK(RANGLEBRACKET)}; 

DECLARE LBracket,RBracket; 

(LParen|LSQParen|LANGLEBRACKET){->MARK(LBracket)}; 
(RParen|RSQParen|RANGLEBRACKET){->MARK(RBracket)}; 


DECLARE PASSAGE,TESTPASSAGE; 

     "<a name=\"para(.+?)\">(.*?)</a>"->2=PASSAGE; 

RETAINTYPE(WS); // or RETAINTYPE(SPACE, BREAK,...); 
PASSAGE{-> TRIM(WS)}; 
RETAINTYPE; 

    PASSAGE{->MARK(TESTPASSAGE)}; 



DECLARE TagContent,PassageFirstToken,InitialTag; 
LBracket ANY+? RBracket{-PARTOF(TagContent)->MARK(TagContent,1,3)}; 


BLOCK(foreach)PASSAGE{} 
{ 
Document{->MARKFIRST(PassageFirstToken)}; 
} 
TagContent{CONTAINS(PassageFirstToken),-PARTOF(InitialTag)->MARK(InitialTag)}; 


BLOCK(foreach)PASSAGE{} 
{ 
InitialTag ANY+{->SHIFT(PASSAGE,2,2)}; 

} 

Пример ввода:

<p class="Normal"><a name="para1"><h1><b>On the Insert tab, the galleries include items that are designed to coordinate with the overall look of your document. </b></a></p> 

<p class="Normal"><a name="para2"><aus>On the Insert tab, the galleries include items that are designed to coordinate with the overall look of your document.</a></p> 

<p class="Normal"><a name="para3">On the Insert tab, the galleries include items that are designed to coordinate with the overall look of your document.</a></p> 

<p class="Normal"><a name="para4">On the Insert tab, the galleries include items that are designed to coordinate with the overall look of your document. </a></p> 

<p class="Normal"><a name="para5">On the Insert tab, the <span>galleries</span> include items that are designed to coordinate with the overall look of your document.</a></p> 

ПРОХОД (5) И TESTPASSAGE (2) .Why TESTPASSAGE уменьшается? И InitialTag не помечен.

enter image description here Я приложил выходных аннотации изображения

+0

что-то LKE 'FilterType (P);'? –

+0

Можете ли вы предоставить действующий html, чтобы сделать пример воспроизводимым? HtmlAnnotaotr выдает исключения при попытке его проанализировать. –

ответ

2

При воспроизведении данного примера, я получаю 5 Пассаж аннотации и 3 TESTPASSAGE аннотаций (последние три ОТРЫВКА аннотаций). Остальные две аннотации PASSAGE не аннотируются с помощью TESTPASSAGE, поскольку они начинаются с аннотации MARKUP, которая по умолчанию не отображается, и делает полную аннотацию невидимой. Чтобы избежать этой проблемы, вы можете сделать MARKUP видимыми или обрезать надписи из аннотаций PASSAGE (это на самом деле главный вопрос?). Просто продлить вам правила для действия TRIM:

RETAINTYPE(WS, MARKUP); 
PASSAGE{-> TRIM(WS, MARKUP)}; 
RETAINTYPE; 

Там нет InitialTag аннотаций, потому что нет TagContent аннотаций, потому что нет LBracket аннотаций в примере.

Btw, вы могли бы переписать некоторые правила:

PASSAGE{->MARKFIRST(PassageFirstToken)}; 

(LBracket # RBracket){-PARTOF(TagContent)-> TagContent}; 

ОТКАЗ: Я разработчик UIMA Ruta

2
//------------------------------------------------------------------- 
// SPECIAL SQUARE HYPHEN PARENTHESIS 
//------------------------------------------------------------------- 
DECLARE LParen, RParen; 
SPECIAL{REGEXP("[(]") -> MARK(LParen)}; 
SPECIAL{REGEXP("[)]") -> MARK(RParen)}; 

DECLARE LSQParen, RSQParen; 
SPECIAL{REGEXP("[\\[]") -> MARK(LSQParen)}; 
SPECIAL{REGEXP("[\\]]") -> MARK(RSQParen)}; 

DECLARE LANGLEBRACKET,RANGLEBRACKET; 
SPECIAL{REGEXP("<")->MARK(LANGLEBRACKET)}; 
AMP{REGEXP("&lt;")->MARK(LANGLEBRACKET)}; 
SPECIAL{REGEXP(">")->MARK(RANGLEBRACKET)}; 
AMP{REGEXP("&gt;")->MARK(RANGLEBRACKET)}; 

DECLARE LBracket,RBracket; 

(LParen|LSQParen|LANGLEBRACKET){->MARK(LBracket)}; 
(RParen|RSQParen|RANGLEBRACKET){->MARK(RBracket)}; 


DECLARE PASSAGE,TESTPASSAGE; 

     "<a name=\"para(.+?)\">(.*?)</a>"->2=PASSAGE; 

RETAINTYPE(WS); // or RETAINTYPE(SPACE, BREAK,...); 
PASSAGE{-> TRIM(WS)}; 
RETAINTYPE; 

    PASSAGE{->MARK(TESTPASSAGE)}; 



DECLARE TagContent,PassageFirstToken,InitialTag; 
LBracket ANY+? RBracket{-PARTOF(TagContent)->MARK(TagContent,1,3)}; 


BLOCK(foreach)PASSAGE{} 
{ 
Document{->MARKFIRST(PassageFirstToken)}; 
} 
TagContent{CONTAINS(PassageFirstToken),-PARTOF(InitialTag)->MARK(InitialTag)}; 


BLOCK(foreach)PASSAGE{} 
{ 
InitialTag ANY+{->SHIFT(PASSAGE,2,2)}; 

} 
+0

Мне нужно игнорировать InitialTags от PASSAGE. –

+0

Если у меня есть тег span между PASSAGE.Can, я игнорирую теги span из аннотации вывода. Eg: Некоторый текст Привет некоторый текст. Вывод: некоторый текст Привет, какой-то текст –