هوش داده افلاطون
جستجوی عمودی و هوش مصنوعی

پردازش هوشمند اسناد با خدمات AWS AI: قسمت 1

تاریخ:

سازمان‌ها در سراسر صنایعی مانند مراقبت‌های بهداشتی، مالی و وام‌دهی، حقوقی، خرده‌فروشی و تولیدی اغلب مجبورند در فرآیندهای کاری روزمره خود با اسناد زیادی سر و کار داشته باشند. این اسناد حاوی اطلاعات مهمی هستند که کلید تصمیم گیری به موقع به منظور حفظ بالاترین سطح رضایت مشتری، پذیرش سریعتر مشتری و ریزش مشتری کمتر است. در بیشتر موارد، اسناد به صورت دستی برای استخراج اطلاعات و بینش پردازش می‌شوند که زمان‌بر، مستعد خطا، پرهزینه و مقیاس‌بندی آن دشوار است. امروزه اتوماسیون محدودی برای پردازش و استخراج اطلاعات از این اسناد وجود دارد. پردازش هوشمند اسناد (IDP) با خدمات هوش مصنوعی (AI) AWS به استخراج خودکار اطلاعات از اسناد انواع و قالب‌های مختلف، سریع و با دقت بالا، بدون نیاز به مهارت‌های یادگیری ماشینی (ML) کمک می‌کند. استخراج سریعتر اطلاعات با دقت بالا به اتخاذ تصمیمات تجاری با کیفیت به موقع کمک می کند و در عین حال هزینه های کلی را کاهش می دهد.

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

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

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

نمودار معماری زیر مراحل یک گردش کار IDP را نشان می دهد. برای ذخیره و جمع‌آوری ایمن فرمت‌های فایل (PDF، JPEG، PNG، TIFF) و طرح‌بندی اسناد، با مرحله ضبط داده شروع می‌شود. مرحله بعدی طبقه بندی است، که در آن اسناد خود را (مانند قراردادها، فرم های ادعا، فاکتورها یا رسیدها) دسته بندی می کنید و سپس استخراج اسناد را انجام می دهید. در مرحله استخراج، می توانید اطلاعات تجاری معنی دار را از اسناد خود استخراج کنید. این داده های استخراج شده اغلب برای جمع آوری بینش از طریق تجزیه و تحلیل داده ها یا ارسال به سیستم های پایین دستی مانند پایگاه های داده یا سیستم های تراکنش استفاده می شود. مرحله بعدی غنی سازی است، که در آن اسناد را می توان با ویرایش اطلاعات بهداشتی محافظت شده (PHI) یا داده های اطلاعات شناسایی شخصی (PII)، استخراج اصطلاحات تجاری سفارشی و غیره غنی کرد. در نهایت، در مرحله بررسی و اعتبارسنجی، می‌توانید نیروی انسانی را برای بررسی اسناد وارد کنید تا از صحت نتیجه اطمینان حاصل کنید.

برای اهداف این پست مجموعه ای از اسناد نمونه مانند صورتحساب بانکی، فاکتورها و رسید فروشگاه را در نظر می گیریم. نمونه های سند به همراه کد نمونه را می توان در ما یافت مخزن GitHub. در بخش‌های بعدی، شما را با این نمونه کد همراه با کاربرد عملی واقعی آشنا می‌کنیم. ما نشان می دهیم که چگونه می توانید از قابلیت های ML استفاده کنید متن آمازون, درک آمازونو هوش مصنوعی آمازون افزوده شده است (Amazon A2I) برای پردازش اسناد و اعتبارسنجی داده های استخراج شده از آنها.

Amazon Texttract یک سرویس ML است که به طور خودکار متن، دست خط و داده ها را از اسناد اسکن شده استخراج می کند. برای شناسایی، درک و استخراج داده ها از فرم ها و جداول فراتر از تشخیص ساده کاراکتر نوری (OCR) است. متن آمازون از ML برای خواندن و پردازش هر نوع سند، استخراج دقیق متن، دست خط، جداول و سایر داده ها بدون هیچ تلاش دستی استفاده می کند.

