המרת נתוני PDF לערכי מסד נתונים PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

המרת נתוני PDF לערכי מסד נתונים

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

במקרים מסוימים, קובצי PDF מכילים מידע חיוני לעיבוד במערכות ERP שונות, CMS ומערכות אחרות מונעות מסד נתונים. למרבה הצער, למסמכי PDF אין פונקציה קלה של PDF למסד נתונים, וכתיבת סקריפטים או בניית זרימת עבודה סביב משימה זו היא מעט מסובכת. זה המקום שבו אלגוריתמי OCR ו-Deep Learning (DL) נכנסים לתמונה כדי לחלץ נתונים מפורמטי PDF אלה ולייצא אותם למסד נתונים. בפוסט זה בבלוג, נבחן דרכים שונות כיצד תוכל להשיג זאת על ידי שימוש בטכנולוגיות DL וכן בכמה ממשקי API פופולריים בשוק.

מהי המרת PDF למסד נתונים?

המרת PDF למסד נתונים היא המשימה של ייצוא נתונים מקובצי PDF למסד נתונים כגון Postgres, Mongo, MySQL וכו'.

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

זה המקום שבו המרת PDF למסד נתונים מתקדמת מונעת בינה מלאכותית שימושית!

האם תהליך המרת PDF לבסיס נתונים זה מונע בינה מלאכותית יכול להיות אוטומטי? - כן.

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

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

מקרי שימוש שונים עבור PDF למאגרי מידע

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

  1. ניהול חשבוניות באינטרנט: עסקים וארגונים מתמודדים עם מספר חשבוניות מדי יום; וקשה להם לעבד כל חשבונית באופן ידני. כמו כן, לפעמים הם מגייסים ומקבלים חשבוניות בפורמט לא דיגיטלי, מה שמקשה על המעקב אחריהם. לפיכך, הם מסתמכים על יישומים מבוססי אינטרנט שיכולים לאחסן את כל החשבוניות שלהם במקום אחד. ממיר PDF לבסיס נתונים יכול להפוך את חילוץ הנתונים לאוטומטיים מהחשבוניות לאפליקציית האינטרנט. כדי לבצע אוטומציה של משימות אלו בצורה יעילה, נוכל להריץ משימות cron ולשלב אותן עם שירותי צד שלישי כמו n8n ו-Zapier – כאשר חשבונית חדשה נסרקת ומועלת, היא יכולה להפעיל את האלגוריתם ולדחוף אותו אוטומטית לטבלאות.
  2. מנהלי מלאי EComt: הרבה ניהול מלאי e-com עדיין פועל באמצעות הזנה ידנית של מוצרים מקובצי PDF ועותקים סרוקים. עם זאת, הם צריכים להעלות את כל הנתונים שלהם לתוכנת ניהול חיוב כדי לעקוב אחר כל המוצרים והמכירות שלהם. לפיכך, שימוש באלגוריתם המרת טבלה לבסיס נתונים יכול לעזור להפוך את ההזנה הידנית שלהם לאוטומטית ולחסוך במשאבים. תהליך זה כולל בדרך כלל סריקת רשימת המלאי ממסמכים סרוקים וייצוא שלהם לטבלאות מסד נתונים ספציפיות בהתבסס על כללים ותנאים עסקיים שונים.
  3. חילוץ נתונים מסקרים: כדי לאסוף משוב ומידע בעל ערך אחר, אנו בדרך כלל עורכים סקר. הם מספקים מקור קריטי לנתונים ותובנות עבור כמעט כל מי שעוסק בכלכלת המידע, מעסקים ותקשורת ועד ממשלה ואקדמיה. כאשר אלה נאספים באופן מקוון, קל לחלץ את סטטוס נתוני הטבלה בהתבסס על תגובת המשתמש ולהעלות אותו למסד נתונים. עם זאת, ברוב המקרים, התשובות לסקר הן על הנייר. במקרים כאלה, קשה מאוד לאסוף מידע ממנו באופן ידני ולאחסן אותו בפורמט דיגיטלי. לכן, הסתמכות על טבלה לאלגוריתמים של מסד נתונים יכולה לחסוך זמן וגם לקצץ בעלויות נוספות.

כיצד לחלץ מידע מקובצי PDF למאגרי מידע יחסיים ולא יחסיים?

קובץ PDF נתפס כשני סוגים שונים, שנוצרו בצורה אלקטרונית ולא נוצרה באופן אלקטרוני.

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

נוכל להסתמך על שפות תכנות פשוטות ומסגרות כמו Python ו-Java עבור הסוג הראשון (שנוצר באופן אלקטרוני). עבור קובצי PDF שאינם נוצרים באופן אלקטרוני, נצטרך להשתמש בטכניקות של Computer Vision עם OCR ולמידה עמוקה. עם זאת, ייתכן שהאלגוריתמים הללו לא יהיו זהים עבור כל האלגוריתמים לחילוץ הטבלה, והם יצטרכו להשתנות בהתאם לסוג הנתונים כדי להשיג דיוק גבוה יותר. NLP (עיבוד שפה טבעית) משמש גם כדי להבין את הנתונים בתוך טבלאות ולחלץ אותם במקרים מסוימים.

