为 PDF 文件添加注释 - Amazon Comprehend

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

为 PDF 文件添加注释

在您可以为训练 PDF 添加注释之前 SageMaker Ground Truth,你需要完成一些先决条件:

  • 安装 python3.8.x

  • 安装AWSCLI

    如果您使用的是 us-east-1 区域,您可以跳过安装AWSCLI,因为它已经随你的 Python 环境一起安装了。在这种情况下,你将创建一个虚拟环境来使用 Python 3.8AWSCloud9。

  • 安装jq

  • 配置AWS证书

  • 创建私有人力SageMaker Ground Trut支持注释

    请务必在新的私人员工队伍中记录您选择的工作团队名称,因为在安装过程中需要使用该名称。

设置环境

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

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

  3. 在终端窗口中,导航到解压缩的文件夹 (amazon-comprehend-semi-structured-documents-annotation-tools-main)。此文件夹包含一个Makefile你可以运行它来安装依赖项、设置 Python virtualenv 以及部署所需的资源。

  4. 运行以下命令安装AWSCLI、PipenvAWS SAM、其他依赖项,并设置虚拟环境:

    make bootstrap

  5. 以下命令运行基本的 python 检查样式和 cnf-lint,并构建AWS CloudFormation模板使用AWS SAMCLI:

    make build

  6. 创建和部署 CloudFormation stack,运行以下命令。它打包了AWS CloudFormation模板准备进行部署,并启动AWS SAM带有交互式指导的部署命令:

    make deploy-guided

    此命令提供一组配置选项。一定要你的AWS区域正确。对于所有其他字段,您可以接受默认值或填写自定义值。如果你修改了AWS CloudFormationstack name (stack name),请在后续步骤中根据需要将其记下。

    该命令定义了一个 CloudFormation 堆叠。该 CloudFormation stack 将创建和管理AWS LambdAWS IA角色,以及AWS S3用于注释工具所需的存储桶。

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

  7. 该命令将提示您启动部署。 CloudFormation 创建指定区域中的所有资源。

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

将 PDF 上传到 S3 存储桶

在Step步骤 6,你部署了 CloudFormation 创建名为 S3 存储桶的堆栈comprehend-semi-structured-documents-$ {AWS::Region}-${AWS::AccountId}. 现在,您可以将源 PDF 文档上传到此存储桶中。

注意

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

您可以在中找到 S3 存储桶名称CloudFormation 堆栈详细信息使用'SemiStructuredDocumentsS3Bucket'Key。

  1. 在 S3 存储桶中创建新文件夹。将此新文件夹命名为 'src'。

  2. 将您的 PDF 源文件添加到您的src'folder。在后一个步骤中,将这些文件注释以训练您的识别器。

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

    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. 您现在已有私有人力 SageMaker Ground Truth 工作人员并已将您的源文件上传到 S3 存储桶,部署指导/src/; 您已经准备好开始注释了。

创建注释作业

这些区域有:comprehend-ssie-annotation-tool-cli.py在中编写脚本bindirectory 是一个简单的封装命令,它简化了 SageMaker Ground Truth 标记作业 python 脚本从 S3 存储桶中读取源文档,并创建相应的单页清单文件,每行一个源文档。然后,该脚本会创建一个标记作业,该作业需要清单文件作为输入。

python 脚本使用 S3 存储桶和 CloudFormation 您在中配置的堆栈步骤 6. 该脚本必需的输入参数包括:

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

  • cfn-name:这些区域有: CloudFormation 堆栈名称。如果您在中使用了默认值步骤 6,你的 cfn 名称是sam-app.

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

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

  • 实体类型:标记作业期间要使用的实体,以逗号分隔。此列表必须包括要在训练数据集中注释的所有实体。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 %

使用注释 SageMaker Ground Truth

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

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

  2. Select标记人力然后选择私密.

  3. UNDER私人劳动力摘要中,选择您为私人员工创建的标注门户登录 URL。使用相应的用户名和密码登录。

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

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

    您将在注释屏幕中看到其中一个文档打开,并在其上方看到您在设置过程中提供的实体类型。在实体类型的右侧,有一个箭头可用于在文档中导航。

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

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

    完成后,请选择S3,然后使用导航箭头移动到下一个文档。重复此操作,直到您为所有 PDF 添加了注释。

对所有培训文档进行注释后,您可以在 Amazon S3 存储桶的以下位置找到 JSON 格式的注释:

/output/your labeling job name/annotations/

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

/output/your labeling job name/manifests/