Amazon Comprehend를 위한 PDF 사전 라벨링 자동화 | 아마존 웹 서비스

Amazon Comprehend를 위한 PDF 사전 라벨링 자동화 | 아마존 웹 서비스

아마존 이해 텍스트 데이터에서 인사이트를 도출할 수 있도록 사전 학습된 맞춤형 API를 제공하는 자연어 처리(NLP) 서비스입니다. Amazon Comprehend 고객은 사용자 지정 명명된 엔터티 인식(NER) 모델을 교육하여 비즈니스에 고유한 위치, 사람 이름, 날짜 등 관심 있는 엔터티를 추출할 수 있습니다.

사용자 정의 모델을 훈련하려면 먼저 문서의 항목에 수동으로 주석을 달아 훈련 데이터를 준비합니다. 이 작업은 다음을 사용하여 수행할 수 있습니다. 반구조화된 문서 주석 도구 이해, 이는 아마존 세이지 메이커 그라운드 진실 사용자 정의 템플릿을 사용하여 작업을 수행하면 주석자가 PDF 문서에서 엔터티 주위에 경계 상자를 직접 그릴 수 있습니다. 그러나 SAP와 같은 ERP 시스템에 기존 테이블 형식 엔터티 데이터가 있는 회사의 경우 수동 주석 작업이 반복적이고 시간이 많이 걸릴 수 있습니다.

훈련 데이터를 준비하는 노력을 줄이기 위해 다음을 사용하여 사전 라벨링 도구를 구축했습니다. AWS 단계 함수 기존 테이블 형식 엔터티 데이터를 사용하여 문서에 자동으로 주석을 추가합니다. 이를 통해 Amazon Comprehend에서 정확한 사용자 지정 엔터티 인식 모델을 교육하는 데 필요한 수동 작업이 크게 줄어듭니다.

이 게시물에서는 사전 라벨링 도구를 설정하는 단계를 안내하고 공개 문서에 자동으로 주석을 추가하는 방법의 예를 보여줍니다. 데이터 세트 PDF 형식의 샘플 은행 명세서입니다. 전체 코드는 다음에서 확인할 수 있습니다. GitHub 레포.

솔루션 개요

이 섹션에서는 사전 라벨링 도구의 입력 및 출력에 대해 논의하고 솔루션 아키텍처에 대한 개요를 제공합니다.

입력 및 출력

사전 레이블 지정 도구는 주석을 추가할 텍스트가 포함된 PDF 문서를 입력으로 사용합니다. 데모에서는 다음 예와 같이 시뮬레이션된 은행 명세서를 사용합니다.

Amazon Comprehend를 위한 PDF 사전 레이블 지정 자동화 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

또한 이 도구는 PDF 문서를 이러한 문서에서 추출하려는 엔터티와 매핑하는 매니페스트 파일을 사용합니다. 엔터티는 두 가지로 구성됩니다. expected_text 문서에서 추출합니다(예: AnyCompany Bank) 및 해당 entity_type (예 : bank_name). 이 게시물의 뒷부분에서는 다음 예와 같이 CSV 문서에서 이 매니페스트 파일을 구성하는 방법을 보여줍니다.

Amazon Comprehend를 위한 PDF 사전 레이블 지정 자동화 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

사전 레이블 지정 도구는 매니페스트 파일을 사용하여 해당 엔터티로 문서에 자동으로 주석을 추가합니다. 그런 다음 이러한 주석을 직접 사용하여 Amazon Comprehend 모델을 교육할 수 있습니다.

또는 다음 스크린샷과 같이 사람이 검토하고 편집할 수 있도록 SageMaker Ground Truth 레이블 지정 작업을 생성할 수 있습니다.

Amazon Comprehend를 위한 PDF 사전 레이블 지정 자동화 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

검토가 완료되면 주석이 달린 데이터를 사용하여 Amazon Comprehend 사용자 지정 엔터티 인식기 모델을 교육할 수 있습니다.

아키텍처

사전 라벨링 도구는 여러 가지로 구성됩니다. AWS 람다 Step Functions 상태 시스템에 의해 조정되는 기능입니다. 사전 주석을 생성하기 위해 서로 다른 기술을 사용하는 두 가지 버전이 있습니다.

