עיבוד מסמכים חכם עם שירותי AI של AWS: חלק 2 PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

עיבוד מסמכים חכם עם שירותי AI של AWS: חלק 2

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

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

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

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

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

עיבוד מסמכים חכם עם שירותי AI של AWS: חלק 2 PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

אנו גם משתמשים אמזון Comprehend Medical כחלק מפתרון זה, שהוא שירות לחילוץ מידע מטקסט רפואי לא מובנה בצורה מדויקת ומהירה וזיהוי קשרים בין מידע בריאותי שנשלף, ולקשר לאונטולוגיות רפואיות כמו ICD-10-CM, RxNorm ו-SNOMED CT.

Amazon A2I הוא שירות למידת מכונה (ML) שמקל על בניית זרימות העבודה הנדרשות לסקירה אנושית. Amazon A2I מביאה סקירה אנושית לכל המפתחים, מסירה את ההרמה הכבדה הבלתי מובחנת הקשורה לבניית מערכות ביקורת אנושיות או ניהול מספר רב של סוקרים אנושיים בין אם היא פועלת על AWS או לא. Amazon A2I משתלב עם טקסטורה באמזון ו אמזון להתבונן כדי לספק לך את היכולת להציג שלבי סקירה אנושית בתוך זרימת העבודה שלך ב-IDP.

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

לפני שתתחיל, עיין ב חלק 1 לסקירה ברמה גבוהה של IDP ופרטים על שלבי לכידת הנתונים, הסיווג והחילוץ.

שלב המיצוי

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

הכרת יישות בשם

זיהוי ישות בשם (NER) היא תת-מטלת עיבוד שפה טבעית (NLP) הכוללת ניפוי דרך נתוני טקסט כדי לאתר ביטויי עצם, הנקראים ישויות בשם, וסיווג כל אחד מהם עם תווית, כגון מותג, תאריך, אירוע, מיקום, ארגונים , אדם, כמות או תואר. לדוגמה, בהצהרה "נרשמתי לאחרונה לאמזון פריים", אמזון פריים היא הישות הנקראת וניתן לסווג אותה כמותג.

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

זיהוי ישות עם Amazon Comprehend

כדי לקבל ישויות ממסמך הטקסט, אנו קוראים ל- comprehend.detect_entities() שיטה והגדר את קוד השפה והטקסט כפרמטרי קלט:

def get_entities(text):
    try:
        #detect entities
        entities = comprehend.detect_entities(LanguageCode="en", Text=text)  
        df = pd.DataFrame(entities["Entities"], columns = ['Text', 'Type'])
        display(HTML(df.to_html(index=False)))
    except Exception as e:
        print(e)

אנחנו מפעילים את get_entities() שיטה על מסמך הבנק ולקבל את רשימת הישויות בתוצאות.

תגובה משיטת get_entities מ-Comprehend.

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

הכשיר מודל זיהוי ישויות מותאם אישית של אמזון

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

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

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

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

צילום המסך הבא מציג דוגמה לרשימת הישויות שלנו.

תמונת מצב של רשימת ישויות.

צור נקודת קצה NER בזמן אמת מותאמת אישית של Amazon Comprehend

לאחר מכן, אנו יוצרים נקודת קצה מותאמת אישית של מזהה ישויות בזמן אמת באמצעות המודל שהכשרנו. אנו משתמשים ב- צור נקודת קצה API דרך ה comprehend.create_endpoint() שיטה ליצירת נקודת הקצה בזמן אמת:

#create comprehend endpoint
model_arn = entity_recognizer_arn
ep_name = 'idp-er-endpoint'

try:
    endpoint_response = comprehend.create_endpoint(
        EndpointName=ep_name,
        ModelArn=model_arn,
        DesiredInferenceUnits=1,    
        DataAccessRoleArn=role
    )
    ER_ENDPOINT_ARN=endpoint_response['EndpointArn']
    print(f'Endpoint created with ARN: {ER_ENDPOINT_ARN}')
    %store ER_ENDPOINT_ARN
except Exception as error:
    if error.response['Error']['Code'] == 'ResourceInUseException':
        print(f'An endpoint with the name "{ep_name}" already exists.')
        ER_ENDPOINT_ARN = f'arn:aws:comprehend:{region}:{account_id}:entity-recognizer-endpoint/{ep_name}'
        print(f'The classifier endpoint ARN is: "{ER_ENDPOINT_ARN}"')
        %store ER_ENDPOINT_ARN
    else:
        print(error)

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

שלב העשרה

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

שלב העשרת המסמכים.

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

דגימת דף חשבון בנק ערוכה.

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

חילוץ עם שאילתות Amazon Textract

