به طور هوشمند بسته های اسناد چند فرمی را با Amazon Textract و Amazon Comprehend تقسیم کنید

گره منبع: 1372716

بسیاری از سازمان ها با اندازه های مختلف و عمودی های صنعتی هنوز به حجم زیادی از اسناد برای اجرای عملیات روزانه خود متکی هستند. برای حل این چالش تجاری، مشتریان از خدمات پردازش اسناد هوشمند از AWS استفاده می کنند متن آمازون و درک آمازون برای کمک به استخراج و اتوماسیون فرآیند. قبل از اینکه بتوانید متن، جفت کلید-مقدار، جداول و موجودیت ها را استخراج کنید، باید بتوانید اسناد PDF چند صفحه ای را که اغلب حاوی انواع فرم های ناهمگن هستند، تقسیم کنید. به عنوان مثال، در پردازش وام مسکن، یک کارگزار یا شخص پردازشگر وام ممکن است نیاز به تقسیم یک بسته وام PDF تلفیقی، شامل درخواست وام مسکن (فرم Fannie Mae 1003)، W2s، تأیید درآمد، 1040 فرم مالیاتی و موارد دیگر داشته باشد.

برای مقابله با این مشکل، سازمان ها از پردازش مبتنی بر قوانین استفاده می کنند: شناسایی انواع اسناد از طریق عنوان فرم، شماره صفحه، طول فرم و غیره. این رویکردها مستعد خطا هستند و مقیاس بندی آنها دشوار است، به ویژه زمانی که انواع فرم ها ممکن است دارای چندین تنوع باشند. بر این اساس، این راه حل ها در عمل به سرعت از بین می روند و نیاز به دخالت انسان را افزایش می دهند.

در این پست، ما نشان می‌دهیم که چگونه می‌توانید راه حل تقسیم اسناد خود را با کد کمی برای هر مجموعه ای از فرم‌ها، بدون ایجاد قوانین سفارشی یا پردازش گردش کار ایجاد کنید.

بررسی اجمالی راه حل

برای این پست، ما از مجموعه‌ای از فرم‌های رایج درخواست وام مسکن استفاده می‌کنیم تا نشان دهیم چگونه می‌توانید از Amazon Textract و Amazon Comprehend برای ایجاد یک تقسیم‌کننده اسناد هوشمند که قوی‌تر از رویکردهای قبلی است استفاده کنید. هنگام پردازش اسناد برای درخواست های وام مسکن، وام گیرنده یک PDF چند صفحه ای را ارسال می کند که از انواع اسناد ناهمگن با طول صفحات مختلف تشکیل شده است. برای استخراج اطلاعات، کاربر (مثلاً یک بانک) باید این PDF را تجزیه کند.

اگرچه ما یک مثال خاص برای فرم‌های وام مسکن نشان می‌دهیم، شما می‌توانید به طور کلی این رویکرد را برای تقریباً هر مجموعه ای از اسناد PDF چند صفحه‌ای مقیاس و اعمال کنید.

ما از متن آمازون برای استخراج داده ها از سند و ایجاد یک مجموعه داده سازگار با Amazon Comprehend برای آموزش مدل طبقه بندی اسناد. سپس، مدل طبقه‌بندی را آموزش می‌دهیم و یک نقطه پایانی طبقه‌بندی ایجاد می‌کنیم که می‌تواند تجزیه و تحلیل اسناد بلادرنگ را انجام دهد. به خاطر داشته باشید که نقاط پایانی طبقه‌بندی متن آمازون و آمازون Comprehend هزینه دارند، بنابراین به قیمت گذاری متن آمازون و قیمت گذاری آمازون Comprehend برای اطلاعات بیشتر. در نهایت، نشان می‌دهیم که چگونه می‌توانیم اسناد را با این نقطه پایانی طبقه‌بندی کنیم و اسناد را بر اساس نتایج طبقه‌بندی تقسیم کنیم.

این راه حل از خدمات AWS زیر استفاده می کند:

پیش نیازها

برای ساخت و استقرار این راه حل باید پیش نیازهای زیر را تکمیل کنید:

  1. نصب پایتون 3.8.x.
  2. نصب jq
  3. نصب AWS SAM CLI.
  4. نصب کارگر بارانداز.
  5. مطمئن شوید که پیپ نصب شده.
  6. نصب و پیکربندی la رابط خط فرمان AWS (AWS CLI).
  7. مجموعه اعتبارنامه AWS شما