Amazon Comprehend یک سرویس پردازش زبان طبیعی (NLP) است که از ML برای استخراج بینش در مورد محتوای اسناد استفاده می کند. Amazon Comprehend می‌تواند عناصر مهم در اسناد، از جمله ارجاع به زبان، افراد و مکان‌ها را شناسایی کرده و آنها را در موضوعات یا خوشه‌های مرتبط طبقه‌بندی کند. این می تواند تجزیه و تحلیل احساسات را برای تعیین احساس یک سند در زمان واقعی با استفاده از تک سند یا تشخیص دسته ای انجام دهد. به عنوان مثال، می تواند نظرات یک پست وبلاگ را تجزیه و تحلیل کند تا بداند آیا خوانندگان شما پست را دوست دارند یا خیر. Amazon Comprehend همچنین PII مانند آدرس‌ها، شماره حساب‌های بانکی و شماره تلفن را در اسناد متنی در زمان واقعی و کارهای دسته‌ای ناهمزمان شناسایی می‌کند. همچنین می تواند موجودیت های PII را در کارهای دسته ای ناهمزمان ویرایش کند.

Amazon A2I یک سرویس ML است که ساخت گردش کار مورد نیاز برای بررسی انسانی را آسان می کند. Amazon A2I بررسی انسانی را برای همه توسعه‌دهندگان به ارمغان می‌آورد و کارهای سنگین غیرمتمایز مرتبط با ساختن سیستم‌های بازبینی انسانی یا مدیریت تعداد زیادی از بازبین‌های انسانی را حذف می‌کند، چه روی AWS اجرا شود یا نه. Amazon A2I هر دو را با هم ادغام می کند متن آمازون و درک آمازون تا به شما امکان معرفی مراحل بررسی انسانی را در جریان کار پردازش هوشمند اسناد خود ارائه دهید.

مرحله جمع آوری داده ها

شما می توانید اسناد را در یک فضای ذخیره سازی بسیار مقیاس پذیر و بادوام ذخیره کنید سرویس ذخیره سازی ساده آمازون (Amazon S3). آمازون S3 یک سرویس ذخیره سازی شی است که مقیاس پذیری، در دسترس بودن داده ها، امنیت و عملکرد پیشرو در صنعت را ارائه می دهد. آمازون S3 برای 11 9 دوام طراحی شده است و داده ها را برای میلیون ها مشتری در سراسر جهان ذخیره می کند. اسناد می‌توانند در قالب‌ها و طرح‌بندی‌های مختلف و از کانال‌های مختلف مانند پورتال‌های وب یا پیوست‌های ایمیل ارائه شوند.

مرحله طبقه بندی

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

شکل زیر یک گردش کار طبقه بندی اسناد معمولی را نشان می دهد.

مرحله طبقه بندی

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

داده های آموزشی را آماده کنید

اولین قدم استخراج متن از اسناد مورد نیاز برای طبقه‌بندی سفارشی Amazon Comprehend است. برای استخراج اطلاعات متن خام برای تمام اسناد در آمازون S3، از متن آمازون استفاده می کنیم detect_document_text() API. ما همچنین داده ها را بر اساس نوع سند برچسب گذاری می کنیم تا برای آموزش یک طبقه بندی کننده Amazon Comprehend سفارشی استفاده شود.

کد زیر برای اهداف ساده تر کوتاه شده است. برای دریافت کد کامل به GitHub مراجعه کنید کد نمونه برای textract_extract_text(). کارکرد call_textract() یک تابع wr4apper است که آنالیز سند API به صورت داخلی، و پارامترهای ارسال شده به روش، برخی از تنظیماتی را که API برای اجرای وظیفه استخراج نیاز دارد، انتزاع می‌کند.

def textract_extract_text(document, bucket=data_bucket):        
    try:
        print(f'Processing document: {document}')
        lines = ""
        row = []
        
        # using amazon-textract-caller
        response = call_textract(input_document=f's3://{bucket}/{document}') 
        # using pretty printer to get all the lines
        lines = get_string(textract_json=response, output_type=[Textract_Pretty_Print.LINES])
        
        label = [name for name in names if(name in document)]  
        row.append(label[0])
        row.append(lines)        
        return row
    except Exception as e:
        print (e)        

یک طبقه بندی سفارشی را آموزش دهید

در این مرحله از طبقه بندی سفارشی Amazon Comprehend برای آموزش مدل خود برای طبقه بندی اسناد استفاده می کنیم. ما استفاده می کنیم ایجاد DocumentClassifier API برای ایجاد یک طبقه بندی که یک مدل سفارشی را با استفاده از داده های برچسب گذاری شده ما آموزش می دهد. کد زیر را ببینید:

create_response = comprehend.create_document_classifier(
        InputDataConfig={
            'DataFormat': 'COMPREHEND_CSV',
            'S3Uri': f's3://{data_bucket}/{key}'
        },
        DataAccessRoleArn=role,
        DocumentClassifierName=document_classifier_name,
        VersionName=document_classifier_version,
        LanguageCode='en',
        Mode='MULTI_CLASS'
    )

