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

提取签发日期

这些文档中的日期可以通过 Date 元素轻松提取,因此这次我们将使用为此字段自动创建的搜索元素。
  1. Fields 选项卡中打开 Manage Fields 对话框,并选择要在本步骤中使用的 “Date” 字段。单击 Save
  2. 转到 Search Elements 选项卡。可以看到为 “Date” 字段创建的 Date 类型搜索元素。该元素已自动映射到该字段。
  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” 元素的 Text to find 更改为 “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”。
注意: 在这些文档中,复选标记旁边的文本位于复选标记的左侧,因此我们将搜索区域设置在其左侧,而不是右侧。 根据下表配置其余元素:
Parameter
Static Text 搜索元素:
NameCheckmark
Text to findX
Character count{1, 1, 3, 3}
Search for parts of wordsDisabled
Search area位于 “kwCheckmark” 右侧,且最接近 “kwCheckmark”
Static Text 搜索元素:
NameXMark
Text to findX
Character count{1, 1, 3, 3}
Search for parts of wordsDisabled
Search area位于 “kwCheckmark” 顶部边界下方,Below 值 = -15,“kwCheckmark” 左侧,“kwCheckmark” 底部边界上方,Above 值 = -15,且最接近 “kwCheckmark”
Under what conditions如果找到 “Checkmark”,则不要查找该元素
Region 搜索元素:
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 元素,并删除在启用字段时自动创建的元素。

测试活动

我们已经配置了所有必要的搜索元素和字段。选择所有文档,点击 Match,然后切换到 Fields 选项卡,在文档图像上查看字段区域。请注意,只有当某个区域属于最佳路径中的假设时,才会被分配给字段。 当您对结果感到满意时,点击文档图像上方的复制图标,将预测标注复制到参考标注。