Amazon Textract 및 Amazon Comprehend를 사용하여 다중 형식 문서 패키지를 지능적으로 분할

소스 노드 : 1372716

다양한 규모와 업종에 걸쳐 있는 많은 조직이 일상적인 작업을 실행하기 위해 여전히 많은 양의 문서에 의존하고 있습니다. 이 비즈니스 과제를 해결하기 위해 고객은 다음과 같은 AWS의 지능형 문서 처리 서비스를 사용하고 있습니다. 아마존 텍사스아마존 이해 도와 주다 추출 및 공정 자동화. 텍스트, 키-값 쌍, 테이블 및 엔터티를 추출하려면 먼저 이질적인 양식 유형을 포함하는 여러 페이지 PDF 문서를 분할할 수 있어야 합니다. 예를 들어, 모기지 처리에서 브로커 또는 대출 처리 개인은 모기지 신청서(Fannie Mae 양식 1003), W2s, 소득 확인, 1040 세금 양식 등이 포함된 통합 PDF 대출 패키지를 분할해야 할 수 있습니다.

이 문제를 해결하기 위해 조직에서는 양식 제목, 페이지 번호, 양식 길이 등을 통해 문서 유형을 식별하는 규칙 기반 처리를 사용합니다. 이러한 접근 방식은 특히 양식 유형에 여러 변형이 있을 수 있는 경우 오류가 발생하기 쉽고 확장하기 어렵습니다. 따라서 이러한 해결 방법은 실제로 빠르게 실패하고 사람의 개입이 필요합니다.

이 게시물에서는 사용자 지정 규칙을 작성하거나 워크플로를 처리하지 않고도 모든 양식 세트에 대해 약간의 코드로 고유한 문서 분할 솔루션을 만드는 방법을 보여줍니다.

솔루션 개요

이 게시물에서는 일반적인 모기지 신청 양식 세트를 사용하여 Amazon Textract 및 Amazon Comprehend를 사용하여 이전 접근 방식보다 더 강력한 지능형 문서 분할기를 만드는 방법을 보여줍니다. 모기지 신청을 위한 문서를 처리할 때 차용인은 다양한 페이지 길이의 이기종 문서 유형으로 구성된 여러 페이지 PDF를 제출합니다. 정보를 추출하려면 사용자(예: 은행)가 이 PDF를 분해해야 합니다.

모기지 양식에 대한 구체적인 예를 보여주지만 일반적으로 이 접근 방식을 확장하고 거의 모든 다중 페이지 PDF 문서 세트에 적용할 수 있습니다.

Amazon Textract를 사용하여 문서에서 데이터를 추출하고 Amazon Comprehend 호환 데이터 세트를 구축하여 문서 분류 모델. 다음으로 분류 모델을 훈련하고 실시간 문서 분석을 수행할 수 있는 분류 엔드포인트를 생성합니다. Amazon Textract 및 Amazon Comprehend 분류 엔드포인트에는 요금이 부과됩니다. Amazon Textract 요금Amazon Comprehend 요금 자세한 내용은. 마지막으로 이 끝점을 사용하여 문서를 분류하고 분류 결과에 따라 문서를 분할하는 방법을 보여줍니다.

이 솔루션은 다음 AWS 서비스를 사용합니다.

사전 조건

이 솔루션을 빌드하고 배포하려면 다음 사전 요구 사항을 완료해야 합니다.

  1. 설치 파이썬 3.8.x.
  2. 설치 jq.
  3. 설치 AWS SAM CLI.
  4. 설치 도커.
  5. 당신이되어 있는지 확인 핍 설치.
  6. 설치 및 구성 전에, AWS 명령 줄 인터페이스 (AWS CLI).
  7. 구성 귀하의 AWS 자격 증명.

솔루션은 최적의 작업 환경에서 작동하도록 설계되었습니다. us-east-1us-west-2 Amazon Textract에 대해 더 높은 기본 할당량을 활용할 수 있는 리전. 특정 지역 워크로드에 대해서는 다음을 참조하십시오. Amazon Textract 엔드포인트 및 할당량. 전체 솔루션에 대해 단일 리전을 사용해야 합니다.

레포 복제

시작하려면 다음 명령을 실행하여 저장소를 복제하십시오. 그런 다음 작업 디렉토리로 전환합니다.

git clone https://github.com/aws-samples/aws-document-classifier-and-splitter.git
cd aws-document-classifier-and-splitter

솔루션 워크플로

