跳转到主要内容
我们已完成对 “Sick Note DE” 活动的配置,现准备为另一类病假条创建第二组 Extraction Rules。 荷兰和比利时的病假条结构与德国文档有很大差异。该类别中存在许多变体,因此这次我们无法使用 Fast Learning 活动来提取任何字段。这些文档包含一些德国病假条中没有的附加信息,因此在配置该活动时我们也将添加一些新字段。 我们将先提取所有文档上通用的数据,然后在数据表单中添加一些新字段。 无需关闭 Activity Editor 即可切换到另一项活动。单击技能名称旁的当前活动名称,并在下拉列表中选择 “Sick Note BE-NL”。选择集合中的第一份文档。

提取签发日期

这些文档中的日期可以使用 Date 元素轻松提取,因此这次我们将使用为此 field 自动创建的搜索元素。
  1. Fields 选项卡中打开 Manage Fields 对话框,并选择在此操作中要使用的 “Date” field。点击 Save
  2. 转到 Search Elements 选项卡。你会看到为 “Date” field 创建的 Date 类型搜索元素。它已自动映射到该 field。
  3. 创建名为 “IssueDateGroup” 的 Group 搜索元素。将该元素设为可选。
  4. 添加名为 “kwDate” 的 Static Text 元素,用于查找标签,以帮助我们定位实际日期。
  5. 此文档类包含荷兰语或法语文档,因此标签文本有多个选项。你可以在 Text to find 对话框中每行输入一个选项。第一行输入 “Date”,第二行输入 “Datum”。
  6. 关闭 Search for parts of words 选项。
  7. 将 “Date” 搜索元素拖放到该组中,并放在 “kwDate” 元素下方。
  8. 为 “Date” 元素指定搜索区域。 a. 删除在创建元素时自动添加的 Nearest to 关系。 b. 将 “kwDate” 元素选择为与我们要查找元素最近的元素。 c. 日期可能位于关键字的右侧或下方。请在 “kwDate” 元素下方指定搜索区域。 d. 搜索区域还应包含关键字所在的那一行。点击元素名称右侧的底部边界图标并选择 Top Boundary of Region。由于文本行可能不齐,请将 Below 值设为 -10,以便将搜索区域略微向该行上方扩展。
  9. 点击 Match 以确保日期定位正确。
搜索元素结构应如下所示: AD_Tutorial_BE_IssueDate_Structure

提取病假日期

我们将使用 Key value 元素来提取这些日期。Key value 元素允许同时搜索静态文本标签及其对应的值,但对值的位置和属性的变化容忍度不高。 在这些文档中,病假日期的格式是将日期的每个组成部分分置在表格的独立单元格中。各文档中这些单元格的位置可能不固定,但单元格之间的相对位置始终一致。我们不能指望表格单元格边界非常清晰,但仍将使用 Table Cell 元素,因为它支持模糊边界,并且如果我们决定在更多文档上训练该活动也会很方便。因此,我们将使用 Group 元素来组织搜索元素的层级结构。 注意:Table Cell 元素不仅适用于位于文档表格内的字段。如果需要从表单中提取数据,而内容位于类似的方框或类表格结构中,它也很有用。如果这些方框具有清晰的分隔线,Table Cell 元素将非常有效。
  1. 打开 Manage Fields 对话框,并向当前活动添加以下字段:
    • Start Date
    • End Date
    点击 Save
  2. 转到 Search Elements 选项卡,为开始日期的提取创建 Group 元素。为组内包含的元素设置以下参数:
