你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
最佳做法:生成带标记的数据集
此内容适用于:v4.0(预览版) | 先前版本:v3.1 (GA)v3.0 (GA)
重要
生成标记数据集的最佳做法仅适用于自定义模板和自定义神经网络模型,有关自定义生成式的内容,请参阅自定义生成式
自定义模型(模板和神经网络)要求提供至少包含五个文档的标记数据集来训练模型。 标记数据集的质量会影响训练模型的准确度。 本指南帮助你详细了解如何通过组合多样化数据集来生成高准确度模型,并提供有关标记文档的最佳做法。
了解标记数据集的组成部分
标记的数据集由多个文件组成:
你提供一组示例文档(通常是 PDF 或图像)。 至少需要提供五个文档才能训练模型。
此外,标记过程生成以下文件:
添加第一个字段时会创建
fields.json
文件。 整个训练数据集有一个fields.json
文件,字段列表包含字段名称和关联的子字段和类型。工作室通过布局 API 运行每个文档。 数据集中每个示例文件的布局响应添加为
{file}.ocr.json
。 布局响应用于在标记特定文本范围时生成字段标签。在文档中标记字段时会创建或更新
{file}.labels.json
文件。 对于由用户添加为特定字段的值的每个文本范围,标签文件包含来自布局输出的文本范围和关联的多边形。
视频:自定义标签提示和指针
以下视频为两个演示文稿中的第一个,旨在帮助你生成准确度更高的自定义模型(第二个演示文稿介绍标记文档的最佳做法)。
我们将探讨如何创建均衡的数据集并选择要标记的正确文档。 此过程有助于构建更高质量的模型。
创建平衡数据集
在开始标记之前,最好查看文档的几个不同示例以确定要在标记数据集中使用哪些示例。 平衡数据集代表你希望在文档中看到的所有典型变体。 创建均衡的数据集可生成准确度最高的模型。 需要考虑的几个示例如下:
文档格式:如果你希望分析数字文档和扫描文档,请将每种类型的几个示例添加到训练数据集。
变体(模板模型):考虑将数据集拆分到文件夹中,并为每个变体训练模型。 包含结构或布局的任何变体应拆分为不同的模型。 然后,可以将各个模型组合成单个组合模型。
变体(神经网络模型):当数据集具有一组易于管理的变体(大约 15 个或更少)时,请创建单个数据集,其中包含每个不同变体的一些示例,以训练单个模型。 如果模板变体的数量大于 15,则将训练多个模型并将其组合在一起。
表:对于包含可变行数的表的文档,请确保训练数据集也代表具有不同行数的文档。
多页表:当表跨越多个页时,请标记单个表。 将文档添加到训练数据集中并表示预期的变体 – 表仅在一页上的文档和表跨越两页或更多页并标记所有行的文档。
可选字段:如果数据集包含带有可选字段的文档,请验证训练数据集是否包含一些带有所表示选项的文档。
首先标识字段
花点时间标识你计划在数据集中标记的每个字段。 注意可选字段。 使用与支持的类型最匹配的标签定义字段。
使用以下准则来定义字段:
对于自定义神经网络模型,请为字段使用语义相关的名称。 例如,如果要提取的值是
Effective Date
,则将其命名为effective_date
或EffectiveDate
,而不是像 date1 之类通用名称。理想情况下,使用 Pascal 或混合大小写命名字段。
如果某个值是视觉上重复的结构的一部分,而你只需要一个值,请将其标记为表并在后处理期间提取所需的值。
对于跨多个页的表格字段,请将字段定义并标记为单个表。
注意
自定义神经模型与自定义模板模型具有相同的标记格式和策略。 目前,自定义神经模型仅支持自定义模板模型所支持的一部分字段类型。
模型功能
自定义神经网络模型目前仅支持键值对、结构化字段(表)和选择标记。
模型类型 | 表单域 | 选定标记 | 表格字段 | 签名 | 区域 | 重叠字段 |
---|---|---|---|---|---|---|
自定义神经 | ✔️支持 | ✔️支持 | ✔️支持 | 不支持 | ✔️支持1 | ✔️支持2 |
自定义模板 | ✔️支持 | ✔️支持 | ✔️支持 | ✔️支持 | ✔️支持 | 不支持 |
1 区域标记实现在模板和神经网络模型之间不同。 对于模板模型,如果在标记的区域中找不到文本,则训练过程会在训练时注入合成数据。 使用神经网络模型时,不会注入合成文本,已识别的文本将按原样使用。
2 从 API 版本 2024-02-29-preview
及更高版本开始,支持重叠字段。 重叠字段存在一些限制。 有关详细信息,请参阅重叠字段。
表格字段
从 API 版本 2022-06-30-preview
开始,自定义神经网络模型支持表格字段(表)。 使用 API 版本 2022-06-30-preview 或更高版本训练的模型将接受表格字段标签,使用 API 版本 2022-06-30-preview 或更高版本的模型分析的文档将在 analyzeResult
对象结果的 documents
部分内的输出中生成表格字段。
表格字段默认支持跨页表。 若要标记跨多个页的表,请在单个表中跨不同页标记表的每一行。 最佳做法是确保数据集包含预期变体的几个示例。 例如,包括两个示例,其中整个表位于单个页上,表的示例跨两个或更多页。
在提取文档中未被识别为表格的重复信息时,表格字段也很有用。 例如,可以将简历中重复的工作经历部分标记并提取为表格字段。
注意
表字段被标记时,作为响应的 documents
部分的一部分提取。 响应还包含一个 tables
部分,其中包含布局模型从文档中提取的表。 如果已将字段标记为表,请查找响应的文档部分中的字段。
标记准则
需要标记值。 不要包含两侧的文本。 例如,在标记复选框时,请为字段命名以指示复选框选择(例如
selectionYes
和selectionNo
),而不要标记文档中的“是”或“否”文本。不要提供交错字段值。 一个字段的字词和/或区域值必须是采用自然阅读顺序的连续序列。
一致的标记。 如果某个值出现在文档的多个上下文中,请始终在文档中选择相同的上下文来标记该值。
视觉上重复的数据。 表支持视觉上重复的信息组,而不仅仅是显式表。 显式表将在分析文档的表部分标识为布局输出的一部分,不需要标记为表。 如果信息在视觉上是重复的,并且在布局响应中未被识别为表,则仅标记表字段。 一个示例是简历的重复工作经验部分。
区域标记(自定义模板)。 标记特定区域可以在某个值不存在时定义该值。 如果该值是可选的,请确保留下一些未标记区域的示例文档。 标记区域时,不要在标签中包含两侧的文本。
重叠字段(自定义神经网络)。 使用区域标记来标记字段重叠。 确保至少有一个样本描述了字段如何在训练数据集中重叠。
后续步骤
训练自定义模型:
查看 REST API: