

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

# Annotations
<a name="cer-annotation"></a>

주석은 사용자 지정 개체 유형을 학습 문서에서 해당 개체가 나타나는 위치와 연결하여 상황에 맞게 개체에 레이블을 지정합니다.

문서와 함께 주석을 제출하면 모델의 정확도를 높일 수 있습니다. 주석을 사용하면 단순히 찾고 있는 개체의 위치를 제공하는 데 그치지 않고 원하는 사용자 지정 개체에 더 정확한 컨텍스트를 제공할 수 있습니다.

예를 들어, 개체 유형이 Judge인 John Johnson이라는 이름을 검색하는 경우 주석을 달면 모델이 찾으려는 사람이 판사임을 알아내는 데 도움이 될 수 있습니다. 컨텍스트를 사용할 수 있는 경우, Amazon Comprehend는 John Johnson이라는 변호사 또는 증인을 찾지 않습니다. Amazon Comprehend는 주석을 제공하지 않고 자체 버전의 주석을 생성하지만 판사만 포함하는 데는 그다지 효과적이지 않습니다. 주석을 직접 작성하면 더 나은 결과를 얻고 사용자 지정 개체를 추출할 때 컨텍스트를 더 잘 활용할 수 있는 모델을 생성하는 데 도움이 될 수 있습니다.