첫 번째 기술은 퍼지 매칭. 이를 위해서는 예상 엔터티가 포함된 사전 매니페스트 파일이 필요합니다. 이 도구는 퍼지 일치 알고리즘을 사용하여 텍스트 유사성을 비교하여 사전 주석을 생성합니다.

퍼지 일치는 사전 매니페스트 파일에 나열된 예상 엔터티와 유사한(반드시 동일하지는 않음) 문서의 문자열을 찾습니다. 먼저 예상 텍스트와 문서의 단어 간의 텍스트 유사성 점수를 계산한 다음 임계값을 초과하는 모든 쌍을 일치시킵니다. 따라서 정확하게 일치하는 항목이 없더라도 퍼지 일치를 통해 약어 및 철자 오류와 같은 변형을 찾을 수 있습니다. 이를 통해 도구는 엔터티를 그대로 표시하지 않고도 문서에 미리 레이블을 지정할 수 있습니다. 예를 들어, 'AnyCompany Bank' 예상 엔터티로 나열되어 있으면 퍼지 매칭이 다음 항목에 주석을 달 것입니다. 'Any Companys Bank'. 이는 엄격한 문자열 일치보다 더 많은 유연성을 제공하며 사전 레이블 지정 도구가 자동으로 더 많은 엔터티에 레이블을 지정할 수 있도록 합니다.

다음 다이어그램은 이 Step Functions 상태 머신의 아키텍처를 보여줍니다.

Amazon Comprehend를 위한 PDF 사전 레이블 지정 자동화 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

두 번째 기술에는 다음이 필요합니다. 사전 훈련된 Amazon Comprehend 엔터티 인식기 모델. 이 도구는 다음 다이어그램에 표시된 워크플로에 따라 Amazon Comprehend 모델을 사용하여 사전 주석을 생성합니다.

Amazon Comprehend를 위한 PDF 사전 레이블 지정 자동화 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

다음 다이어그램은 전체 아키텍처를 보여줍니다.

Amazon Comprehend를 위한 PDF 사전 레이블 지정 자동화 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

다음 섹션에서는 솔루션을 구현하는 단계를 안내합니다.

사전 라벨링 도구 배포

저장소를 로컬 머신에 복제합니다.

git clone https://github.com/aws-samples/amazon-comprehend-automated-pdf-prelabeling-tool.git

이 저장소는 Comprehend 반구조화된 문서 주석 도구를 기반으로 구축되었으며 SageMaker Ground Truth UI에 이미 표시된 사전 주석을 사용하여 SageMaker Ground Truth 레이블 지정 작업을 시작할 수 있도록 하여 기능을 확장합니다.

사전 라벨링 도구에는 Comprehend Semi-Structured Documents Annotation Tool 리소스와 사전 라벨링 도구와 관련된 일부 리소스가 모두 포함되어 있습니다. 다음을 사용하여 솔루션을 배포할 수 있습니다. AWS 서버리스 애플리케이션 모델 (AWS SAM)은 서버리스 애플리케이션 인프라 코드를 정의하는 데 사용할 수 있는 오픈 소스 프레임워크입니다.

이전에 Comprehend Semi-Structured Documents Annotation Tool을 배포한 경우 FAQ 섹션을 참조하세요. Pre_labeling_tool/README.md 사전 레이블 지정 도구와 관련된 리소스만 배포하는 방법에 대한 지침을 참조하세요.

이전에 도구를 배포한 적이 없고 새로 시작하는 경우 다음을 수행하여 전체 솔루션을 배포하세요.

현재 디렉토리를 주석 도구 폴더로 변경합니다.

cd amazon-comprehend-semi-structured-documents-annotation-tools

솔루션을 구축하고 배포합니다.

make ready-and-deploy-guided

사전 매니페스트 파일 만들기

사전 라벨링 도구를 사용하려면 먼저 데이터를 준비해야 합니다. 주요 입력은 PDF 문서와 사전 매니페스트 파일입니다. 사전 매니페스트 파일에는 각 PDF 문서의 위치가 포함되어 있습니다. 'pdf' 라벨을 붙일 것으로 예상되는 엔터티가 있는 JSON 파일의 위치 'expected_entities'.

