注释 PDF 文件 - Amazon Comprehend

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

注释 PDF 文件

在 G SageMaker round Truth 中为训练 PDF 添加注释之前,请先完成以下先决条件:

  • 安装 python3.8.x

  • 安装 jq

  • 安装 AWS CLI

    如果你使用的是 us-east-1 区域,则可以跳过安装 AWS CLI,因为它已经安装在你的 Python 环境中。在本例中,您可以创建一个虚拟环境,以便在 AWS Cloud9 中使用 Python 3.8。

  • 配置您的AWS 凭证

  • 创建一支私人 G SageMaker round Truth 员工队伍来支持注释

    请务必记录您选择的工作团队名称记录在新的私有人力中,因为在安装过程中会用到它。

设置环境

  1. 如果使用 Windows,请安装 Cygwin;如果使用的是 Linux 或 Mac,请跳过此步骤。

  2. 从中下载注释工件 GitHub。解压缩该文件。

  3. 在终端窗口中,导航到解压后的文件夹 (amazon-comprehend-semi-structured-documents-annotation-tools-main)。

  4. 这个文件夹包括一个选项 Makefiles,您可以运行它来安装依赖项、设置 Python virtualenv 和部署所需的资源。查看自述文件以做出选择。

  5. 推荐的选项使用单个命令将所有依赖项安装到 virtualenv 中,根据模板构建 AWS CloudFormation 堆栈,然后 AWS 账户 通过交互式指导将堆栈部署到您的。运行以下命令:

    make ready-and-deploy-guided

    此命令提供了一组配置选项。请确保你的正确 AWS 区域 无误。对于所有其他字段,您可以接受默认值或填写自定义值。如果您修改了 AWS CloudFormation 堆栈名称,请在接下来的步骤中根据需要将其写下来。

    显示 AWS CloudFormation 配置选项的终端会话。

    CloudFormation 堆栈创建和管理注解工具所需的 AWS lambdaAWS IAM 角色和 AWS S3 存储桶。

    您可以在 CloudFormation 控制台的堆栈详细信息页面中查看这些资源中的每一个资源。

  6. 该命令会提示您开始部署。 CloudFormation 在指定区域创建所有资源。

    显示已部署 AWS CloudFormation 配置的终端会话。

    当 CloudFormation 堆栈状态转换为 “创建完成” 时,资源就可以使用了。

将 PDF 上传到 S3 存储桶

设置部分,您部署了一个 CloudFormation 堆栈,该堆栈用于创建名为 comprehend-semi-structured-documents-$ {AWS::Region}-${AWS::AccountId} 的 S3 存储桶。现在,您可以将源 PDF 文档上传到此存储桶中。

注意

此存储桶包含您的标注作业所需的数据。Lambda 执行角色策略向 Lambda 函数授予访问此存储桶的权限。

您可以使用 “S3Bucket” 密钥在CloudFormation 堆栈详细信息中找到 SemiStructuredDocumentsS3 存储桶名称。

  1. 在 S3 存储桶中,创建一个新的文件夹。将这个新文件夹命名为src

  2. 将您的 PDF 源文件添加到src文件夹。在后面的步骤中,将对这些文件进行注释以训练识别器。

  3. (可选)以下是可用于将源文档从本地目录上传到 S3 存储桶的 AWS CLI 示例:

    aws s3 cp --recursive local-path-to-your-source-docs s3://deploy-guided/src/

    或者,使用您的地区和账户 ID:

    aws s3 cp --recursive local-path-to-your-source-docs s3://deploy-guided-Region-AccountID/src/

  4. 你现在有了一名私人 G SageMaker round Truth 工作人员,并且已经将源文件上传到 S3 存储桶 deplo y-guided/src/;你已经准备好开始添加注释了。

创建注释作业

bin目录中的 comprehend-ssie-annotation-tool-cli.py 脚本是一个简单的包装器命令,它简化了 G SageMaker round Truth 标签作业的创建。python 脚本从 S3 存储桶中读取源文档,并创建相应的单页清单文件,每行包含一个源文档。然后,该脚本会创建一个标签作业,该作业需要清单文件作为输入。