یک نقطه پایانی بلادرنگ مستقر کنید

برای استفاده از طبقه‌بندی‌کننده سفارشی Amazon Comprehend، یک نقطه پایانی بلادرنگ با استفاده از آن ایجاد می‌کنیم CreateEndpoint API ها:

endpoint_response = comprehend.create_endpoint(
        EndpointName=ep_name,
        ModelArn=model_arn,
        DesiredInferenceUnits=1,    
        DataAccessRoleArn=role
    )
    ENDPOINT_ARN=endpoint_response['EndpointArn']
print(f'Endpoint created with ARN: {ENDPOINT_ARN}')  

طبقه بندی اسناد با نقطه پایانی بلادرنگ

پس از ایجاد نقطه پایانی Amazon Comprehend، می‌توانیم از نقطه پایانی بلادرنگ برای طبقه‌بندی اسناد استفاده کنیم. ما استفاده می کنیم comprehend.classify_document() تابع با متن سند استخراج شده و نقطه پایانی استنتاج به عنوان پارامترهای ورودی:

response = comprehend.classify_document(
      Text= document,
      EndpointArn=ENDPOINT_ARN
      )

Amazon Comprehend تمام کلاس‌های اسناد را با امتیاز اطمینان مرتبط با هر کلاس در آرایه‌ای از جفت‌های کلید-مقدار (نام-امتیاز) برمی‌گرداند. ما کلاس سند را با بالاترین امتیاز اطمینان انتخاب می کنیم. تصویر زیر یک نمونه پاسخ است.

طبقه بندی اسناد با نقطه پایانی بلادرنگ

توصیه می‌کنیم کد نمونه طبقه‌بندی اسناد دقیق را مرور کنید GitHub.

فاز استخراج

آمازون تکست به شما امکان می دهد متن و اطلاعات داده های ساختار یافته را با استفاده از متن آمازون استخراج کنید ردیابی و آنالیز سند API ها به ترتیب. این APIها با داده‌های JSON پاسخ می‌دهند که حاوی WORDS، خطوط، فرم‌ها، جدول‌ها، هندسه یا اطلاعات جعبه مرزی، روابط و غیره است. هر دو DetectDocumentText و AnalyzeDocument عملیات همزمان هستند. برای تجزیه و تحلیل اسناد به صورت ناهمزمان، استفاده کنید StartDocumentText Detection.

استخراج داده های ساخت یافته

شما می توانید داده های ساختار یافته مانند جداول را از اسناد استخراج کنید و در عین حال ساختار داده ها و روابط بین موارد شناسایی شده را حفظ کنید. می توانید استفاده کنید آنالیز سند API با FeatureType as TABLE برای شناسایی تمام جداول در یک سند. شکل زیر این فرآیند را نشان می دهد.

استخراج داده های ساخت یافته

کد زیر را ببینید:

response = textract.analyze_document(
    Document={
        'S3Object': {
            'Bucket': s3BucketName,
            'Name': documentName
        }
    },
    FeatureTypes=["TABLES"])

ما اجرا می کنیم analyze_document() روش با FeatureType as TABLES بر روی سند سابقه کارمند و استخراج جدول در نتایج زیر را بدست آورید.

پاسخ API سند را برای استخراج جداول تجزیه و تحلیل کنید

استخراج داده های نیمه ساختار یافته

می‌توانید داده‌های نیمه ساختاریافته مانند فرم‌ها یا جفت‌های کلید-مقدار را از اسناد استخراج کنید و در عین حال ساختار داده و روابط بین موارد شناسایی‌شده را حفظ کنید. می توانید استفاده کنید آنالیز سند API با FeatureType as FORMS برای شناسایی تمام اشکال در یک سند. نمودار زیر این فرآیند را نشان می دهد.

استخراج داده های نیمه ساختار یافته

کد زیر را ببینید:

response = textract.analyze_document(
    Document={
        'S3Object': {
            'Bucket': s3BucketName,
            'Name': documentName
        }
    },
    FeatureTypes=["FORMS"])

در اینجا، ما اجرا می کنیم analyze_document() روش با FeatureType as FORMS بر روی سند درخواست کارمند و استخراج جدول در نتایج.

استخراج داده های بدون ساختار

Amazon Textract برای استخراج متن متراکم با دقت OCR پیشرو در صنعت بهینه است. می توانید استفاده کنید ردیابی API برای تشخیص خطوط متن و کلماتی که یک خط متن را تشکیل می دهند، همانطور که در شکل زیر نشان داده شده است.