노트북 generate_premanifest_file.ipynb 이 파일을 만드는 방법을 보여줍니다. 데모에서 사전 매니페스트 파일은 다음 코드를 보여줍니다.

[ { 'pdf': 's3://<bucket>/data_aws_idp_workshop_data/bank_stmt_0.pdf', 'expected_entities': 's3://<bucket>/prelabeling-inputs/expected-entities/example-demo/fuzzymatching_version/file_bank_stmt_0.json' }, ...
]

사전 매니페스트 파일에 나열된 각 JSON 파일(아래 expected_entities)에는 각 예상 엔터티에 대해 하나씩 사전 목록이 포함되어 있습니다. 사전에는 다음과 같은 키가 있습니다.

  • '예상_텍스트' – 엔터티와 일치하는 가능한 텍스트 문자열 목록입니다.
  • '엔티티_유형' – 해당 엔터티 유형.
  • 'ignore_list'(선택사항) – 일치에서 무시해야 하는 단어 목록입니다. 퍼지 일치가 잘못된 것으로 알고 있는 특정 단어 조합과 일치하지 않도록 하려면 이러한 매개변수를 사용해야 합니다. 이는 이름을 볼 때 일부 숫자나 이메일 주소를 무시하려는 경우 유용할 수 있습니다.

예를 들어, expected_entities 이전에 표시된 PDF는 다음과 같습니다.

[ { 'expected_texts': ['AnyCompany Bank'], 'entity_type': 'bank_name', 'ignore_list': [] }, { 'expected_texts': ['JANE DOE'], 'entity_type': 'customer_name', 'ignore_list': ['JANE.DOE@example_mail.com'] }, { 'expected_texts': ['003884257406'], 'entity_type': 'checking_number', 'ignore_list': [] }, ...
]

사전 라벨 지정 도구 실행

이전 단계에서 생성한 사전 매니페스트 파일을 사용하여 사전 레이블 지정 도구 실행을 시작합니다. 자세한 내용은 노트를 참고하세요 start_step_functions.ipynb.

사전 라벨링 도구를 시작하려면 event 다음 키를 사용하세요.

  • 사전 발현 – 각 PDF 문서를 해당 문서에 매핑합니다. expected_entities 파일. 여기에는 다음이 포함되어야 합니다. 아마존 단순 스토리지 서비스 (Amazon S3) 버킷(아래 bucket) 및 키(아래 key) 파일의
  • 접두사 – 생성하는 데 사용됩니다. execution_id, 출력 스토리지용 S3 폴더 이름과 SageMaker Ground Truth 라벨링 작업 이름을 지정합니다.
  • 엔터티_유형 – 주석자가 라벨을 지정할 수 있도록 UI에 표시됩니다. 여기에는 예상 엔터티 파일의 모든 엔터티 유형이 포함되어야 합니다.
  • work_team_name (선택사항) – SageMaker Ground Truth 라벨링 작업을 생성하는 데 사용됩니다. 민간인력이 사용하는 것에 해당합니다. 제공되지 않으면 SageMaker Ground Truth 레이블 지정 작업 대신 매니페스트 파일만 생성됩니다. 나중에 매니페스트 파일을 사용하여 SageMaker Ground Truth 레이블 지정 작업을 생성할 수 있습니다. 이 글을 쓰는 시점에서는 노트북에서 레이블 지정 작업을 생성할 때 외부 인력을 제공할 수 없습니다. 그러나 생성된 작업을 복제하여 SageMaker Ground Truth 콘솔에서 외부 인력에게 할당할 수 있습니다.
  • comprehend_parameters (선택 사항) – Amazon Comprehend 사용자 지정 엔터티 인식기 모델을 직접 교육하기 위한 매개 변수입니다. 생략하면 이 단계를 건너뜁니다.

상태 머신을 시작하려면 다음 Python 코드를 실행하세요.

import boto3
stepfunctions_client = boto3.client('stepfunctions')

response = stepfunctions_client.start_execution(
stateMachineArn=fuzzymatching_prelabeling_step_functions_arn,
input=json.dumps(<event-dict>)
)

그러면 상태 머신의 실행이 시작됩니다. Step Functions 콘솔에서 상태 시스템의 진행 상황을 모니터링할 수 있습니다. 다음 다이어그램은 상태 시스템 워크플로를 보여줍니다.

