在 Google Cloud 控制台中创建自定义文档分类器

自定义分类器旨在对文档进行分类。它是使用您自己的文档和自定义类从头构建的。

在 Google Cloud 控制台中创建自定义分类器

您可以创建专门适合您的文档使用的自定义分类器,并使用您的数据进行训练和评估。该处理器负责从用户定义的类集中识别文档的类。之后,您便可以将此经过训练的处理器用于其他文档。您通常会对不同类型的文档使用自定义分类器,然后使用该标识将文档传递给提取处理器,以提取实体。

创建和使用自定义分类器的典型工作流如下:

  1. 在 Document AI 中创建自定义分类器。
  2. 使用空 Cloud Storage 存储桶创建数据集。
  3. 导入文档。
  4. 在 Document AI Workbench 中手动为文档添加注解或通过添加标签任务为文档添加注解。
  5. 将文档分配给训练集和测试集。
  6. 训练处理器。
  7. 评估处理器。
  8. 部署处理器。
  9. 测试处理器。
  10. 对文档使用处理器。

您可以根据自己的工作流自行选择配置。


如需在 Google Cloud 控制台中直接遵循有关此任务的分步指导,请点击操作演示

操作演示


准备工作

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Document AI, Cloud Storage APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Document AI, Cloud Storage APIs.

    Enable the APIs

创建处理器

1. 前往 Google Cloud 控制台,然后依次选择: Workbench
  1. 对于自定义文档分类器,请选择创建处理器

    custom-classifier-1

  2. 创建处理器菜单中,输入处理器的名称,例如 my-custom-document-classifier

    custom-classifier-2

  3. 选择离您最近的区域。

  4. 选择创建。系统随即会显示处理器详情标签页。

配置数据集

如需训练新处理器,您必须创建一个包含训练和测试数据的数据集,以帮助处理器识别您要拆分和分类的文档。

此数据集需要新位置。此位置可以是空的 Cloud Storage 存储桶或文件夹,也可以允许使用内部管理的位置。

处理器详情标签页出现后,您可以执行以下操作:

  • 如果您要使用 Cloud Storage,请选择由 Google 管理的存储空间
  • 如果您要使用自己的存储空间来使用客户管理的加密密钥 (CMEK),请选择我将指定我自己的存储位置,然后按照后续过程操作。

custom-classifier-3

为数据集创建 Cloud Storage 存储桶

  1. 选择处理器的训练标签页。

  2. 选择设置数据集位置。系统会提示您选择或创建一个空的 Cloud Storage 存储桶或文件夹。

    custom-classifier-4

  3. 选择浏览以打开选择文件夹

  4. 选择创建新存储桶图标,然后按照提示创建新存储桶。如需详细了解如何创建 Cloud Storage 存储桶,请参阅 Cloud Storage 存储桶

    注意:存储桶是顶级存储实体,您可以在其中嵌套文件夹。您也可以在现有存储桶中创建和选择空文件夹,而不是创建和选择存储桶。如需了解详情,请参阅 Cloud Storage 模拟文件夹

    创建存储桶后,系统会显示该存储桶的选择文件夹页面。

  5. 在存储桶的选择文件夹页面上,选择对话框底部的选择按钮。

    custom-classifier-5

  6. 确保目标路径中填充了您选择的存储桶的名称。选择创建数据集。数据集最多可能需要几分钟时间才能创建完毕。

将文档导入数据集

接下来,您需要将文档导入数据集。

  1. 训练标签页上,选择导入文档

    custom-classifier-6

  2. 在此示例中,请在来源路径中输入此存储桶名称。这可直接链接到一个文档。

    cloud-samples-data/documentai/Custom/Patents/PDF/computer_vision_20.pdf
    
  3. 对于数据拆分,选择未分配。此文件夹中的文档既未分配给测试集,也未分配给训练集。请不要勾选使用自动添加标签功能导入

  4. 选择导入。 Document AI 将存储桶中的文档读入数据集。它不会修改导入存储桶,也不会在导入完成后从存储桶读取数据。

导入文档时,可以选择性地在导入后将文档分配给训练测试集,或者等待稍后再分配这些文档。

如果要删除已导入的一个或多个文档,请在训练标签页上选择这些文档,然后选择删除

如需详细了解如何准备要导入的数据,请参阅数据准备指南

定义处理器架构

在将文档导入数据集之前或之后都可以创建处理器架构。该架构提供了用于为文档添加注释的标签。

  1. 训练标签页上,选择左下角的修改架构。系统随即会打开管理标签页面。

  2. 选择创建标签

  3. 为标签输入一个名称。选择数据类型。选择创建。 如需详细了解如何创建和修改架构,请参阅定义处理器架构

  1. 为处理器架构创建以下每个标签。

    名称 数据类型
    computer_vision 文档类型
    crypto 文档类型
    med_tech 文档类型
    other 文档类型
  2. 标签设置完成后,选择保存

    custom-classifier-7

为文档加标签

选择文档中的特定文本并为其添加标签的过程也称为“加注解”。

  1. 返回训练标签页,然后选择一个文档以打开标签管理控制台。

  2. 文档类型下拉菜单中,为文档选择合适的标签。

  3. 如果您使用的是我们提供的示例文档,请选择 computer_vision

    完成添加标签的文档应如下所示:custom-classifier-8

  4. 完成为文档添加注解后,选择标记为已加标签

    训练标签页上,左侧面板会显示已标记 1 个文档。

将已添加注解的文档分配给训练集

现在,您已为此示例文档添加了标签,接下来可以将其分配给训练集。

  1. 训练标签页上,选中全选复选框。

  2. 分配给集合列表中,选择训练

