本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
注释 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 员工队伍来支持注释
请务必记录您选择的工作团队名称记录在新的私有人力中,因为在安装过程中会用到它。
设置环境
-
如果使用 Windows,请安装 Cygwin
;如果使用的是 Linux 或 Mac,请跳过此步骤。 -
从中下载注释工件
GitHub。解压缩该文件。 -
在终端窗口中,导航到解压后的文件夹 (amazon-comprehend-semi-structured-documents-annotation-tools-main)。
-
这个文件夹包括一个选项
Makefiles
,您可以运行它来安装依赖项、设置 Python virtualenv 和部署所需的资源。查看自述文件以做出选择。 -
推荐的选项使用单个命令将所有依赖项安装到 virtualenv 中,根据模板构建 AWS CloudFormation 堆栈,然后 AWS 账户 通过交互式指导将堆栈部署到您的。运行以下命令:
make ready-and-deploy-guided
此命令提供了一组配置选项。请确保你的正确 AWS 区域 无误。对于所有其他字段,您可以接受默认值或填写自定义值。如果您修改了 AWS CloudFormation 堆栈名称,请在接下来的步骤中根据需要将其写下来。
CloudFormation 堆栈创建和管理注解工具所需的 AWS lambda
、AWS IAM 角色和 AWS S3 存储桶。 您可以在 CloudFormation 控制台的堆栈详细信息页面中查看这些资源中的每一个资源。
-
该命令会提示您开始部署。 CloudFormation 在指定区域创建所有资源。
当 CloudFormation 堆栈状态转换为 “创建完成” 时,资源就可以使用了。
将 PDF 上传到 S3 存储桶
在设置部分,您部署了一个 CloudFormation 堆栈,该堆栈用于创建名为 comprehend-semi-structured-documents-$ {AWS::Region}-${AWS::AccountId} 的 S3 存储桶。现在,您可以将源 PDF 文档上传到此存储桶中。
注意
此存储桶包含您的标注作业所需的数据。Lambda 执行角色策略向 Lambda 函数授予访问此存储桶的权限。
您可以使用 “S3Bucket” 密钥在CloudFormation 堆栈详细信息中找到 SemiStructuredDocumentsS3 存储桶名称。
-
在 S3 存储桶中,创建一个新的文件夹。将这个新文件夹命名为src。
-
将您的 PDF 源文件添加到src文件夹。在后面的步骤中,将对这些文件进行注释以训练识别器。
-
(可选)以下是可用于将源文档从本地目录上传到 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
/ 你现在有了一名私人 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-namesam-app
\ --work-team-namemy-work-team-name
\ --regionus-east-1
\ --job-name-prefixmy-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 添加注释。
-
使用 Chrome 或 Firefox 网络浏览器登录SageMaker 控制台
。 -
选择标注人力,然后选择私有。
-
在私有人力摘要下,选择您使用私有人力创建的标注门户登录网址。使用适当的凭证登录。
如果您没有看到列出的任何作业,请不要担心,更新可能需要一段时间,具体取决于您上传用于注释的文件数量。
-
选择您的作业,然后在右上角,选择开始工作,以打开注释屏幕。
您将在注释屏幕中看到其中一个文档处于打开状态,并在其上方看到您在设置过程中提供的实体类型。在实体类型的右边,有一个箭头,您可以用它来浏览你的文档。
为打开的文档添加注释。您还可以删除、撤消或自动标记每个文档上的注释;这些选项可在注释工具的右侧面板中找到。
要使用自动标记,请为其中一个实体的实例添加注释;然后,该特定单词的所有其他实例都将自动使用该实体类型进行注释。
完成后,选择右下角的提交,然后使用导航箭头移至下一个文档。重复此操作,直到为所有 PDF 添加了注释。
为所有训练文档添加注释后,您可以在 Amazon S3 存储桶中的以下位置找到 JSON 格式的注释:
/output/
your labeling job name
/annotations/
输出文件夹还包含一个输出清单文件,其中列出了您的训练文档中的所有注释。您可以在以下位置找到您的输出清单文件。
/output/
your labeling job name
/manifests/