- 概述
- 文档处理合同
- 关于文档处理合同
- Box 类
- IPersistedActivity 接口
- PrettyBoxConverter 类
- IClassifierActivity 接口
- IClassifierCapabilitiesProvider 接口
- 分类器文档类型类
- 分类器结果类
- 分类器代码活动类
- 分类器原生活动类
- 分类器异步代码活动类
- 分类器文档类型功能类
- 提取程序异步代码活动类
- 提取程序代码活动类
- 提取程序文档类型类
- 提取程序文档类型功能类
- 提取程序字段功能类
- 提取程序原生活动类
- 提取程序结果类
- ICapabilitiesProvider 接口
- IExtractorActivity 接口
- 提取程序有效负载类
- 文档操作优先级枚举
- 文档操作数据类
- 文档操作状态枚举
- 文档操作类型枚举
- 文档分类操作数据类
- 文档验证操作数据类
- 用户数据类
- 文档类
- 文档拆分结果类
- DomExtensions 类
- 页类
- 页面分区类
- 多边形类
- 多边形转换器类
- 元数据类
- 词组类
- 词类
- 处理源枚举
- 结果表格单元类
- 结果表值类
- 结果表列信息类
- 结果表类
- 旋转枚举
- 分区类型枚举
- 词组类型枚举
- IDocumentTextProjection 接口
- 分类结果类
- 提取结果类
- 结果文档类
- 结果文档范围类
- 结果数据点类
- 结果值类
- 结果内容引用类
- 结果值令牌类
- 结果派生字段类
- 结果数据源枚举
- 结果常量类
- 简单字段值类
- 表字段值类
- 文档组类
- 文档分类类
- 文档类型类
- 字段类
- 字段类型枚举
- 语言信息类
- 元数据输入类
- 文本类型枚举
- 类型字段类
- ITrackingActivity 接口
- ITrainableActivity 接口
- ITrainableClassifierActivity 接口
- ITrainableExtractorActivity 接口
- 可训练的分类器异步代码活动类
- 可训练的分类器代码活动类
- 可训练的分类器原生活动类
- 可训练的提取程序异步代码活动类
- 可训练的提取程序代码活动类
- 可训练的提取程序原生活动类
- Document Understanding 数字化器
- Document Understanding ML
- Document Understanding OCR 本地服务器
- Document Understanding 流程:Studio 模板
- Document Understanding 活动
- 智能 OCR
- ML 服务
- OCR
- OCR 合同
- OmniPage
- PDF
- [未公开] Abbyy
- [未列出] Abbyy 嵌入式
使用智能表单提取程序提取基于锚点的数据
以下示例说明了如何从可能还包含手写文本的表单中提取数据。 以下用例场景说明了如何从采购订单中提取数据。
它提供了诸如“ 数字化文档”、“ 数据提取作用域”或 “ 智能表单提取程序”之类的活动。 您可以在 UiPath.IntelligentOCR.Activities 包中找到这些活动。
创建工作流
在创建以下工作流之前,需要安装以下包:
- UiPath.DocumentProcessing.Contracts.Activities
- UiPath.Intelligent OCR.Activities
- UiPath.OCR.Activities
- UiPath.OCR.Contracts
- UiPath.WebAPI.Activities
以下是构建自动化流程的方法:</summary>
此自动化流程的构建方法如下:
- 打开 Studio ,创建一个新“流程”。
-
在 Workflow Designer中拖动一个“序列”容器,将其命名为“ Sequence1”,然后创建以下变量:
变量名称
变量类型
默认值
item
字符串
classificationResult
ClassificationResult[]
outputFileName
泛型值
-
在 Workflow Designer中将另一个“序列”容器拖动到第一个容器下方,将其命名为“ Sequence2”,并创建以下变量:
变量名称
变量类型
默认值
text
字符串
taxonomy
DocumentTaxonomy
dom
文档
documentPath
字符串
classificationResult2
ClassificationResult[]
outputFileName2
泛型值
-
在序列中添加“ 消息框” 活动。
-
在“ 属性 ” 面板中,从“ 按钮” 下拉列表中选择“确定” 选项。 在“ 文本 ”字段中添加以下消息:“选择 PDF 文件”。
-
- 选中“排名最前”选项的复选框。这会将消息框置于前台。
-
在“ 消息框” 活动下方添加“选择文件”活动。
- 在“ 属性 ”面板的“筛选器”字段中添加以下文本:
Pdf files (*.pdf)|*.pdf
- 在“ 选定文件” 字段中添加
documentPath
变量。
- 在“ 属性 ”面板的“筛选器”字段中添加以下文本:
-
在“ 选择文件 ” 活动下方添加“分配” 活动。
- 在“ 目标” 字段中添加
outputFileName2
变量。 - 在“值”字段中添加表达式“
".temp/" + Path.GetFileName(documentPath)
”。
- 在“ 目标” 字段中添加
-
在“ 分配 ”活动下方添加“反序列化 JSON ”活动。
- 在“JSON 字符串”字段中添加表达式“
File.ReadAllText("DocumentProcessing axonomy.json")
”。 - 在“ 属性 ”面板中,从“ 类型参数 ”下拉列表中选择“ UiPath.DocumentProcessing.Contracts.Taxonomy.DocumentTaxonomy”选项。
- 在 Json 对象字段中添加
taxonomy
变量。
- 在“JSON 字符串”字段中添加表达式“
-
在“ 反序列化 JSON ” 活动下方添加“数字化文档” 活动。
- 在“属性”面板中,向“并行度”字段添加“
1
”值。 - 在“ 文档路径” 字段中添加
documentPath
变量。 - 在文档对象模型字段中添加
dom
变量。 - 在“文档文本”字段中添加
text
变量。 - 在活动中添加 UiPath 文档 OCR 引擎。
- 在 ApiKey 字段中添加您的 API 密钥。
- 在“ 端点 ” 字段中添加
"https://du.uipath.com/ocr"
表达式。
- 在“属性”面板中,向“并行度”字段添加“
-
在“ 数字化文档” 活动下方添加“写入文本文件”活动。
- 在“文本”字段中添加表达式
JsonConvert.SerializeObject(dom)
。 - 在“文件名”字段中添加表达式“
outputFileName2 + ".dom.json"
”。
- 在“文本”字段中添加表达式
-
在“写入 文本文件 ”活动下方添加另一个“ 写入文本文件 ”活动。
- 在“文本”字段中添加“
text
”变量。 - 在“文件名”字段中添加表达式“
outputFileName2 + ".text.txt"
”。
- 在“文本”字段中添加“
-
将另一个“序列”容器拖入 Workflow Designer 中,将其命名为“Sequence3”,并创建以下变量:
变量名称
变量类型
默认值
extractionResult
提取结果
validatedResults
提取结果
doubleValidatedResults
提取结果
dataset
数据集
i
Int32
-
在 Sequence3中添加“数据提取作用域”活动。
- 在“ 属性 ”面板的“ 文档对象 模型”字段中添加
dom
变量。 - 在“ 文档路径” 字段中添加
documentPath
变量。 - 在“文档文本”字段中添加
text
变量。 - 在 DocumentTypeId 字段中添加
"All.Benchmarks.Invoice"
表达式。 - 在“分类”字段中添加
taxonomy
变量。 - 在“ 提取 结果”字段中添加
extractionResult
变量。
- 在“ 属性 ”面板的“ 文档对象 模型”字段中添加
-
在“ 数据提取作用域 ”活动中添加一个智能表单提取程序活动。
- 在“API 密钥”字段中添加您的 API 密钥。
-
在“ 数据提取作用域 ”活动下方添加“写入文本文件”活动。
- 在“文本”字段中添加表达式
JsonConvert.SerializeObject(extractionResult)
。 - 在“文件名”字段中添加表达式“
outputFileName2 + ".results.json"
”。
- 在“文本”字段中添加表达式
-
在“ 写入文本文件 ”活动下方添加“演示验证站点”活动。
- 在“自动提取结果”字段中添加
extractionResult
变量。 - 在文档对象模型字段中添加
dom
变量。 - 在“ 文档路径” 字段中添加
documentPath
变量。 - 在“文档文本”字段中添加
text
变量。 - 在“分类”字段中添加
taxonomy
变量。 - 在“已验证的提取结果”字段中添加
validatedResults
变量。
- 在“自动提取结果”字段中添加
-
在“ 当前验证站点 ”活动下方添加“写入文本文件”活动。
- 在“文本”字段中添加表达式
JsonConvert.SerializeObject(validatedResults)
。 - 在“文件名”字段中添加表达式“
outputFileName2 + ".savedinVS.results.json"
”。
- 在“文本”字段中添加表达式
-
在“写入 文本文件 ”活动下方添加另一个“ 写入文本文件 ”活动。
- 在“文本”字段中添加表达式
JsonConvert.SerializeObject(doubleValidatedResults)
。 - 在“文件名”字段中添加表达式“
outputFileName2 + ".doubleSavedinVS.results.json"
”。
- 在“文本”字段中添加表达式
- 运行流程。 自动化流程应打开验证站点,提取数据并进行验证,并将其存储在“输出”文件夹中。
从此处下载示例。
定义分类
您已创建工作流,定义所有变量并自定义所有活动。 现在是时候定义分类了。 为此,请按照 此处描述的步骤操作。
创建分类,以便能够从发票中提取信息。 您应该专注于创建具有以下字段的“ 发票 ”文档类型:
字段名称 |
字段类型 |
---|---|
发票编号 |
|
小计 |
|
销售税 |
|
总计 |
|
以下是您的分类的外观:
创建模板
现在是时候为提取流程创建模板了。 请按照 此处的说明进行创建。
以下 GIF 说明了如何创建模板:
在模板中设置锚点
当您需要从文档中提取精确信息时,锚点是一项非常特殊且有用的功能。 通过使用锚点定义提取区域,您可以期望数据提取具有较高的准确性。
以下动图表示如何在用于上述示例的发票文档上使用锚点。 有关锚点的更多详细信息,请参见 此处。
定义分类并创建模板后,您可以使用锚点开始配置模板,这意味着在框中定义提取区域,并且使用锚点定义框位置。
在开始向模板添加锚点之前,请注意以下几点:
- 锚框应尽可能大(高度、宽度),以覆盖任何类型的发票编号(长、短、大字体等)。
- 一个提取区域可以根据需要具有任意数量的锚点,但只能将一个锚点定义为主锚点(第一个)。
- 使用由多个并排单词组成的锚点。
- 主锚点应尽可能靠近提取区域。
- 提取区域和主锚点的位置在模板中是固定的,即使应用于不同的文档也是如此。 唯一可以改变的是主锚点和次要锚点之间的距离。
我们继续配置模板,看看如何使用锚点提取数据。 下面的 GIF 图说明了如何标记提取区域以及如何添加主锚点和辅助锚点。
-
设置提取区域
备注:主锚点应包含两个或三个单词,以便在提取过程中获得更高的准确性和更好的结果。
标记锚点时,按住 CTRL 并单击所需的单词,以选择多个单词。
-
设置主锚点
-
设置辅助锚点
重复此过程,直到完成所有提取区域的定义并添加所有锚点。 完成后,保存模板。