2016-09-28 1 views
1

많은 제목에서 제목 수준 (수준 1, 수준 2, 수준 3)에 태그를 지정하려고합니다. 글꼴 크기 사용 HTML에서 오는 정보. 우선은 Uima Ruta 제목 수준

"<span style=\"font-family:\'(.+?)\'"->1=fontfamily; 
"<span style=\"font-family(.+?)font-size:\'(.+?)\'"->2=font size; 

지금은 모든 글꼴 크기 정보를 이용하여 제목 크기와 그것을 기반으로 태그 제목 수준을 비교해야

같은 정규식을 사용하여 글꼴 크기를했다.

입력 :

<span style="font-family:'Times New Roman'; font-size:'14pt'"><span class="">MATERIALS AND METHODS</span></span> 
<span style="font-family:'Times New Roman'; font-size:'12pt'"><span class="">Chemicals</span></span> 
<span style="font-family:'Times New Roman'; font-size:'10pt'"><span class="">HILIC-MS Profiling of Metabolites</span> 

답변

0

당신은 (UIMA 루타 2.5.0 테스트)이 같은 작업을 수행 할 수 있습니다

ENGINE utils.HtmlAnnotator; 
TYPESYSTEM utils.HtmlTypeSystem; 

CONFIGURE(HtmlAnnotator, "onlyContent" = false); 
EXEC(HtmlAnnotator, {TAG}); 

DECLARE FontFamily; 
DECLARE FontSize; 
DECLARE Heading (INT level, INT size); 

"<span style=\"font-family:\'(.+?)\'"->1=FontFamily; 
"<span style=\"font-family(.+?)font-size:\'(\\d+.+?)\'"->2=FontSize; 

INT size; 
RETAINTYPE(MARKUP); 

SPAN{-PARTOF(Heading) -> Heading, Heading.size = size} 
    <-{FontFamily # FontSize{PARSE(size)};}; 
# h:Heading{-> size = h.size}; 
h:Heading{h.size == size -> Heading.level = 1}; 
h1:Heading{h1.level != 0} # h2:Heading.level == 0 
    {h1.size>h2.size -> h2.level = (h1.level + 1)}; 
h1:Heading{h1.level != 0} # h2:Heading.level == 0 
    {h1.size==h2.size -> h2.level = h1.level}; 
RETAINTYPE; 

이 규칙은 다소 유효한 HTML을 필요로 HtmlAnnotator를 사용합니다. 문서를 작동 시키려면 <html> 태그를 문서에 추가해야했습니다.

이 규칙은 최적이 아니라 출발점 일뿐입니다. 사용해야하는 실제 규칙은 주로 유스 케이스와 얼마나 강력한 지에 달려 있습니다.

면책 조항 : 나는

UIMA 루타의 개발자입니다
관련 문제