1

多くの見出しから見出しレベル (レベル 1、レベル 2、レベル 3) にタグを付けようとしています。HTML からのフォント サイズ情報を使用します。最初に、次のような正規表現を使用してフォントサイズを取得しました

"<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>
4

1 に答える 1

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;

これらのルールは、ある程度有効な html を必要とする HtmlAnnotator を使用します。<html>ドキュメントを機能させるには、ドキュメントにタグを追加する必要がありました。

これらのルールは最適ではなく、出発点に過ぎません。使用する必要がある実際のルールは、主にユースケースと、必要な堅牢性によって異なります。

免責事項: 私は UIMA Ruta の開発者です

于 2016-09-30T11:28:24.707 に答える