חבילות מסמכים מרובי-צורות מפוצלות בצורה חכמה עם Amazon Textract ו- Amazon Comprehend

צומת המקור: 1372716

ארגונים רבים בגדלים שונים וענפים בתעשייה עדיין מסתמכים על כמויות גדולות של מסמכים כדי להפעיל את הפעילות היומיומית שלהם. כדי לפתור את האתגר העסקי הזה, לקוחות משתמשים בשירותי עיבוד מסמכים חכמים מבית AWS כגון טקסטורה באמזון ו אמזון להתבונן לעזור עם מיצוי ואוטומציה של תהליכים. לפני שתוכל לחלץ טקסט, צמדי מפתח-ערך, טבלאות וישויות, עליך להיות מסוגל לפצל מסמכי PDF מרובי עמודים המכילים לרוב סוגי טפסים הטרוגניים. לדוגמה, בעיבוד משכנתא, ברוקר או אדם מעבד הלוואות עשוי להזדקק לפצל חבילת הלוואות PDF מאוחדת, המכילה את בקשת המשכנתא (טופס פאני מיי 1003), W2s, אימות הכנסה, טפסי מס 1040 ועוד.

כדי להתמודד עם בעיה זו, ארגונים משתמשים בעיבוד מבוסס כללים: זיהוי סוגי מסמכים באמצעות כותרות טפסים, מספרי עמודים, אורכי טפסים וכן הלאה. גישות אלו מועדות לשגיאות וקשות לקנה מידה, במיוחד כאשר לסוגי הטפסים עשויים להיות מספר וריאציות. בהתאם לכך, דרכים לעקיפת הבעיה מתקלקלות במהירות בפועל ומגבירות את הצורך בהתערבות אנושית.

בפוסט זה, אנו מראים כיצד אתה יכול ליצור פתרון פיצול מסמכים משלך עם מעט קוד עבור כל סט של טפסים, מבלי לבנות כללים מותאמים אישית או לעבד זרימות עבודה.

סקירת פתרונות

עבור פוסט זה, אנו משתמשים בסט של טפסי בקשת משכנתא נפוצים כדי להדגים כיצד ניתן להשתמש ב- Amazon Textract וב- Amazon Comprehend כדי ליצור מפצל מסמכים חכם חזק יותר מגישות קודמות. בעת עיבוד מסמכים עבור בקשות משכנתא, הלווה מגיש PDF מרובה עמודים המורכב מסוגי מסמכים הטרוגניים באורך עמודים משתנים; כדי לחלץ מידע, על המשתמש (לדוגמה, בנק) לפרק את ה-PDF הזה.

למרות שאנו מציגים דוגמה ספציפית לטפסי משכנתא, אתה יכול בדרך כלל להגדיל וליישם גישה זו כמעט על כל קבוצה של מסמכי PDF מרובי עמודים.

אנו משתמשים ב-Amazon Textract כדי לחלץ נתונים מהמסמך ולבנות מערך נתונים תואם Amazon Comprehend לאימון א מודל סיווג מסמכים. לאחר מכן, אנו מאמנים את מודל הסיווג ויוצרים נקודת קצה לסיווג שיכולה לבצע ניתוח מסמכים בזמן אמת. זכור שנקודות הקצה של Amazon Textract ו- Amazon Comprehend כרוכות בתשלום, אז עיין תמחור אמזון טקסטראקט ו תמחור אמזון למידע נוסף. לבסוף, אנו מראים כיצד אנו יכולים לסווג מסמכים עם נקודת קצה זו ולפצל מסמכים על סמך תוצאות הסיווג.

פתרון זה משתמש בשירותי AWS הבאים:

תנאים מוקדמים

עליך להשלים את התנאים המוקדמים הבאים כדי לבנות ולפרוס פתרון זה:

  1. התקן Python 3.8.x.
  2. התקן jq.
  3. התקן ה-AWS SAM CLI.
  4. התקן סַוָר.
  5. ודא שיש לך פיפ מותקן.
  6. התקנה והגדרה מה היא ממשק שורת הפקודה של AWS (AWS CLI).
  7. גדר תעודות ה-AWS שלך.

הפתרון נועד לעבוד בצורה מיטבית ב us-east-1 ו us-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

זרימות עבודה של פתרונות

הפתרון מורכב משלושה תהליכי עבודה:

  • workflow1_endpointbuilder - לוקח את מסמכי ההדרכה ובונה נקודת קצה לסיווג מותאם אישית ב- Amazon Comprehend.
  • workflow2_docsplitter - פועל כשירות פיצול מסמכים, שבו מסמכים מפוצלים לפי מחלקות. הוא משתמש בנקודת הסיווג שנוצרה ב workflow1.
  • workflow3_local - מיועד ללקוחות שנמצאים בתעשיות בפיקוח גבוה ואינם יכולים להתמיד בנתונים באמזון S3. זרימת עבודה זו מכילה גרסאות מקומיות של workflow1 ו workflow2.

בואו ניקח צלילה עמוקה לתוך כל זרימת עבודה וכיצד היא פועלת.