בעת עיבוד מסמך עם Amazon Textract, אתה יכול להוסיף את תכונת השאילתות החדשה לניתוח שלך כדי לציין איזה מידע אתה צריך. זה כרוך בהעברת שאלת NLP, כגון "מהו מספר תעודת זהות של הלקוח?" לאמזון טקסטרקט. Amazon Textract מוצאת את המידע במסמך עבור אותה שאלה ומחזירה אותו במבנה תגובה נפרד משאר המידע של המסמך. ניתן לעבד שאילתות לבד, או בשילוב עם כל שאילתה אחרת FeatureType, כמו Tables or Forms.

חילוץ מבוסס שאילתות באמצעות Amazon Textract.

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

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

כרטיס חיסון לדוגמה.

אנו משתמשים textract.analyze_document() לתפקד ולציין את FeatureType as QUERIES כמו גם להוסיף את השאילתות בצורה של שאלות בשפה טבעית ב- QueriesConfig.

הקוד הבא קוצץ למטרות פישוט. לקוד המלא, עיין ב- GitHub קוד לדוגמא ל analyze_document().

response = None
with open(image_filename, 'rb') as document:
    imageBytes = bytearray(document.read())

# Call Textract
response = textract.analyze_document(
    Document={'Bytes': imageBytes},
    FeatureTypes=["QUERIES"],
    QueriesConfig={
            "Queries": [{
                "Text": "What is the date for the 1st dose covid-19?",
                "Alias": "COVID_VACCINATION_FIRST_DOSE_DATE"
            },
# code trimmed down for simplification
#..
]
}) 

עבור תכונת השאילתות, ה textract.analyze_document() הפונקציה מפלטת את כל מילות ה-OCR והקווים, מידע הגיאומטריה וציוני הביטחון בתגובה JSON. עם זאת, אנחנו יכולים פשוט להדפיס את המידע שביקשנו.

Document היא פונקציית עטיפה המשמשת כדי לעזור לנתח את תגובת ה-JSON מה-API. הוא מספק הפשטה ברמה גבוהה והופך את פלט ה-API לחזרה וקל להוציא ממנו מידע. למידע נוסף, עיין ב מנתח תגובה של Textract ו טקסטקטור Repos GitHub. לאחר שנעבד את התגובה, נקבל את המידע הבא כפי שמוצג בצילום המסך.

import trp.trp2 as t2
from tabulate import tabulate

d = t2.TDocumentSchema().load(response)
page = d.pages[0]

query_answers = d.get_query_answers(page=page)

print(tabulate(query_answers, tablefmt="github"))

תגובה מחילוץ שאילתות.

שלב סקירה ואימות

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

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

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

שלב סקירה ואימות אנושיים.

למידע נוסף על איך ליצור זרימת עבודה של Amazon A2I, עקוב אחר ההוראות מה- הכנה למודול 4 צעד בסוף 03-idp-document-enrichment.ipynb בשלנו GitHub ריפו.

לנקות את

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

סיכום

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

למידע נוסף על דוגמאות הקוד המלאות בפוסט זה, עיין ב- GitHub ריפו.

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


על המחברים

עיבוד מסמכים חכם עם שירותי AI של AWS: חלק 2 PlatoBlockchain Data Intelligence. חיפוש אנכי. איי. סנטר ראן הוא אדריכל פתרונות AI/ML מומחה בשירותי האינטרנט של אמזון. היא נלהבת למתמטיקה שימושית ולמידת מכונה. היא מתמקדת בעיצוב פתרונות עיבוד מסמכים חכמים עבור לקוחות AWS. מחוץ לעבודה, היא נהנית לרקוד סלסה ובאצ'טה.

עיבוד מסמכים חכם עם שירותי AI של AWS: חלק 2 PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.סונאלי סהו מובילה את צוות אדריכלי פתרונות AI/ML Intelligent Document Processing ב- Amazon Web Services. היא טכנופילית נלהבת ונהנית לעבוד עם לקוחות כדי לפתור בעיות מורכבות באמצעות חדשנות. תחומי הליבה שלה הם בינה מלאכותית ולמידת מכונה לעיבוד מסמכים חכם.

עיבוד מסמכים חכם עם שירותי AI של AWS: חלק 2 PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.אנג'אן ביזוואז הוא מומחה AI/ML ארכיטקט פתרונות בכיר. אנג'אן עובדת עם לקוחות ארגוניים ומתלהבת מפיתוח, פריסה והסבר של AI/ML, ניתוח נתונים ופתרונות ביג דאטה. לאנג'אן יש למעלה מ-14 שנות ניסיון בעבודה עם שרשרת אספקה ​​גלובלית, ייצור וקמעונאות, והיא עוזרת ללקוחות להתחיל ולהתקדם ב-AWS.

עיבוד מסמכים חכם עם שירותי AI של AWS: חלק 2 PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.סופראקש דוטה הוא אדריכל פתרונות בשירותי האינטרנט של אמזון. הוא מתמקד באסטרטגיית טרנספורמציה דיגיטלית, מודרניזציה והגירה של יישומים, ניתוח נתונים ולמידת מכונה. הוא חלק מקהילת AI/ML ב-AWS ומעצב פתרונות חכמים לעיבוד מסמכים.

בול זמן:

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