חילוץ נתונים טבלאיים PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

חלץ נתונים טבלאיים

רוצה לחלץ נתונים טבלאיים מחשבוניות, קבלות או כל סוג אחר של מסמך? לבדוק ננונטים' OCR מבוסס AI לחילוץ נתונים טבלאיים.


מבוא

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

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

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

פירוק הבעיה

ניתן לחלק את משימת חילוץ הנתונים הטבלאיים לשתי תתי-בעיות: 1) חילוץ טבלאות מסריקות/תמונות/מסמכי PDF שבהם הפורמט אינו מזוהה על ידי מכונות ו-2) הבנה/פירוש של המילים בתוך תאי טבלה כך שיוכלו להיות מיובאים כראוי לקובצי CSV עבור גיליונות אלקטרוניים.

השתמש במקרים של חילוץ נתונים טבלאי

חילוץ נתונים טבלאיים - מקרי שימוש
חילוץ נתונים טבלאיים - מקרי שימוש

מעקב אחר תזרים מזומנים לעסקים

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

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

העברת רשומות חוצה עסקים

חילוץ נתונים טבלאי - מקרה שימוש
חילוץ נתונים טבלאי - מקרה שימוש

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

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


רוצה לחלץ נתונים טבלאיים מחשבוניות, קבלות או כל סוג אחר של מסמך? לבדוק ננונטים' OCR מבוסס AI לחילוץ נתונים טבלאיים.


חברות רואי חשבון

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

איך זה עובד?

חילוץ נתונים טבלאיים לחשבונאות
חילוץ נתונים טבלאיים לחשבונאות

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

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

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

CNN

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

RNN

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

חיבור המושגים ביחד

על ידי הדרכה על מערכי הנתונים הנכונים, אנו יכולים כעת לחלץ נתונים טבלאיים באמצעות ההליך הבא:

  1. שימוש ב-CNN כדי לסווג את סוג המסמך הוא בתוך תמונה אחת. זה מאפשר לנו להיות ספציפיים יותר בבחירת גלאי טבלה מיומנים שונים שיכולים לעבוד טוב יותר בתרחישים שונים (למשל, אחד עבור חשבונית ואחד עבור דפי חשבון בנק)
  2. שימוש ב-CNN כדי לזהות עוד יותר את הטבלאות, השורות והעמודות.
  3. שילוב CNN ו-RNN לביצוע זיהוי תווים אופטי, המאפשר לנו להבין מה בדיוק מאוחסן בכל טבלה, שורה או עמודה. הבנת ה"שפה" יכולה לאפשר לנו להכניס את הנתונים שחולצו שלנו לפורמטים ייעודיים (למשל, CSV או JSON) שבהם נוכל להמשיך לאמץ לניתוחים סטטיסטיים והשוואות צולבות.

רוצה לחלץ נתונים טבלאיים מחשבוניות, קבלות או כל סוג אחר של מסמך? לבדוק ננונטים' OCR מבוסס AI לחילוץ נתונים טבלאיים.


הדרכה

המרת PDF לתמונות

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

pip install pdf2image

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

from pdf2image import convert_from_path, convert_from_bytes
from pdf2image.exceptions import ( PDFInfoNotInstalledError, PDFPageCountError, PDFSyntaxError
) images = convert_from_path('example.pdf')
images = convert_from_bytes(open('example.pdf','rb').read())

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

מציאת טבלאות

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

pip install opencv-python

עם זאת, אם לחברה שלך יש נתונים בשפע של איך נראות הטבלאות הטיפוסיים במסד הנתונים של הקבצים שלך, אתה יכול גם לעקוב אחר שיטות זיהוי אובייקטים כדי למצוא טבלאות. כמה שיטות בולטות כוללות Faster RCNN ו-YOLO. שים לב שעל ידי אימון המודל שלך לכך, עם זאת, תצטרך משאבי חישוב כגון GPUs במהלך ההדרכה, יחד עם כמות ניכרת של נתונים החל מכל מיני תרחישים שבהם התמונה/ה-PDF הסרוק נלכדת.

