

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 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)
+ [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/ko_kr/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/ko_kr/comprehend/latest/dg/images/deploy_guided_anno_2.png)

   CloudFormation 스택 상태가 생성-완료로 전환되면 리소스를 사용할 준비가 된 것입니다.

## S3 버킷에 파일 업로드
<a name="cer-annotation-pdf-upload"></a>

[설정](#cer-annotation-pdf-set-up) 섹션에서는 **comprehend-semi-structured-documents-\$1\$1AWS::Region\$1-\$1\$1AWS::AccountId\$1**라는 S3 버킷을 생성하는 CloudFormation 스택을 배포했습니다. 이제 원본 PDF 문서를 이 버킷에 업로드합니다.

**참고**  
이 버킷에는 레이블 제작 작업에 필요한 데이터가 들어 있습니다. Lambda 실행 역할 정책은 Lambda 함수가 이 버킷에 액세스할 수 있는 권한을 부여합니다.  
'**SemiStructuredDocumentsS3Bucket**' 키를 사용하여 **CloudFormation Stack 세부 정보**에서 S3 버킷 이름을 찾을 수 있습니다.

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 버킷, **deploy-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>

이제 필요한 리소스를 구성하고 레이블 제작 작업을 생성했으므로 레이블 제작 포털에 로그인하여 PDF에 주석을 달 수 있습니다.

1. Chrome 또는 Firefox 웹 브라우저를 사용하여 [SageMaker AI 콘솔](https://console.aws.amazon.com/sagemaker)에 로그인합니다.

1. **레이블링 인력**을 선택하고 **비공개**를 선택합니다.

1. **프라이빗 작업 인력 요약**에서 프라이빗 작업 인력과 함께 만든 레이블 지정 포털 로그인 URL을 선택합니다. 적절한 보안 인증으로 로그인합니다.

   목록에 작업이 없더라도 걱정하지 마십시오. 주석을 달기 위해 업로드한 파일 수에 따라 업데이트하는 데 시간이 걸릴 수 있습니다.

1. 작업을 선택하고 오른쪽 상단에서 **작업 시작**을 선택하여 주석 화면을 엽니다.

   주석 화면에 문서 중 하나가 열리고, 그 위에는 설정 중에 제공한 개체 유형이 표시됩니다. 개체 유형 오른쪽에는 문서를 탐색하는 데 사용할 수 있는 화살표가 있습니다.  
![\[Amazon Comprehend 주석 화면.\]](http://docs.aws.amazon.com/ko_kr/comprehend/latest/dg/images/annotation_demo1.png)

   열려 있는 문서에 주석을 답니다. 또한 각 문서에서 주석을 제거하거나 실행 취소하거나 자동으로 태그를 지정할 수 있습니다. 이러한 옵션은 주석 도구의 오른쪽 패널에서 사용할 수 있습니다.  
![\[Amazon Comprehend 주석 오른쪽 패널에서 사용 가능한 옵션입니다.\]](http://docs.aws.amazon.com/ko_kr/comprehend/latest/dg/images/data_annotation.png)

   자동 태그를 사용하려면 개체 중 하나의 인스턴스에 주석을 다십시오. 그러면 해당 단어의 다른 모든 인스턴스에 자동으로 해당 개체 유형으로 주석이 추가됩니다.

   작업을 마치면 오른쪽 하단에서 **제출**을 선택하고 탐색 화살표를 사용하여 다음 문서로 이동합니다. 모든 PDF에 주석을 달 때까지 이 과정을 반복합니다.

모든 학습 문서에 주석을 달고 나면 다음 위치의 Amazon S3 버킷에서 JSON 형식의 주석을 찾을 수 있습니다.

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

출력 폴더에는 학습 문서 내의 모든 주석을 나열하는 출력 매니페스트 파일도 포함되어 있습니다. 다음 위치에서 출력 매니페스트 파일을 찾을 수 있습니다.

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