

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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 リージョンを使用している場合は、既に Python AWS 環境にインストールされているため、CLI のインストールをスキップできます。この場合、 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. GitHub から[アノテーションアーティファクト](http://github.com/aws-samples/amazon-comprehend-semi-structured-documents-annotation-tools)をダウンロードします。ファイル を解凍します。

1. ターミナルウィンドウから、解凍したフォルダー (**[amazon-comprehend-semi-structured-documents-annotation-tools-main**) に移動します。

1. このフォルダーには、依存関係のインストール、Python virtualenv の設定、および必要なリソースのデプロイを行うために実行する `Makefiles` オプションが含まれています。**readme** ファイルを確認して選択してください。

1. 推奨されるオプションでは、単一のコマンドを使用してすべての依存関係を virtualenv にインストールし、テンプレートから CloudFormation スタックを構築し、インタラクティブなガイダンス AWS アカウント を使用してスタックを にデプロイします。次のコマンドを実行します。

   `make ready-and-deploy-guided`

   このコマンドは一連の設定オプションを表します。　 AWS リージョン が正しいことを確認してください。他のすべてのフィールドで、デフォルト値をそのまま使用するか、カスタム値を入力できます。 CloudFormation スタック名を変更する場合は、次のステップで必要に応じて書き留めます。  
![\[CloudFormation 設定オプションを示すターミナルセッション。\]](http://docs.aws.amazon.com/ja_jp/comprehend/latest/dg/images/deploy_guided_anno.png)

   CloudFormation スタックは、注釈ツールに必要な [AWS lambdas](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/ja_jp/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 関数に付与します。　　　  
S3 バケット名は、「**SemiStructuredDocumentsS3Bucket**」キーを使って、**[CloudFormation スタックの詳細]** で確認できます。

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 ワークフォースがあり、ソースファイルを **deploy-guided/src/** の S3 バケットにアップロードしました。注釈を作成する準備が整いました。

## 注釈ジョブの作成
<a name="cer-annotation-pdf-job"></a>

`bin` ディレクトリの **comprehend-ssie-annotation-tool-cli.py** スクリプトは、SageMaker AI Ground Truth ラベル付けジョブの作成を合理化するシンプルなラッパーコマンドです。Python スクリプトは S3 バケットからソースドキュメントを読み取り、単一ページのマニフェストファイルを作成します。これは、1 行あたり 1 つのソースドキュメントが対応します。　 次に、スクリプトはマニフェストファイルを入力として必要とするラベル付けジョブを作成します。　 

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 名は **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>

必要なリソースを設定し、ラベル付けジョブを作成したら、ラベル付けポータルにログインして PDF に注釈を付けることができます。　

1. Chrome または Firefox ウェブブラウザを使用して [SageMaker AI コンソール](https://console.aws.amazon.com/sagemaker)にログインします。

1. **[ラベル付けワークフォース]** を選択し、**[プライベート]** を選択します。

1. **[プライベートワークフォースの概要]** で、プライベートワークフォースで作成したラベリングポータルのサインイン URL を選択します。適切な認証情報を使用してサインインします。

   リストにジョブが表示されなくても心配はいりません。注釈用にアップロードしたファイルの数によっては、更新に時間がかかる場合があります。

1. タスクを選択し、右上で **[作業開始]** を選択して注釈画面を開きます。

   注釈画面でいずれかのドキュメントが開き、その上に、設定時に指定したエンティティタイプが表示されます。　 エンティティタイプの右側には、ドキュメント間を移動できる矢印があります。  
![\[Amazon Comprehend 注釈画面。\]](http://docs.aws.amazon.com/ja_jp/comprehend/latest/dg/images/annotation_demo1.png)

   開いているドキュメントに注釈を付けます。また、各ドキュメントの注釈を削除、元に戻す、または自動タグ付けすることもできます。これらのオプションは注釈ツールの右側のパネルにあります。　  
![\[Amazon Comprehend 注釈の右パネルで使用可能なオプション。\]](http://docs.aws.amazon.com/ja_jp/comprehend/latest/dg/images/data_annotation.png)

   自動タグを使用するには、エンティティのいずれかのインスタンスに注釈を付けます。その特定の単語以外のすべてのインスタンスには、そのエンティティタイプで自動的に注釈が付けられます。

   完了したら、右下の **[送信]** を選択し、ナビゲーション矢印を使用して次のドキュメントに移動します。すべての PDF に注釈が付けられるまで、これを繰り返します。　　　

すべてのトレーニングドキュメントに注釈を付けると、次の場所にある Amazon S3 バケットに JSON 形式の注釈が表示されます。　

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

出力フォルダには、トレーニングドキュメント内のすべての注釈を一覧表示する出力マニフェストファイルも含まれています。　 出力マニフェストファイルは次の場所にあります。

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