חילוץ תוכן באמצעות Google Vision API

לבסוף, כשהתיבה התוחמת של תאי טבלה הוקמה, נוכל כעת לעבור ל-OCR, שנראה ש-Google Vision API לאחזור OCR הוא אחת האפשרויות הטובות ביותר. ה-API של Google vision מאומנים על בסיס מיקור המונים מסיבי בגלל בסיס הלקוחות העצום שלהם. לכן, במקום להכשיר את ה-OCR האישי שלך, השימוש בשירותים שלהם עשוי להיות בעל דיוק גבוה בהרבה.

כל ה-API של Google Vision קל להגדרה; אפשר להתייחס להנחיות הרשמיות שלו בנושא https://cloud.google.com/vision/docs/quickstart-client-libraries להליך ההגדרה המפורט.

להלן הקוד לאחזור OCR:

def detect_document(path): """Detects document features in an image.""" from google.cloud import vision import io client = vision.ImageAnnotatorClient() with io.open(path, 'rb') as image_file: content = image_file.read() image = vision.Image(content=content) response = client.document_text_detection(image=image) for page in response.full_text_annotation.pages: for block in page.blocks: print('nBlock confidence: {}n'.format(block.confidence)) for paragraph in block.paragraphs: print('Paragraph confidence: {}'.format( paragraph.confidence)) for word in paragraph.words: word_text = ''.join([ symbol.text for symbol in word.symbols ]) print('Word text: {} (confidence: {})'.format( word_text, word.confidence)) for symbol in word.symbols: print('tSymbol: {} (confidence: {})'.format( symbol.text, symbol.confidence)) if response.error.message: raise Exception( '{}nFor more info on error messages, check: ' 'https://cloud.google.com/apis/design/errors'.format( response.error.message))

אם אתה משתמש בתמונות מרוחקות מענני Google, תוכל להשתמש בקוד הבא במקום זאת:

def detect_text_uri(uri): """Detects text in the file located in Google Cloud Storage or on the Web. """    from google.cloud import vision client = vision.ImageAnnotatorClient() image = vision.Image() image.source.image_uri = uri response = client.text_detection(image=image) texts = response.text_annotations    print('Texts:') for text in texts: print('n"{}"'.format(text.description)) vertices = (['({},{})'.format(vertex.x, vertex.y)                  for vertex in text.bounding_poly.vertices])        print('bounds: {}'.format(','.join(vertices))) if response.error.message: raise Exception( '{}nFor more info on error messages, check: '            'https://cloud.google.com/apis/design/errors'.format(                response.error.message))

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

ניתן לאחזר קודים נוספים לגבי השימוש ב-Google API כאן: https://cloud.google.com/vision; אתה יכול גם להתייחס לקודים בשפות אחרות (למשל, Java או Go) אם אתה מכיר אותם יותר.

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


רוצה לחלץ נתונים טבלאיים מחשבוניות, קבלות או כל סוג אחר של מסמך? לבדוק ננונטים' OCR מבוסס AI לחילוץ נתונים טבלאיים.


לא יודע קידוד? נסה Nanonets!

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

שלב 1.

עבור אל nanonets.com והירשם/התחבר.

חילוץ נתונים טבלאיים PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.
חילוץ נתונים טבלאיים - ננונטים

שלב 2.

לאחר ההרשמה, עבור לאזור "בחר כדי להתחיל", שם מיוצרים כל המחלצים המובנים מראש ולחצו על לשונית "טבלאות" עבור המחלץ המיועד לחילוץ נתונים טבלאיים.

שלב 3.

חילוץ נתונים טבלאיים PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

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

חילוץ נתונים טבלאיים PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

שלב 4.

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

חילוץ נתונים טבלאיים PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

סיכום

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

בול זמן:

עוד מ AI & Machine Learning