

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

# 注释 PDF 文件
<a name="cer-annotation-pdf"></a>

在 SageMaker AI Ground Truth PDFs 中为训练添加注释之前，请先完成以下先决条件：
+ 安装 python3.8.x
+ 安装 [jq](https://stedolan.github.io/jq/download/)
+ 安装 [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)

  如果你使用的是 us-east-1 区域，则可以跳过安装 AWS CLI，因为它已经安装在你的 Python 环境中。在本例中，您可以创建一个虚拟环境，以便在 AWS Cloud9 中使用 Python 3.8。
+ 配置您的[AWS 凭证](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)
+ 创建一支私人 [SageMaker AI Ground Truth 工作人员队伍](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-private-use-cognito.html)来支持注释

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

**Topics**
+ [

## 设置环境
](#cer-annotation-pdf-set-up)
+ [

## 将 PDF 上传到 S3 存储桶
](#cer-annotation-pdf-upload)
+ [

## 创建注释任务
](#cer-annotation-pdf-job)
+ [

## 使用 SageMaker AI Ground Truth 进行注释
](#w2aac35c23c21c19c15)

## 设置环境
<a name="cer-annotation-pdf-set-up"></a>

1. 如果使用 Windows，请安装 [Cygwin](https://cygwin.com/install.html)；如果使用的是 Linux 或 Mac，请跳过此步骤。

1. 从中下载[注释工件](http://github.com/aws-samples/amazon-comprehend-semi-structured-documents-annotation-tools) GitHub。解压缩该文件。

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

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

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

   `make ready-and-deploy-guided`

   此命令提供了一组配置选项。请确保你的正确 AWS 区域 无误。对于所有其他字段，您可以接受默认值或填写自定义值。如果您修改了 CloudFormation 堆栈名称，请在接下来的步骤中根据需要将其写下来。  
![\[显示 CloudFormation 配置选项的终端会话。\]](http://docs.aws.amazon.com/zh_cn/comprehend/latest/dg/images/deploy_guided_anno.png)

    CloudFormation 堆栈创建和管理注解工具所需的 [AWS lambda](https://aws.amazon.com/lambda/)、[AWS IAM](https://aws.amazon.com/iam/) 角色和 [AWS S3](https://aws.amazon.com/s3/) 存储桶。

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

1. 该命令会提示您开始部署。 CloudFormation 在指定区域创建所有资源。  
![\[显示已部署 CloudFormation 配置的终端会话。\]](http://docs.aws.amazon.com/zh_cn/comprehend/latest/dg/images/deploy_guided_anno_2.png)

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

## 将 PDF 上传到 S3 存储桶
<a name="cer-annotation-pdf-upload"></a>

在[设置](#cer-annotation-pdf-set-up)部分，您部署了一个 CloudFormation 堆栈，该堆栈用于创建名为 **comprehend-semi-structured-documents-\$1 \$1AWS::Region\$1-\$1\$1AWS::AccountId\$1** 的 S3 存储桶。现在，您可以将源 PDF 文档上传到此存储桶中。

**注意**  
此存储桶包含您的标注任务所需的数据。Lambda 执行角色策略向 Lambda 函数授予访问此存储桶的权限。  
您可以使用 “S3Bucket” 密钥在**CloudFormation 堆栈详细信息**中找到 **SemiStructuredDocumentsS3 存储桶**名称。

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

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

1. （可选）以下是可用于将源文档从本地目录上传到 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/`

1. 你现在有了私人 SageMaker AI Ground Truth 工作人员，并且已经将源文件上传到 S3 存储桶 deplo **y-guided/src/**；你已经准备好开始注释了。

## 创建注释任务
<a name="cer-annotation-pdf-job"></a>

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

python 脚本使用您在[设置](#cer-annotation-pdf-set-up)部分配置的 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**: 你在 SageMaker AI Ground Truth 中建立私人员工队伍时创建的员工队伍名称。
+ **job-name-prefix**: SageMaker AI Ground 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 %
  ```

## 使用 SageMaker AI Ground Truth 进行注释
<a name="w2aac35c23c21c19c15"></a>

现在，您已经配置了所需的资源并创建了标注作业，您可以登录标注门户并对其进行注释。 PDFs

1. 使用 Chrome 或 Firefox 网络浏览器登录[SageMaker 人工智能控制台](https://console.aws.amazon.com/sagemaker)。

1. 选择**标注人力**，然后选择**私有**。

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

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

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

   您将在注释屏幕中看到其中一个文档处于打开状态，并在其上方看到您在设置过程中提供的实体类型。在实体类型的右边，有一个箭头，您可以用它来浏览你的文档。  
![\[亚马逊 Comprehend 注释屏幕。\]](http://docs.aws.amazon.com/zh_cn/comprehend/latest/dg/images/annotation_demo1.png)

   为打开的文档添加注释。您还可以删除、撤消或自动标记每个文档上的注释；这些选项可在注释工具的右侧面板中找到。  
![\[亚马逊 Comprehend 注释右侧面板中的可用选项。\]](http://docs.aws.amazon.com/zh_cn/comprehend/latest/dg/images/data_annotation.png)

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

   完成后，选择右下角的**提交**，然后使用导航箭头移至下一个文档。重复此操作，直到所有注释完为止. PDFs 

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

```
/output/your labeling job name/annotations/
```

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

```
/output/your labeling job name/manifests/
```