**Topics**
+ [최소 주석 수](#prep-training-data-ann)
+ [주석 모범 사례](#cer-annotation-best-practices)
+ [일반 텍스트 주석 파일](cer-annotation-csv.md)
+ [PDF 주석 파일](cer-annotation-manifest.md)
+ [PDF 파일 주석 달기](cer-annotation-pdf.md)

## 최소 주석 수
<a name="prep-training-data-ann"></a>

모델을 학습시키는 데 필요한 최소 입력 문서 및 주석 수는 주석 유형에 따라 다릅니다.

**PDF 주석**  
이미지 파일, PDF 또는 Word 문서를 분석하기 위한 모델을 생성하려면 PDF 주석을 사용하여 인식기를 학습하십시오. PDF 주석의 경우 최소 250개의 입력 문서와 항목당 최소 100개의 주석을 제공하십시오.  
테스트 데이터세트를 제공하는 경우 테스트 데이터에는 생성 요청에 지정된 각 개체 유형에 대한 주석이 하나 이상 포함되어야 합니다.

**일반 텍스트 주석**  
텍스트 문서 분석을 위한 모델을 만들려면 일반 텍스트 주석을 사용하여 인식기를 학습시킬 수 있습니다.  
일반 텍스트 주석의 경우 주석이 달린 입력 문서를 3개 이상 제공하고 항목당 주석을 25개 이상 제공하십시오. 총 50개 미만의 주석을 제공하는 경우, Amazon Comprehend는 모델을 테스트하기 위해 입력 문서의 10% 이상을 예약합니다(학습 요청에서 테스트 데이터 세트를 제공하지 않은 경우). 최소 문서 코퍼스 크기는 5KB라는 점을 잊지 마십시오.  
입력에 학습 문서가 몇 개만 포함된 경우 학습 입력 데이터에 개체 중 하나를 언급하는 문서가 너무 적다는 오류가 발생할 수 있습니다. 개체가 언급된 추가 문서와 함께 작업을 다시 제출하세요.  
테스트 데이터세트를 제공하는 경우 테스트 데이터에는 생성 요청에 지정된 각 개체 유형에 대한 주석이 하나 이상 포함되어야 합니다.  
작은 데이터 세트로 모델을 벤치마킹하는 방법의 예는 [Amazon Comprehend가 블로그 사이트에서 사용자 지정 엔터티 인식을 위한 더 낮은 주석 제한을 발표했습니다](https://aws.amazon.com/blogs/machine-learning/amazon-comprehend-announces-lower-annotation-limits-for-custom-entity-recognition/)를 참조하세요. AWS 

## 주석 모범 사례
<a name="cer-annotation-best-practices"></a>

주석을 사용할 때 최상의 결과를 얻으려면 다음을 포함하여 여러 가지 사항을 고려해야 합니다.
+ 데이터에 주의를 기울여 주석을 달고 해당 항목에 대한 모든 멘션에 주석을 달았는지 확인하십시오. 주석이 정확하지 않으면 결과가 좋지 않을 수 있습니다.
+ 입력 데이터에는 주석을 달려는 PDF의 복제본과 같은 중복된 내용이 포함되어서는 안 됩니다. 샘플이 중복되면 테스트 세트가 오염되어 학습 프로세스, 모델 지표 및 모델 동작에 부정적인 영향을 미칠 수 있습니다.
+ 모든 문서에 주석을 달아야 하며, 주석이 없는 문서는 적법한 개체가 없기 때문이지 과실로 인한 것이 아님을 확인하십시오. 예를 들어, “J Doe는 14년 동안 엔지니어로 일했습니다”라는 문서가 있는 경우 “J Doe”와 “John Doe”에 대한 주석도 제공해야 합니다. 그렇게 하지 않으면 모델이 혼동을 하여 모델이 “J Doe”를 ENGINEER로 인식하지 못할 수 있습니다. 이는 동일한 문서 내에서, 또는 문서 간에도 일관되어야 합니다.
+ 일반적으로 주석을 많이 달면 더 나은 결과를 얻을 수 있습니다.
+ [최소한](guidelines-and-limits.md#limits-custom-entity-recognition)의 문서와 주석으로 모델을 학습시킬 수 있지만 데이터를 추가하면 일반적으로 모델이 향상됩니다. 모델의 정확도를 높이려면 주석이 달린 데이터의 양을 10% 늘리는 것이 좋습니다. 변경되지 않고 다른 모델 버전에서 테스트할 수 있는 테스트 데이터세트에 대해 추론을 실행할 수 있습니다. 그런 다음 후속 모델 버전의 지표를 비교할 수 있습니다.
+ 실제 사용 사례와 최대한 유사한 문서를 제공하십시오. 패턴이 반복되는 합성 데이터는 피해야 합니다. 입력 데이터는 과적합을 방지하고 기본 모델이 실제 예제를 보다 잘 일반화할 수 있도록 최대한 다양해야 합니다.
+ 문서는 단어 수 측면에서 다양해야 합니다. 예를 들어, 학습 데이터의 모든 문서가 짧으면 결과 모델이 긴 문서에서 개체를 예측하기 어려울 수 있습니다.
+ 사용자 지정 개체를 실제로 감지할 때 사용할 것으로 예상되는 것과 동일한 데이터 분포(추론 시간)를 학습에 적용해 보십시오. 예를 들어, 추론 시 개체가 없는 문서를 보내려는 경우 이 문서도 교육 문서 세트에 포함되어야 합니다.

추가 제안 사항은 [사용자 지정 개체 인식기 성능 개선](https://docs.aws.amazon.com/comprehend/latest/dg/cer-metrics.html#cer-performance)을 참조하세요.

# 일반 텍스트 주석 파일
<a name="cer-annotation-csv"></a>

일반 텍스트 주석의 경우 주석 목록이 포함된 쉼표로 구분된 값 (CSV) 파일을 생성합니다. 학습 파일 입력 형식이 **한 줄에 한 문서**인 경우 CSV 파일에는 다음 열이 포함되어야 합니다.


| 파일 | 행 | 오프셋 시작 | 오프셋 종료 | Type | 
| --- | --- | --- | --- | --- | 
|  문서가 포함된 파일의 이름입니다. 예를 들어, 문서 파일 중 하나가 `s3://my-S3-bucket/test-files/documents.txt`에 있는 경우, `File` 열의 값은 `documents.txt`가 됩니다. 파일 이름의 일부로 파일 확장자(이 경우 '`.txt`')를 포함해야 합니다.  |  개체가 포함된 줄 번호입니다. 입력 형식이 파일당 문서 하나인 경우 이 열을 생략합니다.  |  개체가 시작되는 위치를 나타내는 입력 텍스트의 문자 오프셋(줄의 시작 부분을 기준으로 함)입니다. 첫 번째 문자는 위치 0에 있습니다.  |  개체가 끝나는 위치를 나타내는 입력 텍스트의 문자 오프셋입니다.  |  고객이 정의한 개체 유형. 개체 유형은 대문자로 밑줄로 구분된 문자열이어야 합니다. `MANAGER`, `SENIOR_MANAGER` 또는 `PRODUCT_CODE` 같은 설명형 개체 유형을 사용하는 것이 좋습니다. 모델당 최대 25개의 개체 유형을 학습시킬 수 있습니다.  | 

학습 파일 입력 형식이 **파일당 하나의 문서**인 경우, 줄 번호 열을 생략하고 **시작 오프셋** 및 **종료 오프셋** 값은 문서 시작부터 개체의 오프셋입니다.

다음 예제는 한 줄에 한 문서에 대한 것입니다. `documents.txt` 파일은 네 줄(행 0, 1, 2, 3)로 구성됩니다.

```
Diego Ramirez is an engineer in the high tech industry.
Emilio Johnson has been an engineer for 14 years.
J Doe is a judge on the Washington Supreme Court.
Our latest new employee, Mateo Jackson, has been a manager in the industry for 4 years.
```

주석 목록이 있는 CSV 파일은 다음과 같습니다.

```
File, Line, Begin Offset, End Offset, Type
documents.txt, 0, 0, 13, ENGINEER
documents.txt, 1, 0, 14, ENGINEER
documents.txt, 3, 25, 38, MANAGER
```

**참고**  
주석 파일에서 개체를 포함하는 줄 번호는 줄 0으로 시작합니다. 이 예제에서는 `documents.txt`의 줄 2에 개체가 없기 때문에 CSV 파일에는 줄 2에 대한 항목이 없습니다.

**데이터 파일 생성**

오류 위험을 줄이려면 적절하게 구성된 CSV 파일에 주석을 넣는 것이 중요합니다. CSV 파일을 수동으로 구성하려면 다음 조건이 충족되어야 합니다.
+ UTF-8 인코딩은 대부분의 경우 기본값으로 사용되더라도 명시적으로 지정해야 합니다.
+ 첫 번째 줄에는 열 머리글: `File`, `Line`(선택 사항), `Begin Offset`, `End Offset`, `Type`이 포함됩니다.

잠재적 문제를 방지하려면 프로그래밍 방식으로 CSV 입력 파일을 생성하는 것이 좋습니다.

다음 예제는 Python을 사용하여 이전에 표시된 주석에 대한 CSV를 생성합니다.

```
import csv 
with open("./annotations/annotations.csv", "w", encoding="utf-8") as csv_file:
    csv_writer = csv.writer(csv_file)
    csv_writer.writerow(["File", "Line", "Begin Offset", "End Offset", "Type"])
    csv_writer.writerow(["documents.txt", 0, 0, 11, "ENGINEER"])
    csv_writer.writerow(["documents.txt", 1, 0, 5, "ENGINEER"])
    csv_writer.writerow(["documents.txt", 3, 25, 30, "MANAGER"])
```

# PDF 주석 파일
<a name="cer-annotation-manifest"></a>

PDF 주석의 경우 SageMaker AI Ground Truth를 사용하여 증강 매니페스트 파일에 레이블이 지정된 데이터 세트를 생성합니다. Ground Truth는 사용자(또는 고용한 작업 인력)가 기계 학습 모델에 사용할 학습 데이터 세트 구축에 도움이 되는 데이터 레이블 지정 서비스입니다. Amazon Comprehend는 증강 매니페스트 파일을 사용자 정의 모델의 학습 데이터로 받아들입니다. Amazon Comprehend 콘솔 [또는](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_CreateEntityRecognizer.html) 개체 인식기 생성 API 작업을 사용하여 사용자 지정 개체 인식기를 생성할 때 이러한 파일을 제공할 수 있습니다.

Ground Truth의 기본 제공 작업 유형인 명명된 개체 인식을 사용하여 작업자가 텍스트에서 개체를 식별하도록 하는 레이블 작업을 생성할 수 있습니다. 자세한 내용은 *Amazon SageMaker AI 개발자 안내서*의 [명명된 엔터티 인식을](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-named-entity-recg.html#sms-creating-ner-console) 참조하세요. Amazon SageMaker Ground Truth에 대한 자세한 내용은 [ Amazon SageMaker AI Ground Truth를 사용하여 데이터 레이블](https://docs.aws.amazon.com/sagemaker/latest/dg/sms.html) 지정을 참조하세요.

**참고**  
Ground Truth를 사용하여 중첩된 레이블(둘 이상의 레이블과 연결하는 텍스트)을 정의할 수 있습니다. 하지만 Amazon Comprehend 개체 인식은 중첩 레이블을 지원하지 않습니다.

증강 매니페스트 파일은 JSON 라인 형식입니다. 이 파일에서 각 라인은 학습 문서 및 관련 레이블이 포함된 완전한 JSON 객체입니다. 다음 예제는 텍스트에 언급된 개인의 직업을 감지하도록 개체 인식기를 학습시키는 증강 매니페스트 파일입니다.

```
{"source":"Diego Ramirez is an engineer in the high tech industry.","NamedEntityRecognitionDemo":{"annotations":{"entities":[{"endOffset":13,"startOffset":0,"label":"ENGINEER"}],"labels":[{"label":"ENGINEER"}]}},"NamedEntityRecognitionDemo-metadata":{"entities":[{"confidence":0.92}],"job-name":"labeling-job/namedentityrecognitiondemo","type":"groundtruth/text-span","creation-date":"2020-05-14T21:45:27.175903","human-annotated":"yes"}}
{"source":"J Doe is a judge on the Washington Supreme Court.","NamedEntityRecognitionDemo":{"annotations":{"entities":[{"endOffset":5,"startOffset":0,"label":"JUDGE"}],"labels":[{"label":"JUDGE"}]}},"NamedEntityRecognitionDemo-metadata":{"entities":[{"confidence":0.72}],"job-name":"labeling-job/namedentityrecognitiondemo","type":"groundtruth/text-span","creation-date":"2020-05-14T21:45:27.174910","human-annotated":"yes"}}
{"source":"Our latest new employee, Mateo Jackson, has been a manager in the industry for 4 years.","NamedEntityRecognitionDemo":{"annotations":{"entities":[{"endOffset":38,"startOffset":26,"label":"MANAGER"}],"labels":[{"label":"MANAGER"}]}},"NamedEntityRecognitionDemo-metadata":{"entities":[{"confidence":0.91}],"job-name":"labeling-job/namedentityrecognitiondemo","type":"groundtruth/text-span","creation-date":"2020-05-14T21:45:27.174035","human-annotated":"yes"}}
```

이 JSON 라인 파일의 각 라인은 완전한 JSON 객체이며, 속성에는 Ground Truth의 문서 텍스트, 주석 및 기타 메타데이터가 포함되어 있습니다. 다음 예제는 증강 매니페스트 파일에 있는 단일 JSON 객체이지만 가독성을 위해 형식을 변경하였습니다.

```
{
  "source": "Diego Ramirez is an engineer in the high tech industry.",
  "NamedEntityRecognitionDemo": {
    "annotations": {
      "entities": [
        {
          "endOffset": 13,
          "startOffset": 0,
          "label": "ENGINEER"
        }
      ],
      "labels": [
        {
          "label": "ENGINEER"
        }
      ]
    }
  },
  "NamedEntityRecognitionDemo-metadata": {
    "entities": [
      {
        "confidence": 0.92
      }
    ],
    "job-name": "labeling-job/namedentityrecognitiondemo",
    "type": "groundtruth/text-span",
    "creation-date": "2020-05-14T21:45:27.175903",
    "human-annotated": "yes"
  }
}
```

이 예제에서 `source` 속성은 학습 문서의 텍스트를 제공하고 `NamedEntityRecognitionDemo` 속성은 텍스트의 개체에 대한 주석을 제공합니다. `NamedEntityRecognitionDemo` 속성의 이름은 임의적이며 Ground Truth에서 레이블 지정 작업을 정의할 때 사용자가 선택한 이름을 제공합니다.

이 예제에서 `NamedEntityRecognitionDemo` 속성은 *레이블 속성 이름*으로 Ground Truth 작업자가 학습 데이터에 할당하는 레이블을 제공하는 속성입니다. Amazon Comprehend에 학습 데이터를 제공할 때는 하나 이상의 레이블 속성 이름을 지정해야 합니다. 지정하는 속성 이름의 수는 증강 매니페스트 파일이 단일 레이블 작업의 출력인지 아니면 연속 레이블 작업 출력인지에 따라 달라집니다.

파일이 단일 레이블 작업 출력인 경우 Ground Truth에서 작업을 생성할 때 사용한 단일 레이블 속성 이름을 지정하십시오.

파일이 체인 레이블 지정 작업의 출력인 경우 체인에 있는 하나 이상의 작업에 대한 레이블 속성 이름을 지정하십시오. 각 레이블 속성 이름은 개별 작업의 주석을 제공합니다. 연속 레이블 작업으로 생성되는 증강 매니페스트 파일에는 이러한 속성을 최대 5개까지 지정할 수 있습니다.

증강 매니페스트 파일에서는 일반적으로 레이블 속성 이름이 키 뒤에 옵니다. `source` 파일이 연속 작업 출력인 경우 레이블 속성 이름은 여러 개가 있습니다. Amazon Comprehend에 학습 데이터를 제공할 때는 모델과 관련된 주석이 포함된 속성만 제공하십시오. “-metadata”로 끝나는 속성은 지정하지 마십시오.

체인 레이블 지정 작업에 대한 자세한 내용과 해당 작업이 생성하는 출력의 예는 Amazon SageMaker AI 개발자 안내서의 [체인 레이블 지정 작업을 참조하세요](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-reusing-data.html).

# 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/
```