استخراج داده های بدون ساختار

کد زیر را ببینید:

response = textract.detect_document_text(Document={'Bytes': imageBytes})

# Print detected text
for item in response["Blocks"]:
	if item["BlockType"] == "LINE":
 		print (item["Text"])

حالا ما اجرا می کنیم detect_document_text() روش بر روی تصویر نمونه و استخراج متن خام در نتایج.

فاکتورها و رسیدها

Amazon Texttract پشتیبانی تخصصی را برای پردازش فاکتورها و رسیدها در مقیاس ارائه می دهد. را تجزیه و تحلیل API می‌تواند داده‌های دارای برچسب صریح، داده‌های ضمنی و اقلام خطی را از فهرستی از کالاها یا خدمات تقریباً از هر صورت‌حساب یا رسیدی بدون هیچ الگو یا پیکربندی استخراج کند. شکل زیر این فرآیند را نشان می دهد.

استخراج فاکتورها و رسیدها

کد زیر را ببینید:

response = textract.analyze_expense(
    Document={
        'S3Object': {
            'Bucket': s3BucketName,
            'Name': documentName
        }
    })

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

پاسخ API هزینه را تجزیه و تحلیل کنید

اسناد هویتی

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

استخراج مدارک هویتی

کد زیر را ببینید:

textract_client = boto3.client('textract')
j = call_textract_analyzeid(document_pages=["s3://amazon-textract-public-content/analyzeid/driverlicense.png"],boto3_textract_client=textract_client)

ما می توانید استفاده کنید tabulate برای به دست آوردن یک خروجی چاپی زیبا:

from tabulate import tabulate

print(tabulate([x[1:3] for x in result]))

ما توصیه می کنیم که از طریق استخراج سند دقیق بروید کد نمونه در GitHub. برای اطلاعات بیشتر در مورد نمونه کد کامل در این پست به ادامه مطلب مراجعه نمایید GitHub repo.

نتیجه

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

In بخش 2 از این مجموعه، بحث را با ویژگی های استخراج و پرس و جوی آمازون تکست ادامه می دهیم. ما به نحوه استفاده از نهادهای از پیش تعریف شده و موجودیت های سفارشی از Amazon Comprehend برای استخراج اصطلاحات تجاری کلیدی از اسناد با متن متراکم، و نحوه ادغام یک مرور انسان در حلقه آمازون A2I در فرآیندهای IDP خود نگاه می کنیم.

توصیه می کنیم بخش های امنیتی را مرور کنید متن آمازون, درک آمازونو آمازون A2I مستندات و پیروی از دستورالعمل های ارائه شده. همچنین، لحظه ای را به بررسی و درک قیمت آن اختصاص دهید متن آمازون, درک آمازونو آمازون A2I.


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

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

سونالی سهو تیم معمار راه حل های AI/ML پردازش اسناد هوشمند در خدمات وب آمازون پیشرو است. او یک فن دوست پرشور است و از کار با مشتریان برای حل مشکلات پیچیده با استفاده از نوآوری لذت می برد. حوزه اصلی تمرکز او هوش مصنوعی و یادگیری ماشین برای پردازش هوشمند اسناد است.

انجان بیسواس یک معمار ارشد راه حل های خدمات هوش مصنوعی با تمرکز بر AI/ML و تجزیه و تحلیل داده ها است. Anjan بخشی از تیم خدمات هوش مصنوعی در سراسر جهان است و با مشتریان همکاری می کند تا به آنها کمک کند تا راه حل هایی برای مشکلات تجاری با هوش مصنوعی و ML ایجاد کنند. Anjan بیش از 14 سال تجربه کار با زنجیره تامین جهانی، تولید و سازمان‌های خرده‌فروشی دارد و به طور فعال به مشتریان کمک می‌کند تا خدمات هوش مصنوعی AWS را شروع کرده و مقیاس کنند.

چینمائی رین یک معمار راه حل های تخصصی AI/ML در خدمات وب آمازون است. او علاقه زیادی به ریاضیات کاربردی و یادگیری ماشین دارد. او بر روی طراحی راه حل های پردازش اسناد هوشمند برای مشتریان AWS تمرکز دارد. خارج از محل کار، او از رقص سالسا و باچاتا لذت می برد.

نقطه_img

جدیدترین اطلاعات

نقطه_img

چت با ما

سلام! چگونه می توانم به شما کمک کنم؟