2016-09-28 3 views
1

Я пытаюсь пометить уровни заголовков (уровень 1, уровень 2, уровень 3) из многих заголовков. Использование размера шрифта Информация, поступающая из HTML. Сначала я взял размер шрифта, используя регулярные выражения, какUima Ruta Уровни управления

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

Теперь мне нужно сравнить все эти направляющихся размеры, используя FONTSIZE информации и уровни тегов заголовка на его основе.

Вход:

<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 Ruta 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; 

Эти правила используют HtmlAnnotator, который требует несколько действительный HTML. Мне нужно было добавить в документ <html> теги, чтобы заставить его работать.

Эти правила не являются оптимальными, а всего лишь отправной точкой. Фактические правила, которые вы должны использовать, в основном зависят от варианта использования и от того, насколько они надежны.

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

Смежные вопросы