0

我正在尝试重命名来自 HTML 转换的 LI 和 TABLE Like

    Document{-> RETAINTYPE(MARKUP)};
    LI{->MARK(List)}; 
    Document{-> RETAINTYPE};

没关系。但是当我对表格使用相同的脚本时

   DECLARE TableContent;
   Document{-> RETAINTYPE(MARKUP)};
   TABLE{->MARK(TableContent)};
   Document{-> RETAINTYPE};

它没有标记

输入文件

<table class="IM-Core-Table TableOverride-1" id="t1" border="1">

<colgroup><col /></colgroup>
<colgroup><col /></colgroup>
<colgroup><col /></colgroup>
<colgroup><col /></colgroup><tbody>
<tr class="IM-Core-Table _idGenTableRowColumn-1">
<td valign="top" style=""><p class="MsoNormal"><aname="para201">ICD-10</a></p>
</td>
<td valign="top" style=""><p class="MsoNormal"><a name="para202">Males</a></p>
</td>
<td valign="top" style=""><p class="MsoNormal"><a name="para203">Females</a></p>
</td>
<td valign="top" style=""><p class="MsoNormal"><a name="para204">Total</a></p>
</td>
</tr>
<tr class="IM-Core-Table _idGenTableRowColumn-1">

情绪障碍(F30-F39)

2

10

12

神经质、压力相关和躯体形式障碍(F40-F48)

0

5

5

与社会环境有关的问题(Z60)

0

2

2

</tbody>

</table>
4

1 回答 1

0

问题是 html 包含空格和换行符。默认情况下,HtmlAnnotator 为 html 元素的内容创建注释。这意味着,如果在开始标记之后有换行符,则创建的注释从换行符的偏移处开始。默认情况下,空格和标记等换行符是不可见的,以不可见的东西开头的所有内容也是不可见的。最简单的解决方案是让它们暂时可见并修剪任何不需要/不可见跨度的开始/结束,例如空格和换行符。

这是我用来测试的脚本:

TYPESYSTEM utils.HtmlTypeSystem;
ENGINE utils.HtmlAnnotator;
EXEC(HtmlAnnotator, {TAG});

DECLARE TableContent;
RETAINTYPE(MARKUP, WS);
TABLE{-> TRIM(WS)};
TABLE{-> TableContent};
RETAINTYPE;

当我使用 HtmlAnnotator 时,我经常这样做:

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

免责声明:我是 UIMA Ruta 的开发人员

于 2016-08-23T13:36:43.357 回答