מצד שני, ישנם שני סוגים של מאגרי מידע (רלציונלי ולא יחסי); לכל אחד מבסיסי הנתונים הללו יש סטים שונים של כללים המבוססים על הארכיטקטורה שלהם. מסד נתונים יחסי מובנה, כלומר הנתונים מאורגנים בטבלאות. כמה דוגמאות כוללות MySQL, Postgres וכו'.

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

PDF למסד נתונים כאשר מסמכים נוצרים באופן אלקטרוני

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

זרם טכניקה מס' 1: האלגוריתם מנתח טבלאות המבוססות על רווחים לבנים בין תאים כדי לדמות מבנה טבלה - מזהה היכן הטקסט אינו קיים. הוא בנוי על הפונקציונליות של PDFMiner של קיבוץ תווים בדף למילים ומשפטים באמצעות שוליים. בטכניקה זו, ראשית, השורות מזוהות על ידי ניחושים גסים בהתבסס על מיקום ציר Y של טקסט כלשהו (כלומר, גובה). כל הטקסט באותה שורה נחשב לחלק מאותה שורה. לאחר מכן, הקורא מקובץ ומרכיב אותו כקבוצה אחרת כדי לזהות את העמודות בטבלה. לבסוף, הטבלה נקבעת יחד על סמך השורות והעמודות שזוהו בשלבים קודמים.

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

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

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

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

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

  1. ראשית, אנו מזהים את מקטעי הקו על ידי החלת קווי מתאר אופקיים ואנכיים.
  2. מפגשי הקווים בין הקווים מזוהים על ידי הסתכלות על עוצמת הפיקסלים של כל הקווים. אם לפיקסל קו יש יותר עוצמה משאר הפיקסל, הוא חלק משני קווים, ולכן, צומת.
  3. קצוות הטבלה נקבעים על ידי התבוננות בעוצמת הפיקסלים של קווים מצטלבים. כאן, כל הפיקסלים של קו נלקחים, והקווים החיצוניים ביותר מייצגים את גבולות הטבלה.
  4. ניתוח התמונה מתורגם לקואורדינטות PDF, שם נקבעים התאים. הטקסט מוקצה לתא על סמך קואורדינטות ה-x וה-y שלו.
  5. OCR מוחל על הקואורדינטות כדי לחלץ את הטקסט
  6. הטקסט שחולץ מיוצא למסגרת נתונים המבוססת על מיקום הטבלה.

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

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

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

זרימת עבודה אופיינית ל- ML (מָקוֹר)

חילוץ נתונים מ-PDF וייצוא שלהם למסד נתונים של SQL באמצעות Python

עד כה, למדנו מהי המרת PDF למסד נתונים ודנו בכמה מקרי שימוש שבהם זה יכול להיות מועיל. חלק זה יגש למעשה לבעיה זו באמצעות Computer Vision ויזהה טבלאות בקובצי PDF סרוקים וייצא אותן לבסיסי נתונים. כדי לעקוב אחריך, הקפד להתקין את Python ו-OpenCV במחשב המקומי שלך. לחלופין, תוכל להשתמש במחברת מקוונת של Google Collab.

שלב 1: התקן את Tabula ו-Pandas

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

import tabula
import pandas as pd

שלב 2: קריאת טבלאות לתוך Dataframe

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

table = tabula.read_pdf("sample.pdf",pages='all',multiple_tables=False)

df = pd.concat(table)

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

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

שלב 3: העברת Dataframe ל-Posters

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

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

engine = create_engine('postgresql+psycopg2://username:password@host:port/database')

sql.write_frame(df, 'table_name', con, flavor='postgresql')

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

  1. מאמרים עם קוד - GFTE: מיצוי טבלה פיננסית מבוססת גרפים
  2. מאמרים עם קוד - PubTables-1M: לקראת מערך נתונים ומדדים אוניברסליים להדרכה והערכת מודלים לחילוץ טבלאות
  3. TableNet: מודל למידה עמוקה לגילוי טבלאות מקצה לקצה וחילוץ נתונים טבלאיים מתמונות סרוק של מסמכים

הזן Nanonets: מתקדם OCR עבור המרת טבלת PDF למסד נתונים

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

Nanonets™ הוא OCR מבוסס ענן שיכול לעזור לאוטומטי את הזנת הנתונים הידנית שלך באמצעות AI. יהיה לנו לוח מחוונים שבו נוכל לבנות/להכשיר את דגמי ה-OCR שלנו על הנתונים שלנו ולהעביר אותם ב-JSON/CSV או בכל פורמט רצוי. להלן כמה מהיתרונות של שימוש בננונטים כסורק מסמכי PDF.

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

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

המרת נתוני PDF לערכי מסד נתונים PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

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

המרת נתוני PDF לערכי מסד נתונים PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

שלב 3: העלה PDF של תמונות, כדי לבצע חילוץ נתונים ובחר באפשרות חילוץ אוטומטי.

המרת נתוני PDF לערכי מסד נתונים PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

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

המרת נתוני PDF לערכי מסד נתונים PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

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

בול זמן:

עוד מ AI & Machine Learning