זרימת עבודה 1: בנה מסווג של Amazon Comprehend ממסמכי PDF, JPG או PNG

זרימת העבודה הראשונה לוקחת מסמכים המאוחסנים ב- 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

הפלט של ה-build הוא ARN עבור מכונת מצב Step Functions.

  1. לאחר השלמת הבנייה, נווט אל מכונות מדינה עמוד במסוף פונקציות שלב.
  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 של Load Balancer ב- יציאות לשונית של ערימת CloudFormation. אתה יכול להתחיל לשלוח בקשות לנקודת קצה זו.

בקשה לדוגמה זמינה ב workflow2_docsplitter/sample_request_folder/sample_s3_request.py קוֹבֶץ. ה-API לוקח שלושה פרמטרים: שם הדלי S3, המסמך Amazon S3 URI, ונקודת הסיווג של Amazon Comprehend ARN. Workflow2 תומך רק בהזנת PDF.

לצורך הבדיקה שלנו, אנו משתמשים במסמך משכנתא בן 11 עמודים עם חמישה סוגי מסמכים שונים.

התגובה עבור ה-API היא Amazon S3 URI עבור קובץ .zip עם כל המסמכים המפוצלים. אתה יכול גם למצוא את הקובץ הזה בדלי שסיפקת בקריאה ל-API שלך.

הורד את האובייקט ועיין בפיצול המסמכים בהתאם לכיתה.

זה מסמן את הסוף של workflow2. כעת הראינו כיצד אנו יכולים להשתמש בנקודת קצה מותאמת אישית של Amazon Comprehend לסיווג ולפיצול מסמכים.

זרימת עבודה 3: פיצול מסמכים מקומי

זרימת העבודה השלישית שלנו עוקבת אחר מטרה דומה ל workflow1 ו workflow2 ליצור נקודת קצה של Amazon Comprehend; עם זאת, כל העיבוד נעשה באמצעות המחשב המקומי שלך כדי ליצור קובץ CSV תואם Amazon Comprehend. זרימת עבודה זו נוצרה עבור לקוחות בתעשיות בפיקוח גבוה, שבהן ייתכן שלא יתאפשרו מסמכי PDF מתמידים ב-Amazon S3. דיאגרמת הארכיטקטורה הבאה היא ייצוג חזותי של זרימת העבודה המקומית של בונה נקודות הקצה.

התרשים הבא ממחיש את ארכיטקטורת מפצל המסמכים המקומית.

כל הקוד לפתרון זמין ב- workflow3_local/local_endpointbuilder.py קובץ לבניית נקודת הסיווג של Amazon Comprehend ו workflow3_local/local_docsplitter.py לשלוח מסמכים לפיצול.

סיכום

פיצול מסמכים הוא המפתח לבניית זרימת עבודה מוצלחת וחכמה לעיבוד מסמכים. זו עדיין בעיה רלוונטית מאוד לעסקים, במיוחד ארגונים המצברים מספר סוגי מסמכים עבור הפעילות היומיומית שלהם. כמה דוגמאות כוללות עיבוד מסמכי תביעות ביטוח, בקשות לפוליסת ביטוח, מסמכי SEC, טפסי מס וטפסי אימות הכנסה.

בפוסט הזה, לקחנו קבוצה של מסמכים נפוצים המשמשים לעיבוד הלוואות, חילצנו את הנתונים באמצעות Amazon Textract, ובנינו נקודת קצה לסיווג מותאם אישית של Amazon Comprehend. עם נקודת הקצה הזו, סיווגנו מסמכים נכנסים ופיצלנו אותם על סמך המעמד שלהם. אתה יכול להחיל תהליך זה על כמעט כל סט של מסמכים עם יישומים במגוון תעשיות, כגון שירותי בריאות ושירותים פיננסיים. למידע נוסף על Amazon Textract, בקר בדף האינטרנט.


על הכותבים

עדיטי ראג'ניש הוא סטודנט שנה ראשונה להנדסת תוכנה באוניברסיטת ווטרלו. תחומי העניין שלה כוללים ראייה ממוחשבת, עיבוד שפה טבעית ומחשוב קצה. היא גם נלהבת מהסברה והסברה של STEM מבוססי קהילה. בזמנה הפנוי אפשר למצוא אותה מטפסת על צוקים, מנגנת בפסנתר או לומדת איך לאפות את הסקונס המושלם.

ראג' פאתאק הוא אדריכל פתרונות ויועץ טכני ללקוחות Fortune 50 ובינוני FSI (בנקאות, ביטוח, שוקי הון) ברחבי קנדה וארצות הברית. ראג' מתמחה ב-Machine Learning עם יישומים בחילוץ מסמכים, טרנספורמציה במרכזי קשר וראייה ממוחשבת.

מקור: https://aws.amazon.com/blogs/machine-learning/intelligently-split-multi-form-document-packages-with-amazon-textract-and-amazon-comprehend/

בול זמן:

עוד מ בלוג למידת מכונות AWS