راه حل برای کار بهینه در us-east-1 و us-west-2 مناطقی که از سهمیه های پیش فرض بالاتر برای آمازون تکست استفاده کنند. برای بارهای کاری خاص منطقه ای، مراجعه کنید نقاط پایانی و سهمیه های متن آمازون. مطمئن شوید که از یک منطقه واحد برای کل راه حل استفاده می کنید.

مخزن را شبیه سازی کنید

برای شروع، مخزن را با اجرای دستور زیر کلون کنید. سپس به دایرکتوری کاری سوئیچ می کنیم:

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

گردش کار راه حل

راه حل شامل سه گردش کار است:

  • workflow1_endpointbuilder - اسناد آموزشی را می گیرد و یک نقطه پایانی طبقه بندی سفارشی در Amazon Comprehend ایجاد می کند.
  • workflow2_docsplitter - به عنوان سرویس تقسیم اسناد عمل می کند، جایی که اسناد بر اساس کلاس تقسیم می شوند. از نقطه پایانی طبقه بندی ایجاد شده در استفاده می کند workflow1.
  • workflow3_local - برای مشتریانی در نظر گرفته شده است که در صنایع بسیار تنظیم شده هستند و نمی توانند داده ها را در Amazon S3 حفظ کنند. این گردش کار شامل نسخه های محلی است workflow1 و workflow2.

بیایید به بررسی هر یک از گردش کارها و نحوه عملکرد آنها بپردازیم.

گردش کار 1: یک طبقه بندی آمازون Comprehend از اسناد PDF، JPG یا PNG بسازید

اولین گردش کار اسناد ذخیره شده در آمازون S3 را می گیرد و آنها را از طریق یک سری مراحل برای استخراج داده ها از اسناد از طریق Amazon Textract ارسال می کند. سپس، داده های استخراج شده برای ایجاد یک نقطه پایانی طبقه بندی سفارشی Amazon Comprehend استفاده می شود. این در نمودار معماری زیر نشان داده شده است.

راه انداختن workflow1، به آمازون S3 URI پوشه حاوی فایل های مجموعه آموزشی (این فایل ها می توانند تصاویر، پی دی اف های تک صفحه ای یا پی دی اف های چند صفحه ای باشند) نیاز دارید. ساختار پوشه باید به صورت زیر باشد:

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

از طرف دیگر، ساختار می تواند زیر شاخه های تو در تو اضافی داشته باشد:

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

نام زیر شاخه های کلاس (سطح دایرکتوری دوم) به نام کلاس های مورد استفاده در مدل طبقه بندی سفارشی آمازون Comprehend تبدیل می شود. به عنوان مثال، در ساختار فایل زیر، کلاس for 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

خروجی بیلد یک ARN برای ماشین حالت توابع مرحله است.

  1. وقتی ساخت کامل شد، به مسیر بروید ماشین های دولتی صفحه در کنسول Step Functions.
  2. ماشین حالتی را که ایجاد کردید انتخاب کنید.
  3. را انتخاب کنید شروع به اجرا کنید.
  4. پارامترهای ورودی مورد نیاز زیر را وارد کنید:
{
“folder_uri”: “s3://{your dataset}”
}

  1. را انتخاب کنید شروع به اجرا کنید.

ماشین حالت گردش کار را شروع می کند. بسته به اندازه مجموعه داده ممکن است چندین ساعت طول بکشد. تصویر زیر ماشین حالت ما را در حال پیشرفت نشان می دهد.

همانطور که در تصویر زیر نشان داده شده است، وقتی ماشین حالت کامل شد، هر مرحله در نمودار سبز می شود.

برای مشاهده نقطه پایانی مستقر شده می توانید به کنسول آمازون 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

پس از ایجاد پشته، یک Load Balancer DNS بر روی آن دریافت می کنید خروجی برگه پشته CloudFormation. می توانید شروع به درخواست برای این نقطه پایانی کنید.

یک درخواست نمونه در دسترس است workflow2_docsplitter/sample_request_folder/sample_s3_request.py فایل. API سه پارامتر دارد: نام سطل S3، سند آمازون S3 URI، و نقطه پایانی طبقه‌بندی آمازون Comprehend ARN. Workflow2 فقط از ورودی PDF پشتیبانی می کند.