ParameterValue
Group search element:
NameStartDateGroup
Static Text search element:
NamekwStartDate
Text to findVanaf / From, A partir du, Van
Search for parts of wordsDisabled
Table Cell search elements:
NameStartDateDay
Search patternNumber
Character count{1, 1, 3, 3}
Search for parts of wordsDisabled
Search areaBelow the “kwStartDate” element, nearest to “kwStartDate”
Table Cell search element:
NameStartDateMonth
Search patternNumber
Character count{1, 1, 3, 3}
Search for parts of wordsDisabled
Search areaBelow the “kwStartDate” element, right of “StartDateDay”, nearest to “StartDateDay”
Table Cell search element:
NameStartDateYear
Search patternNumber
Character count{2, 2, 4, 4}
Search for parts of wordsDisabled
Search areaBelow the “kwStartDate” element, right of “StartDateMonth”, nearest to “StartDateMonth”
注意:Table Cell 元素会按原样返回单元格中的文本。在本例中,搜索模式包含 Number,它仅识别数字,因此该元素返回的文本将是纯数字。
  1. 复制 “StartDateGroup” 元素并将其重命名为 “EndDateGroup”。
  2. 重命名该组的子元素:“kwStartDate” 为 “kwEndDate”、“StartDateDay” 为 “EndDateDay”、“StartDateMonth” 为 “EndDateMonth”、“StartDateYear” 为 “EndDateYear”。
  3. 将 “kwEndDate” 元素的查找文本更改为 “Tot en met / Till and incl., Jusqu’ au, Tot en met”。
  4. 为 “EndDateDay” 元素指定搜索区域。它应位于 “kwEndDate” 元素下方且与其最近。删除其他关联。
  5. 打开 Manage Fields 对话框,并添加一个名为 “Start Date Composed” 的 Data Composition Field。将以下元素映射到字段:
    • “StartDateDay” 到 Day
    • “StartDateMonth” 到 Month
    • “StartDateYear” 到 Year
    点击 Save
  6. 创建一个名为 “End Date Composed” 的 Data Composition Field。将以下元素映射到字段:
    • “EndDateDay” 到 Day
    • “EndDateMonth” 到 Month
    • “EndDateYear” 到 Year
    点击 Save
  7. 将 “Start Date Composed” 和 “End Date Composed” 数据组合字段映射到 “Start Date” 和 “End Date” 字段。
搜索元素结构如下所示: AD_Tutorial_BE_Dates_Structure

提取病假单类型

我们将与处理德文文档时相同,使用勾选框来提取病假单的类型。
  1. 打开 Fields 选项卡中的 Manage Fields 对话框,启用 “Type of Sick Note” 勾选框组。启用组内的 “Primary” 和 “Secondary” 勾选框以用于当前活动。点击 Save
  2. 构建一个与德文文档类似的结构,但请注意,在荷兰和比利时的文档中,标签(勾选框旁的文本)位于前面。此类组中子元素的顺序很重要。 a. 创建名为 “TypeOfSickNoteGroup” 的 Group 元素。 b. 复制该组并重命名为 “PrimaryGroup”,将其放入 “TypeOfSickNoteGroup” 中。 c. 向 “PrimaryGroup” 组中添加名为 “kwCheckmark” 的 Static Text 元素。 d. 将要查找的文本设置为 “eerste / Primary, première, primair”。
注意: 在这些文档中,勾选框旁的文本位于勾选框左侧,因此将搜索区域设置在其左侧,而不是右侧。 根据下表配置其余元素:
ParameterValue
Static Text search element:
NameCheckmark
Text to findX
Character count{1, 1, 3, 3}
Search for parts of wordsDisabled
Search areaRight of “kwCheckmark”, nearest to “kwCheckmark”
Static Text search element:
NameXMark
Text to findX
Character count{1, 1, 3, 3}
Search for parts of wordsDisabled
Search areaBelow the “kwCheckmark” top boundary, Below value = -15, Left of “kwCheckmark”, Above the “kwCheckmark” bottom boundary, Above value = -15, Nearest to “kwCheckmark”
Under what conditionsDo not find element if “Checkmark” is found
Region search element:
NameCheckmarkRegion
Search Conditions section of the Code Editorif Checkmark.IsFound then RSA: Checkmark.Rect; else if XMark.IsFound then RSA: XMark.Rect; else DontFind;
e. 复制 “PrimaryGroup” 并重命名为 “SecondaryGroup”。将其 “kwCheckmark” 元素的查找文本更改为 “prolongation”, “verlenging”。 f. 德国病假单分为两种类型。与之不同,荷兰和比利时的病假单分为三种类型(增加了“relapse”)。因此,请再复制一份 “PrimaryGroup” 组并将其重命名为 “RelapseGroup”。 g. 将其 “kwCheckmark” 元素的查找文本更改为 “Herval”,并启用 Match case 选项,以排除出现在句子中间的词。 搜索元素结构应如下所示: AD_Tutorial_BE_TypeOfSickNote_Structure
  1. 打开 Manage Fields 窗口,在 “Type of Sick Note” 勾选框组中添加一个 “Relapse” 勾选框。启用组内所有勾选框以用于当前活动,并点击 Save
  2. 将勾选框映射到相应的 Region 元素,并删除启用 field 时自动创建的元素。

测试该活动

我们已配置所有必要的搜索元素和字段。选择所有文档,点击Match(匹配),切换到**Fields(字段)**选项卡,在文档图像上查看字段区域。请注意,只有属于最佳路径假设的区域才会传递到对应字段。 当您对结果满意后,点击文档图像上方的复制icon,将预测标注复制为参考标注。