솔루션은 세 가지 워크플로로 구성됩니다.

  • 워크플로1_endpointbuilder – 교육 문서를 가져와 Amazon Comprehend에서 사용자 지정 분류 엔드포인트를 구축합니다.
  • 워크플로2_docsplitter – 문서를 클래스별로 분할하는 문서 분할 서비스 역할을 합니다. 에서 생성된 분류 끝점을 사용합니다. workflow1.
  • 워크플로3_로컬 – 규제가 엄격한 산업에 있고 Amazon S3에서 데이터를 유지할 수 없는 고객을 대상으로 합니다. 이 워크플로에는 다음의 로컬 버전이 포함되어 있습니다. workflow1workflow2.

각 워크플로와 작동 방식에 대해 자세히 살펴보겠습니다.

워크플로 1: PDF, JPG 또는 PNG 문서에서 Amazon Comprehend 분류자 구축

첫 번째 워크플로는 Amazon S3에 저장된 문서를 가져와 Amazon Textract를 통해 문서에서 데이터를 추출하는 일련의 단계를 통해 전송합니다. 그런 다음 추출된 데이터를 사용하여 Amazon Comprehend 사용자 지정 분류 엔드포인트를 생성합니다. 이것은 다음 아키텍처 다이어그램에 나와 있습니다.

개시하다 workflow1, 훈련 데이터 세트 파일이 포함된 폴더의 Amazon S3 URI가 필요합니다(이미지, 단일 페이지 PDF 또는 다중 페이지 PDF일 수 있음). 폴더의 구조는 다음과 같아야 합니다.

root dataset directory
---- class directory
-------- files

또는 구조에 추가 중첩 하위 디렉터리가 있을 수 있습니다.

root dataset directory
---- class directory
-------- nested subdirectories
------------ files

클래스 하위 디렉터리의 이름(두 번째 디렉터리 수준)은 Amazon Comprehend 사용자 지정 분류 모델에서 사용되는 클래스의 이름이 됩니다. 예를 들어, 다음 파일 구조에서 클래스 form123.pdf is tax_forms:

training_dataset
---- tax_forms
-------- page_1
------------ form123.pdf

워크플로를 시작하려면 다음 단계를 완료하십시오.

  1. 소유한 S3 버킷에 데이터세트를 업로드합니다.

분류하려는 각 클래스에 대해 50개 이상의 샘플을 사용하는 것이 좋습니다. 다음 스크린샷은 이 문서 클래스 구조의 예를 보여줍니다.

  1. 빌드 sam-app 다음 명령을 실행하여(필요에 따라 제공된 명령 수정):
cd workflow1_endpointbuilder/sam-app
sam build
sam deploy --guided
Stack Name [sam-app]: endpointbuilder
AWS Region []: us-east-1
#Shows you resources changes to be deployed and require a 'Y' to initiate deploy
Confirm changes before deploy [y/N]: n
#SAM needs permission to be able to create roles to connect to the resources in your template
Allow SAM CLI IAM role creation [Y/n]: y
Save arguments to configuration file [Y/n]: n Looking for resources needed for deployment:
Creating the required resources...
Successfully created!
Managed S3 bucket: {your_bucket}
#Managed repositories will be deleted when their functions are removed from the template and deployed
Create managed ECR repositories for all functions? [Y/n]: y

빌드 출력은 Step Functions 상태 머신에 대한 ARN입니다.

  1. 빌드가 완료되면 상태 머신 Step Functions 콘솔의 페이지.
  2. 생성한 상태 머신을 선택합니다.
  3. 왼쪽 메뉴에서 실행 시작.
  4. 다음 필수 입력 매개변수를 입력하십시오.
{
“folder_uri”: “s3://{your dataset}”
}

  1. 왼쪽 메뉴에서 실행 시작.

상태 시스템이 워크플로를 시작합니다. 데이터 세트의 크기에 따라 몇 시간이 걸릴 수 있습니다. 다음 스크린샷은 진행 중인 상태 머신을 보여줍니다.

상태 머신이 완료되면 다음 스크린샷과 같이 그래프의 각 단계가 녹색입니다.

Amazon Comprehend 콘솔로 이동하여 배포된 엔드포인트를 확인할 수 있습니다.

이제 문서를 사용하여 사용자 정의 분류기를 만들었습니다. 이것은 끝을 표시합니다 workflow1.

워크플로 2: 엔드포인트 빌드

두 번째 워크플로는 에서 생성한 끝점을 사용합니다. workflow1 모델이 훈련된 클래스를 기반으로 문서를 분할합니다. 이것은 다음 아키텍처 다이어그램에 나와 있습니다.

개시하다 workflow2, 우리는 구축 sam-app. 필요에 따라 제공된 명령을 수정합니다.