在左侧面板中,您可以看到系统已将 1 个文档分配给训练集。

将预先加标签的数据导入训练集和测试集

在本指南中,我们已为您提供了预先加标签的数据。

但如果您处理的是自己的项目,则必须确定如何为您的数据添加标签。请参阅标签选项。Document AI 自定义处理器要求在训练集和测试集中都至少有 10 个文档,并且每个数据集中的每个标签都至少有 10 个实例。为了获得最佳性能,我们建议您在每个数据集中至少有 50 个文档,每个标签至少有 50 个实例。一般来说,训练数据越多,准确性就越高。

  1. 选择导入文档

  2. 来源路径中输入以下路径。此存储桶包含文档 JSON 格式的预先添加标签的文档。

    cloud-samples-data/documentai/Custom/Patents/JSON/Classification-InventionType
    
  3. 数据拆分列表中,选择自动拆分。这会自动拆分文档,使其数据在训练集中占 80%,在测试集中占 20%。 忽略应用标签部分。

  4. 选择导入。 导入可能需要几分钟才能完成。

导入完成后,您会在训练标签页上找到这些文档。

可选:在导入时为文档批量添加标签

配置架构后,您可以在导入时给特定目录中的所有文档添加标签,以节省添加标签的时间。

custom-classifier-9

  1. 选择导入文档

  2. 来源路径中输入以下路径。此存储桶包含 PDF 格式的未加标签文档。

    cloud-samples-data/documentai/Custom/Patents/PDF-CDC-BatchLabel
    
  3. 数据拆分列表中,选择自动拆分。这会自动拆分文档,使其数据在训练集中占 80%,在测试集中占 20%。

  4. 应用标签部分,选中选择标签

  5. 对于这些示例文档,请选择 other

  6. 选择导入,然后等待过程完成。您可以离开此页面,稍后再返回来查看。 完成后,您会在训练标签页上找到应用了标签的文档。

训练处理器

现在,您已导入训练和测试数据,接下来就可以训练处理器了。由于训练过程可能需要几个小时,因此在开始训练之前,请确保您已使用适当的数据和标签设置处理器。

  1. 选择训练新版本

  2. 版本名称字段中,输入此处理器版本的名称,例如 my-cdc-version-1

  3. (可选)选择查看标签统计信息,找到文档标签的相关信息。这有助于确定覆盖率。选择关闭即可返回训练设置。

  4. 选择开始训练,您可以在右侧面板上查看训练状态。

部署处理器版本

  1. 训练完成后,转到管理版本标签页。您可以查看刚刚训练的版本的详细信息。

  2. 选择要部署的版本右侧的三个垂直点,然后选择部署版本

  3. 从弹出式窗口中选择部署

    部署需要几分钟才能完成。

评估和测试处理器

  1. 部署完成后,转到评估和测试标签页。

    在此页面上,您可以查看完整文档以及各个标签的各项评估指标,包括 F1 得分、精确率和召回率。如需详细了解评估及统计信息,请参阅评估处理器

  2. 下载之前训练或测试中未涉及的文档,以便使用它来评估处理器版本。如果您使用自己的数据,则可以使用为此目的预留的文档集。

    下载 PDF 文件

  3. 选择上传测试文档,然后选择您刚刚下载的文档。

    系统随即会打开自定义文档分类器分析页面。输出会展示文档的分类效果。

    您也可以针对其他测试集或处理器版本重新运行评估。

可选:为新导入的文档自动添加标签

部署经过训练的处理器版本后,您可以在导入新文档时使用自动加标签功能来节省加标签的时间。

  1. 训练页面上,导入文档

  2. 复制并粘贴下面的 Cloud Storage 路径。该目录包含 5 个没有加标签的专利 PDF 文件。在数据拆分下拉列表中,选择训练

    cloud-samples-data/documentai/Custom/Patents/PDF-CDC-AutoLabel
    
  3. 应用标签部分中,选择自动添加标签

  4. 选择现有处理器版本,以便为文档添加标签。

    • 例如:2af620b2fd4d1fcf
  5. 选择导入,然后等待过程完成。您可以离开此页面,稍后再返回来查看。 完成后,文档会显示在训练页面的已自动加标签部分中。

  6. 您不能使用自动加标签的文档进行训练或测试,除非将其标记为已加标签。找到已自动加标签部分以查看自动加标签的文档。

  7. 选择第一个文档以进入标签控制台。

  8. 请验证该标签,确保其正确无误。如果不正确,请进行调整。

  9. 完成后,选择标记为已加标签

  10. 为每个自动加标签的文档重复标签验证,然后返回训练页面以使用数据进行训练。

使用处理器

您已成功创建并训练了一个自定义文档分类器处理器。

您可以像管理任何其他处理器版本一样管理自定义训练的处理器版本。如需了解详情,请参阅管理处理器版本

您可以向自定义处理器发送处理请求,并且响应的处理方式可以与其他分类器处理器相同

清理

为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。

为避免产生不必要的 Google Cloud 费用,请使用 Google Cloud 控制台删除您不需要的处理器和项目。

如果您为了解 Document AI 创建了一个新项目,但现在不再需要该项目,请删除项目

如果您使用的是现有 Google Cloud 项目,请删除您创建的资源,以避免您的账号产生费用:

  1. 在 Google Cloud 控制台导航菜单中,选择 Document AI,然后选择我的处理器

  2. 选择要删除的处理器所在行中的更多操作

  3. 选择删除处理器,输入处理器名称,然后再次选择删除进行确认。

后续步骤