python 脚本使用您在设置部分配置的 S3 存储桶和 CloudFormation 堆栈。脚本所需的输入参数包括:

  • input-s3-path:您上传到 S3 存储桶的源文档的 S3 Uri。例如:s3://deploy-guided/src/。您还可将您的地区和账户 ID 添加到此路径。例如:s3://deploy-guided-Region-AccountID/src/

  • cfn-name: CloudFormation 堆栈名称。如果您使用堆栈名称的默认值,则您的 cfn-name 为 sam-app

  • work-team-name: 你在 G SageMaker round Truth 中建立私人员工队伍时创建的员工队伍名称。

  • job-name-prefix: G SageMaker round Truth 标签作业的前缀。请注意,此字段有 29 个字符的限制。此值后面会附加一个时间戳。例如:my-job-name-20210902T232116

  • entity-types:您要在标注作业中使用的实体,请用逗号分隔。此列表必须包括您要在训练数据集中注释的所有实体。Ground Truth 标注作业仅显示这些实体,供注释者标注 PDF 文档中的内容。

要查看脚本支持的其他参数,请使用 -h 选项显示帮助内容。

  • 使用上面列表中所述的输入参数运行以下脚本。

    python bin/comprehend-ssie-annotation-tool-cli.py \ --input-s3-path s3://deploy-guided-Region-AccountID/src/ \ --cfn-name sam-app \ --work-team-name my-work-team-name \ --region us-east-1 \ --job-name-prefix my-job-name-20210902T232116 \ --entity-types "EntityA, EntityB, EntityC" \ --annotator-metadata "key=info,value=sample,key=Due Date,value=12/12/2021"

    该脚本生成以下输出:

    Downloaded files to temp local directory /tmp/a1dc0c47-0f8c-42eb-9033-74a988ccc5aa Deleted downloaded temp files from /tmp/a1dc0c47-0f8c-42eb-9033-74a988ccc5aa Uploaded input manifest file to s3://comprehend-semi-structured-documents-us-west-2-123456789012/input-manifest/my-job-name-20220203-labeling-job-20220203T183118.manifest Uploaded schema file to s3://comprehend-semi-structured-documents-us-west-2-123456789012/comprehend-semi-structured-docs-ui-template/my-job-name-20220203-labeling-job-20220203T183118/ui-template/schema.json Uploaded template UI to s3://comprehend-semi-structured-documents-us-west-2-123456789012/comprehend-semi-structured-docs-ui-template/my-job-name-20220203-labeling-job-20220203T183118/ui-template/template-2021-04-15.liquid Sagemaker GroundTruth Labeling Job submitted: arn:aws:sagemaker:us-west-2:123456789012:labeling-job/my-job-name-20220203-labeling-job-20220203t183118 (amazon-comprehend-semi-structured-documents-annotation-tools-main) user@3c063014d632 amazon-comprehend-semi-structured-documents-annotation-tools-main %

使用 Ground Truth 进行 SageMaker 注释

现在,您已经配置了所需的资源并创建了标注作业,您可以登录标注门户并为 PDF 添加注释。

  1. 使用 Chrome 或 Firefox 网络浏览器登录SageMaker 控制台

  2. 选择标注人力,然后选择私有

  3. 私有人力摘要下,选择您使用私有人力创建的标注门户登录网址。使用适当的凭证登录。

    如果您没有看到列出的任何作业,请不要担心,更新可能需要一段时间,具体取决于您上传用于注释的文件数量。

  4. 选择您的作业,然后在右上角,选择开始工作,以打开注释屏幕。

    您将在注释屏幕中看到其中一个文档处于打开状态,并在其上方看到您在设置过程中提供的实体类型。在实体类型的右边,有一个箭头,您可以用它来浏览你的文档。

    亚马逊 Comprehend 注释屏幕。

    为打开的文档添加注释。您还可以删除、撤消或自动标记每个文档上的注释;这些选项可在注释工具的右侧面板中找到。

    亚马逊 Comprehend 注释右侧面板中的可用选项。

    要使用自动标记,请为其中一个实体的实例添加注释;然后,该特定单词的所有其他实例都将自动使用该实体类型进行注释。

    完成后,选择右下角的提交,然后使用导航箭头移至下一个文档。重复此操作,直到为所有 PDF 添加了注释。

为所有训练文档添加注释后,您可以在 Amazon S3 存储桶中的以下位置找到 JSON 格式的注释:

/output/your labeling job name/annotations/

输出文件夹还包含一个输出清单文件,其中列出了您的训练文档中的所有注释。您可以在以下位置找到您的输出清单文件。

/output/your labeling job name/manifests/