cd workflow2_docsplitter/sam-app
sam-app % sam build
Build Succeeded sam-app % sam deploy --guided
Configuring SAM deploy
=========================================
Stack Name [sam-app]: docsplitter
AWS Region []: us-east-1
#Shows you resources changes to be deployed and require a 'Y' to initiate deploy
Confirm changes before deploy [y/N]: n
#SAM needs permission to be able to create roles to connect to the resources in your template
Allow SAM CLI IAM role creation [Y/n]: y
Save arguments to configuration file [Y/n]: n Looking for resources needed for deployment:
Managed S3 bucket: {bucket_name}
#Managed repositories will be deleted when their functions are removed from the template and deployed
Create managed ECR repositories for all functions? [Y/n]: y

스택이 생성된 후 로드 밸런서 DNS를 수신합니다. 출력 CloudFormation 스택의 탭입니다. 이 끝점에 대한 요청을 시작할 수 있습니다.

샘플 요청은 workflow2_docsplitter/sample_request_folder/sample_s3_request.py 파일. API는 S3 버킷 이름, 문서 Amazon S3 URI 및 Amazon Comprehend 분류 엔드포인트 ARN의 세 가지 매개변수를 사용합니다. Workflow2는 PDF 입력만 지원합니다.

테스트를 위해 11가지 문서 유형이 있는 XNUMX페이지 모기지 문서를 사용합니다.

API에 대한 응답은 모든 분할 문서가 있는 .zip 파일에 대한 Amazon S3 URI입니다. API 호출에서 제공한 버킷에서도 이 파일을 찾을 수 있습니다.

개체를 다운로드하고 클래스에 따라 분할된 문서를 검토합니다.

이것은 끝을 표시합니다 workflow2. 이제 사용자 지정 Amazon Comprehend 분류 엔드포인트를 사용하여 문서를 분류하고 분할하는 방법을 보여주었습니다.

워크플로 3: 로컬 문서 분할

세 번째 워크플로는 다음과 유사한 목적을 따릅니다. workflow1workflow2 Amazon Comprehend 엔드포인트 생성 그러나 모든 처리는 Amazon Comprehend 호환 CSV 파일을 생성하기 위해 로컬 시스템을 사용하여 수행됩니다. 이 워크플로는 Amazon S3에서 PDF 문서를 유지하는 것이 불가능할 수 있는 엄격한 규제 산업의 고객을 위해 만들어졌습니다. 다음 아키텍처 다이어그램은 로컬 엔드포인트 빌더 워크플로를 시각적으로 나타낸 것입니다.

다음 다이어그램은 로컬 문서 분할기 아키텍처를 보여줍니다.

솔루션에 대한 모든 코드는 workflow3_local/local_endpointbuilder.py Amazon Comprehend 분류 엔드포인트를 구축하기 위한 파일 및 workflow3_local/local_docsplitter.py 분할 문서를 전송합니다.

결론

문서 분할은 성공적이고 지능적인 문서 처리 워크플로를 구축하는 열쇠입니다. 이는 비즈니스, 특히 일상적인 작업을 위해 여러 문서 유형을 집계하는 조직에 여전히 매우 관련성이 높은 문제입니다. 몇 가지 예에는 보험 청구 문서, 보험 정책 신청서, SEC 문서, 세금 양식 및 소득 확인 양식 처리가 포함됩니다.

이 게시물에서는 대출 처리에 사용되는 공통 문서 세트를 가져와 Amazon Textract를 사용하여 데이터를 추출하고 Amazon Comprehend 사용자 지정 분류 엔드포인트를 구축했습니다. 해당 끝점을 사용하여 수신 문서를 분류하고 해당 클래스에 따라 분할했습니다. 이 프로세스는 의료 및 금융 서비스와 같은 다양한 산업 분야의 애플리케이션이 있는 거의 모든 문서 세트에 적용할 수 있습니다. Amazon Textract에 대해 자세히 알아보려면 웹 페이지 방문.


저자에 관하여

아디티 라지니쉬 워털루 대학교의 소프트웨어 공학 XNUMX학년 학생입니다. 그녀의 관심 분야는 컴퓨터 비전, 자연어 처리 및 에지 컴퓨팅입니다. 그녀는 또한 지역 사회 기반 STEM 봉사 활동 및 옹호에 열정적입니다. 그녀는 여가 시간에 암벽 등반, 피아노 연주, 완벽한 스콘 굽는 법을 배울 수 있습니다.

라지 파탁 캐나다와 미국 전역의 Fortune 50대 기업 및 중견 FSI(은행, 보험, 자본 시장) 고객의 솔루션 설계자이자 기술 고문입니다. Raj는 문서 추출, 컨택 센터 변환 및 컴퓨터 비전 애플리케이션을 사용하는 기계 학습을 전문으로 합니다.

출처: https://aws.amazon.com/blogs/machine-learning/intelligently-split-multi-form-document-packages-with-amazon-textract-and-amazon-comprehend/

타임 스탬프 :

더보기 AWS 머신 러닝 블로그