跳转到主要内容
Hypothesis Filtering 容器将多个 Deep Learning 活动与一个 Extraction Rules 活动组合在一起。Deep Learning 活动的输出将传递给 Extraction Rules 活动,由后者通过设置条件来选取所需的值。 即使 Deep Learning 活动可以实现非常高质量的字段提取,在某些情况下仍可能需要对 Deep Learning 活动的输出进行控制。为此,可以将一个或多个 Deep Learning 活动与一个 Extraction Rules 活动组合使用,由后者对 Deep Learning 活动获得的值应用条件筛选。 当神经网络找到完整的单词而只需要其中的特定部分,或需要过滤掉偶然捕获的噪声时,输出控制尤为重要。它还可用于识别较大字段的部分,例如地址,这些部分可能会被神经网络忽略。此外,它还能让您在同一值的多个实例中选择最佳假设。例如,当供应商名称在一份文档上被多次打印时,您可以从多个实例中选取最准确的提取结果。
此技术作为预览版本提供,并将在未来版本中不断改进。

设置 Hypothesis Filtering 容器

  1. 单击包含 Deep Learning 活动的块并选择 Filter Hypotheses。这将创建一个新的 Hypothesis Filtering 容器,并将所选的 Deep Learning 活动放入其中。
  2. (可选) 将更多 Deep Learning 活动拖入 Hypothesis Filtering 容器。这样可以组合并比较两个或多个 Deep Learning 活动的输出。例如,在同时处理文本字段和表格时,可能需要两个活动。
  3. 向容器中添加一个 Extraction Rules 活动。您可以通过单击占位符来创建一个新活动,或者将现有活动拖入容器。
  4. 设置 Extraction Rules 活动。对于每个由 Deep Learning 活动找到的值,添加一个 Deep Learning 搜索元素并设置其属性。您可以一次性添加某个 Deep Learning 活动的所有输出字段。Deep Learning 搜索元素支持所有用于限制搜索区域和查找元素条件的属性。
  5. 将 Hypothesis Filtering 容器的输入和输出连接到文档处理工作流中的其他块。Hypothesis Filtering 容器的输出字段将与 Extraction Rules 活动的输出字段相同。
如果您决定不再对 Deep Learning 活动的输出进行控制,请单击容器中的任意位置并选择 Don’t Filter Hypotheses。容器将被拆分,但活动本身不会被删除,您仍然可以在修改后的文档处理工作流中使用它们。

示例

以下只是一些示例,用于展示如何使用 Hypothesis Filtering 容器。然而,还有许多其他场景可以使用此功能来控制神经网络的输出,并对字段提取进行微调。只有您最清楚所处理文档需要哪些调整,因此我们鼓励您在每一种深度学习活动的结果可能通过调优得到改进的情况下,都尝试使用这项技术。 下面的示例都使用同一个示例技能,其中两个 Deep Learning 活动的输出会传递给一个 Extraction Rules 活动。

技能工作流

AD_HypothesisFiltering_Container
  • Deep Learning 活动提取文本字段。
  • Deep Learning 2 活动提取表格。
  • Hypothesis Filtering 容器对它们的结果进行筛选与合并。

Extraction Rules (提取规则) 活动中搜索元素的结构

AD_HypothesisFiltering_SearchElementTree 每个搜索元素都映射到其对应的字段。

示例 1:更正由深度学习活动找到的值

在此示例中,一个深度学习活动为文档编号找到了一个过长的值,然后创建一个新的搜索元素来更正该值。 深度学习活动找到的文档编号的值包含了短横线后面的部分: AD_HypothesisFiltering_ValueTooLong
  1. 为了更正 Document_Number 的值,需要创建一个新的搜索元素。该搜索元素命名为 DocNumber_Corrected,应位于 Document_Number 搜索元素的区域内,并且其字符数量应受限制。
AD_HypothesisFiltering_CorrectedProperties
  1. 通过在元素的代码中添加以下行,将新元素的搜索区域限制为与 Document_Number 区域匹配:
RestrictSearchArea: Document_Number.Region;
  1. 更正后的搜索元素会映射到用于提取文档编号的字段:
AD_HypothesisFiltering_CorrectedMapping 因此,提取到的文档编号将不包含连字符之后的部分: AD_HypothesisFiltering_ValueCorrected

示例 2:从多个重复值中选择一个

在本示例中,一个 Deep Learning 活动被训练用于查找所有文档编号的实例,但该技能的最终结果只需要一个文档编号字段。为此,需要在 Document Number 字段上禁用 Allow Multiple Items 设置,并指定条件以选择正确的文档编号实例。 建议您先将已标注的文档集保存到一个文件夹中。当您为某个字段禁用 Allow Multiple Items 设置时,该字段的所有多余实例都会从标注中删除。在 Deep Learning 活动中训练出的模型仍然可以使用,但如果您之后想要修改并重新训练该模型,就需要重新加载原始文档集。
  1. 在 Document Number 字段上禁用 Allow Multiple Items 设置 (可通过单击 Manage Fields 访问该设置) 。
AD_HypothesisFiltering_NoMultiples
  1. 具有多个实例的 Document_Number 搜索元素无法映射到 Document Number 字段。因此,基于 Deep Learning 活动的文档编号输出创建一个新的 Deep Learning 搜索元素,并将其映射到 Document Number 字段。
AD_HypothesisFiltering_MapNoMultiples
  1. Deep Learning 活动找到的多个文档编号实例被用来构建一个假设树,其中只有一个会被选作 Document_Number 搜索元素的值。
AD_HypothesisFiltering_HypTree
  1. 为了找到特定实例,为 Document_Number 搜索元素添加一些条件 (在此示例中,我们希望找到位于最上方的文档编号实例) 。
AD_HypothesisFiltering_TopmostInstance

示例 3:合并两个深度学习活动的输出

Hypothesis Filtering 容器允许您合并两个或多个 Deep Learning 活动的输出,用于相互校验,或在同一活动中对这些结果进行细化调整。 在本示例中,需要两个 Deep Learning 活动,因为单个 Deep Learning 活动无法被训练为同时提取文本字段和表格。 添加了一个条件,规定 Company_Address 搜索元素必须始终出现在 Goods_Table 搜索元素之上。这样,即使其他地址印在页面底部,也仍能识别出正确的地址。 AD_HypothesisFiltering_AboveTable