برای آزمایش ما از یک سند رهنی 11 صفحه ای با پنج نوع سند مختلف استفاده می کنیم.

پاسخ برای API یک URI آمازون S3 برای یک فایل .zip با تمام اسناد تقسیم شده است. همچنین می توانید این فایل را در سطلی که در تماس API خود ارائه کرده اید پیدا کنید.

شی را دانلود کنید و اسناد تقسیم شده بر اساس کلاس را بررسی کنید.

این نشان دهنده پایان است workflow2. اکنون نشان داده‌ایم که چگونه می‌توانیم از یک نقطه پایانی طبقه‌بندی Amazon Comprehend سفارشی برای طبقه‌بندی و تقسیم اسناد استفاده کنیم.

گردش کار 3: تقسیم اسناد محلی

گردش کار سوم ما از یک هدف مشابه پیروی می کند workflow1 و workflow2 برای ایجاد نقطه پایانی آمازون Comprehend؛ با این حال، تمام پردازش ها با استفاده از دستگاه محلی شما برای تولید یک فایل CSV سازگار با Amazon Comprehend انجام می شود. این گردش کار برای مشتریان در صنایع بسیار تنظیم شده ایجاد شده است که ممکن است اسناد PDF پایدار در Amazon S3 امکان پذیر نباشد. نمودار معماری زیر یک نمایش بصری از گردش کار سازنده نقطه پایانی محلی است.

نمودار زیر معماری تقسیم کننده اسناد محلی را نشان می دهد.

تمام کدهای راه حل در موجود است workflow3_local/local_endpointbuilder.py فایل برای ساخت نقطه پایانی طبقه بندی آمازون Comprehend و workflow3_local/local_docsplitter.py برای ارسال اسناد برای تقسیم

نتیجه

تقسیم اسناد کلید ایجاد یک گردش کار پردازش اسناد موفق و هوشمند است. این هنوز یک مشکل بسیار مرتبط برای مشاغل است، به ویژه سازمان هایی که انواع اسناد متعدد را برای عملیات روزانه خود جمع آوری می کنند. برخی از نمونه‌ها عبارتند از پردازش اسناد خسارت بیمه، درخواست‌های بیمه نامه، اسناد SEC، فرم‌های مالیاتی و فرم‌های تأیید درآمد.

در این پست، مجموعه‌ای از اسناد رایج مورد استفاده برای پردازش وام را برداشتیم، داده‌ها را با استفاده از Amazon Textract استخراج کردیم و یک نقطه پایانی طبقه‌بندی سفارشی Amazon Comprehend ایجاد کردیم. با آن نقطه پایانی، ما اسناد ورودی را طبقه بندی کردیم و آنها را بر اساس کلاس مربوطه تقسیم کردیم. می‌توانید این فرآیند را تقریباً برای هر مجموعه‌ای از اسناد با کاربرد در صنایع مختلف، مانند مراقبت‌های بهداشتی و خدمات مالی، اعمال کنید. برای کسب اطلاعات بیشتر در مورد متن آمازون، از صفحه وب بازدید کنید.


درباره نویسنده

آدیتی راجنیش دانشجوی سال اول مهندسی نرم افزار در دانشگاه واترلو است. علایق او شامل بینایی کامپیوتر، پردازش زبان طبیعی و محاسبات لبه است. او همچنین علاقه زیادی به گسترش و حمایت از STEM مبتنی بر جامعه دارد. در اوقات فراغت، او را می توان در حال صخره نوردی، نواختن پیانو یا یادگیری طرز پخت اسکون عالی یافت.

راج پاتاک یک معمار راه حل و مشاور فنی برای مشتریان Fortune 50 و FSI متوسط ​​(بانکداری، بیمه، بازارهای سرمایه) در سراسر کانادا و ایالات متحده است. راج در یادگیری ماشین با برنامه های کاربردی در استخراج اسناد، تبدیل مرکز تماس و بینایی کامپیوتر تخصص دارد.

منبع: https://aws.amazon.com/blogs/machine-learning/intelligently-split-multi-form-document-packages-with-amazon-txtract-and-amazon-comprehend/

تمبر زمان:

بیشتر از وبلاگ یادگیری ماشین AWS