Amazon Comprehend를 위한 PDF 사전 레이블 지정 자동화 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

상태 머신이 완료되면 다음을 수행합니다.

  • 다음에 저장된 다음 출력을 검사합니다. prelabeling/ 의 폴더 comprehend-semi-structured-docs S3 버킷:
    • 문서의 각 페이지에 대한 개별 주석 파일(문서당 페이지당 하나) temp_individual_manifests/
    • SageMaker Ground Truth 라벨링 작업에 대한 매니페스트 consolidated_manifest/consolidated_manifest.manifest
    • 사용자 지정 Amazon Comprehend 모델을 훈련하는 데 사용할 수 있는 매니페스트 consolidated_manifest/consolidated_manifest_comprehend.manifest
  • SageMaker 콘솔에서 주석을 검토하기 위해 생성된 SageMaker Ground Truth 레이블 지정 작업을 엽니다.
  • 훈련된 사용자 지정 Amazon Comprehend 모델을 검사하고 테스트합니다.

앞서 언급했듯이 이 도구는 개인 인력을 위한 SageMaker Ground Truth 라벨링 작업만 생성할 수 있습니다. 사람이 라벨링 작업을 아웃소싱하려면 SageMaker Ground Truth 콘솔에서 라벨링 작업을 복제하고 인력을 새 작업에 연결할 수 있습니다.

정리

추가 비용이 발생하지 않도록 하려면 생성한 리소스를 삭제하고 다음 명령을 사용하여 배포한 스택을 삭제합니다.

make delete

결론

사전 레이블 지정 도구는 기업이 기존 표 형식 데이터를 사용하여 Amazon Comprehend에서 사용자 지정 엔터티 인식 모델을 교육하는 프로세스를 가속화할 수 있는 강력한 방법을 제공합니다. PDF 문서에 자동으로 주석을 추가함으로써 라벨링 프로세스에 필요한 수동 작업을 크게 줄여줍니다.

이 도구에는 퍼지 매칭과 Amazon Comprehend 기반의 두 가지 버전이 있어 초기 주석을 생성하는 방법에 유연성을 제공합니다. 문서에 사전 레이블이 지정되면 SageMaker Ground Truth 레이블 지정 작업에서 문서를 빠르게 검토하거나 검토를 건너뛰고 Amazon Comprehend 사용자 지정 모델을 직접 교육할 수도 있습니다.

사전 라벨링 도구를 사용하면 과거 엔터티 데이터의 가치를 신속하게 파악하고 이를 사용하여 특정 도메인에 맞는 사용자 정의 모델을 만들 수 있습니다. 일반적으로 프로세스에서 가장 노동 집약적인 부분의 속도를 높임으로써 Amazon Comprehend를 통한 사용자 지정 엔터티 인식에 대한 접근성이 그 어느 때보다 높아졌습니다.

SageMaker Ground Truth 레이블 지정 작업을 사용하여 PDF 문서에 레이블을 지정하는 방법에 대한 자세한 내용은 다음을 참조하십시오. Amazon Comprehend를 사용하여 문서에서 명명된 엔터티를 추출하기 위한 사용자 지정 문서 주석Amazon SageMaker Ground Truth를 사용하여 데이터 레이블 지정.


저자 소개

Amazon Comprehend를 위한 PDF 사전 레이블 지정 자동화 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.오스카 슈나크 Generative AI Innovation Center의 응용 과학자입니다. 그는 고객이 접근할 수 있도록 머신러닝 이면의 과학을 탐구하는 데 열정을 쏟고 있습니다. 업무 외에 Oskar는 사이클링을 즐기며 정보 이론의 트렌드를 따라가는 것을 즐깁니다.

Amazon Comprehend를 위한 PDF 사전 레이블 지정 자동화 | Amazon Web Services PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.로맹 베솜베스 Generative AI Innovation Center의 딥 러닝 설계자입니다. 그는 기계 학습을 통해 고객의 비즈니스 문제를 해결하기 위해 혁신적인 아키텍처를 구축하는 데 열정을 갖고 있습니다.

타임 스탬프 :

더보기 AWS 기계 학습