چندین سازمان و کسب و کار برای به اشتراک گذاشتن اسناد مهم مانند فاکتورها، فیش حقوقی، امور مالی، سفارشات کاری، رسیدها و موارد دیگر به اسناد PDF متکی هستند. با این حال، فایلهای PDF فرمتهای قابل استفاده برای ذخیره دادههای تاریخی نیستند، زیرا نمیتوان آنها را به راحتی صادر و در جریانهای کاری سازماندهی کرد. بنابراین افراد از الگوریتمهای استخراج اطلاعات برای دیجیتالی کردن فایلهای PDF و اسناد اسکن شده به فرمتهای ساختاری مانند JSON، CSV، جداول یا اکسل استفاده میکنند که به راحتی میتوانند به سایر گردشهای کاری سازمانی تبدیل شوند.
در برخی موارد، PDF ها اطلاعات ضروری را برای پردازش در ERP های مختلف، CMS و سایر سیستم های مبتنی بر پایگاه داده نگهداری می کنند. متأسفانه اسناد PDF دارای عملکرد آسان PDF به پایگاه داده نیستند و نوشتن اسکریپت ها یا ایجاد یک گردش کاری پیرامون این کار کمی پیچیده است. اینجاست که الگوریتمهای OCR و Deep Learning (DL) وارد تصویر میشوند تا دادهها را از این فرمتهای PDF استخراج کرده و به یک پایگاه داده صادر کنند. در این پست وبلاگ، راههای مختلفی را بررسی میکنیم که چگونه میتوانید با استفاده از فناوریهای DL و همچنین برخی از APIهای محبوب موجود در بازار به آن دست یابید.
تبدیل PDF به پایگاه داده چیست؟
تبدیل PDF به پایگاه داده وظیفه صادرات داده ها از فایل های PDF به پایگاه داده هایی مانند Postgres، Mongo، MySQL و غیره است.
فرض کنید قرار بود یک برنامه وب یا یک سیستم ERP بسازیم که اطلاعات فاکتور را از منابع مختلف نگهداری و نگهداری می کند. افزودن صورتحسابهای تاریخی به صورت دستی بر روی یک پایگاه داده یک کار دشوار است و بسیار مستعد خطا است. از سوی دیگر، استفاده از یک OCR ساده ممکن است جداول را از فاکتورها به طور دقیق استخراج نکند.
اینجاست که تبدیل PDF به پایگاه داده مبتنی بر هوش مصنوعی پیشرفته به کمک شما می آید!
آیا این فرآیند تبدیل PDF به پایگاه داده مبتنی بر هوش مصنوعی می تواند خودکار باشد؟ - آره.
در بخش های زیر، ما از بینایی کامپیوتر و یادگیری عمیق برای تشخیص مناطق جدول از اسناد اسکن شده استفاده می کنیم. این جداول بیشتر در یک فرمت داده خاص مانند CSV یا اکسل ذخیره می شوند و مستقیماً به پایگاه داده ها منتقل می شوند.
قبل از بحث در مورد این موارد، اجازه دهید برخی از موارد استفاده را که در آن تشخیص PDF به پایگاه داده می تواند مفید باشد را درک کنیم.
موارد استفاده مختلف از PDF به پایگاه داده
پایگاه های داده بهترین راه برای ذخیره اطلاعات در فضای ذخیره سازی ابری و محلی هستند. آنها به ما اجازه می دهند تا عملیات و دستکاری های مختلف را با استفاده از پرس و جوهای ساده انجام دهیم. در اینجا چند مورد استفاده وجود دارد که می تواند با گردش کار تبدیل PDF خودکار به پایگاه داده تا حد زیادی بهینه شود:
- مدیریت فاکتور در وب: شرکت ها و سازمان ها هر روز با چندین فاکتور سروکار دارند. و پردازش دستی هر فاکتور برای آنها سخت است. همچنین گاهی اوقات فاکتورها را به صورت غیر دیجیتالی تهیه و دریافت می کنند که ردیابی آنها را سخت می کند. از این رو، آنها به برنامه های مبتنی بر وب متکی هستند که می توانند تمام فاکتورهای خود را در یک مکان ذخیره کنند. یک مبدل PDF به پایگاه داده می تواند استخراج داده ها را از فاکتورها به برنامه وب به طور خودکار انجام دهد. برای خودکارسازی کارآمد این وظایف، میتوانیم cron jobs را اجرا کنیم و آنها را با سرویسهای شخص ثالث مانند n8n و Zapier ادغام کنیم – هنگامی که یک فاکتور جدید اسکن و آپلود میشود، میتواند الگوریتم را اجرا کرده و به طور خودکار آن را در جداول قرار دهد.
- مدیریت موجودی EComt: بسیاری از مدیریت موجودی e-com هنوز از طریق ورود دستی محصولات از فایلهای PDF و کپیهای اسکن شده انجام میشود. با این حال، آنها باید تمام داده های خود را در نرم افزار مدیریت صورتحساب بارگذاری کنند تا همه محصولات و فروش خود را پیگیری کنند. از این رو، استفاده از الگوریتم تبدیل جدول به پایگاه داده می تواند به خودکار ورود دستی آنها و صرفه جویی در منابع کمک کند. این فرآیند معمولاً شامل اسکن لیست موجودی از اسناد اسکن شده و صادرات آنها به جداول پایگاه داده خاص بر اساس قوانین و شرایط مختلف تجاری است.
- استخراج داده ها از نظرسنجی ها: برای جمع آوری بازخورد و سایر اطلاعات ارزشمند، معمولا نظرسنجی انجام می دهیم. آنها منبع مهمی از دادهها و بینشها را برای تقریباً همه افراد فعال در اقتصاد اطلاعات، از مشاغل و رسانهها گرفته تا دولت و دانشگاهیان، فراهم میکنند. وقتی اینها به صورت آنلاین جمع آوری می شوند، استخراج وضعیت داده های جدول بر اساس پاسخ کاربر و آپلود آن در پایگاه داده آسان است. با این حال، در بیشتر موارد، پاسخ های نظرسنجی روی کاغذ است. در چنین مواردی، جمع آوری دستی اطلاعات و ذخیره آنها در قالب دیجیتال بسیار سخت است. بنابراین، تکیه بر الگوریتم های جدول به پایگاه داده می تواند باعث صرفه جویی در زمان و همچنین کاهش هزینه های اضافی شود.
چگونه اطلاعات را از PDF به پایگاه داده های رابطه ای و غیر رابطه ای استخراج کنیم؟
یک فایل پی دی اف به دو صورت متفاوت دیده می شود، تولید الکترونیکی و غیر الکترونیکی.
- پی دی اف های الکترونیکی: این سند پی دی اف اسکن شده ممکن است متنی را در پشت تصویر پنهان کرده باشد. اینها همچنین به عنوان PDF های تولید شده الکترونیکی نامیده می شوند.
- PDF های غیر الکترونیکی: در این نوع، محتوای بیشتری را به صورت هارد کد شده به صورت تصویر مشاهده می کنیم. این مورد زمانی است که شما یک سند کپی سخت را در یک فایل PDF اسکن کنید.
ما میتوانیم به زبانها و چارچوبهای برنامهنویسی ساده مانند پایتون و جاوا برای نوع اول (تولید شده به صورت الکترونیکی) تکیه کنیم. برای PDF های غیر الکترونیکی تولید شده، ما باید از تکنیک های Computer Vision با OCR و یادگیری عمیق استفاده کنیم. با این حال، این الگوریتمها ممکن است برای همه الگوریتمهای استخراج جدول یکسان نباشند و برای دستیابی به دقت بالاتر، بسته به نوع دادهها باید تغییر کنند. NLP (پردازش زبان طبیعی) نیز برای درک داده های داخل جداول و استخراج آنها در برخی موارد استفاده می شود.
از سوی دیگر، دو نوع پایگاه داده (رابطه ای و غیر رابطه ای) وجود دارد. هر یک از این پایگاههای داده بر اساس معماری خود دارای مجموعههای متفاوتی از قوانین هستند. یک پایگاه داده رابطه ای ساختار یافته است، به این معنی که داده ها در جداول سازماندهی شده اند. چند نمونه عبارتند از MySQL، Postgres و غیره.
در مقابل، پایگاه داده غیررابطه ای سند محور است، به این معنی که تمام اطلاعات بیشتر به ترتیب فهرست لباسشویی ذخیره می شوند. در یک سند سازنده، شما تمام داده های خود را در لیست خواهید داشت - به عنوان مثال، MongoDB.
PDF به پایگاه داده زمانی که اسناد به صورت الکترونیکی تولید می شوند
همانطور که بحث شد، برای PDF های تولید شده الکترونیکی، فرآیند استخراج جداول ساده است. ایده این است که جداول را استخراج کنید و سپس از اسکریپت های ساده برای تبدیل آنها یا اضافه کردن آنها به جداول استفاده کنید. برای استخراج جدول از فایل های PDF، در درجه اول دو تکنیک وجود دارد.
تکنیک شماره 1 جریان: این الگوریتم جداول را بر اساس فضاهای خالی بین سلول ها تجزیه می کند تا ساختار جدول را شبیه سازی کند – شناسایی جایی که متن موجود نیست. این بر اساس قابلیت PDFMiner برای گروه بندی کاراکترها در یک صفحه به کلمات و جملات با استفاده از حاشیه ساخته شده است. در این تکنیک، ابتدا ردیفها با حدسهای تقریبی بر اساس موقعیت محور y متن (یعنی ارتفاع) شناسایی میشوند. تمام متن در یک خط به عنوان بخشی از یک ردیف در نظر گرفته می شود. در مرحله بعد، خواننده گروه بندی می شود و به عنوان یک گروه متفاوت کنار هم قرار می گیرد تا ستون های جدول را شناسایی کند. در نهایت، جدول بر اساس ردیفها و ستونهایی که در مراحل قبلی شناسایی شدهاند، تنظیم میشود.
شبکه شماره 2: در مقابل جریان، شبکه جبرگراتر است. به این معنی که بر حدس و گمان تکیه نمی کند. ابتدا جداول را که دارای خطوط مشخصی بین سلول ها هستند، تجزیه می کند. در مرحله بعد، می تواند به طور خودکار چندین جدول موجود در یک صفحه را تجزیه کند. این تکنیک اساسا با نگاه کردن به شکل چند ضلعی ها و شناسایی متن داخل سلول های جدول کار می کند. اگر PDF دارای قابلیتی باشد که بتواند چند ضلعی ها را شناسایی کند، این کار ساده خواهد بود. اگر چنین بود، احتمالاً روشی برای خواندن آنچه در داخل آن وجود دارد، داشت. با این حال، این کار را نمی کند. از این رو، بینایی کامپیوتر به طور گسترده ای برای شناسایی این اشکال و استخراج محتویات جدول استفاده می شود.
جداول استخراج شده در درجه اول در قالب قاب داده ذخیره می شوند. این یکی از انواع داده های بومی است که توسط یکی از محبوب ترین پانداهای کتابخانه پایتون ارائه شده است. چندین مزیت برای ذخیره داده های جدول در یک قاب داده وجود دارد. آنها را می توان به راحتی مدیریت کرد، دستکاری کرد و به فرمت های مختلف مانند JSON، CSV یا جداول صادر کرد. با این حال، قبل از اینکه این فریم های داده را به جداول فشار دهیم، ابتدا باید به پایگاه داده DB-Client متصل شده و سپس جدول را انتقال دهیم. با استفاده از زبان هایی مانند پایتون، می توانیم چندین کتابخانه را پیدا کنیم که می توانند به این منابع داده متصل شوند و داده ها را صادر کنند.
PDF به پایگاه داده زمانی که اسناد به صورت غیر الکترونیکی تولید می شوند
تکنیکهای مورد بحث در بالا ممکن است برای PDFهای غیرالکترونیکی تولید شده کار نکنند، زیرا دادهها در اینجا به صورت دستی از طریق منبع دیگری اسکن میشوند. به همین دلیل است که ما از تکنیک های OCR و Deep Learning برای استخراج داده ها از اسناد اسکن شده و صادر کردن آنها به پایگاه داده استفاده خواهیم کرد.
به طور خلاصه، تشخیص کاراکتر نوری، OCR یک ابزار ویژه است که حروف چاپ شده را از اسناد اسکن شده به متن قابل ویرایش تبدیل می کند. برای شناسایی جداول PDF از اسناد، ابتدا باید موقعیت جدول را شناسایی کنیم و سپس OCR را برای استخراج داده ها از سلول های جدول اعمال کنیم. در زیر مراحل چگونگی دستیابی به آن آمده است:
- ابتدا قطعات خط را با اعمال خطوط افقی و عمودی تشخیص می دهیم.
- تقاطع خطوط بین خطوط با نگاه کردن به شدت پیکسل های همه خطوط تشخیص داده می شود. اگر یک پیکسل خطی شدت بیشتری نسبت به بقیه پیکسل داشته باشد، بخشی از دو خط و بنابراین، یک تقاطع است.
- لبه های جدول با نگاه کردن به شدت پیکسل های خطوط متقاطع تعیین می شود. در اینجا، تمام پیکسل های یک خط گرفته می شود و خارجی ترین خطوط، مرزهای جدول را نشان می دهند.
- تجزیه و تحلیل تصویر به مختصات PDF ترجمه می شود، جایی که سلول ها تعیین می شوند. متن بر اساس مختصات x و y به یک سلول اختصاص داده می شود.
- OCR برای استخراج متن روی مختصات اعمال می شود
- متن استخراج شده بر اساس موقعیت جدول به یک قاب داده صادر می شود.
به این ترتیب می توانیم با استفاده از CV جداول را استخراج کنیم. با این حال، در اینجا چند اشکال وجود دارد. این الگوریتم ها برای جداول بزرگ و جداول با سبک های قالب متفاوت شکست می خورند. اینجاست که یادگیری عمیق وارد می شود. آنها از نوع خاصی از چارچوب شبکه عصبی برای یادگیری از داده ها و شناسایی الگوهای مشابه بر اساس آموخته ها استفاده می کنند. در طول دهه گذشته، آنها به عملکرد پیشرفتهای دست یافتهاند، به ویژه برای کارهایی مانند استخراج اطلاعات. حال، بیایید ببینیم که چگونه شبکه های عصبی عمیق می توانند از داده ها یاد بگیرند و جداول را از هر سند استخراج کنند.
آموزش شبکه های عصبی عمیق شامل یک جریان کاری خاص است. این گردشهای کاری اغلب بر اساس نوع دادههایی که با آنها کار میکنیم و عملکرد مدل آنها تغییر میکنند. مرحله اول گردش کار شامل جمع آوری داده ها و پردازش آنها بر اساس مدل ما است. در مورد استخراج جداول از اسناد PDF، مجموعه داده در حالت ایده آل باید حاوی اسناد بدون ساختار باشد. این اسناد به تصاویر تبدیل می شوند، به عنوان تانسور بارگذاری می شوند و به عنوان یک کلاس بارگذار داده برای آموزش آماده می شوند. در مرحله بعد، ما معمولا تمام هایپرپارامترهایی را که برای آموزش لازم است تعریف می کنیم. اینها معمولاً شامل تنظیم اندازه دسته، عملکرد از دست دادن، بهینهساز برای مدل هستند. در نهایت، یک معماری شبکه عصبی بر روی یک مدل از پیش تعریف شده تعریف یا ساخته می شود. این مدل در بالای داده ها آموزش داده می شود و بر اساس معیارهای عملکرد تنظیم می شود.
در زیر یک اسکرین شات از مراحل مختلف مربوط به آموزش یک مدل یادگیری عمیق آورده شده است:
استخراج داده ها از pdf و صادرات آنها به پایگاه داده SQL با استفاده از پایتون
تا اینجا، ما یاد گرفتیم که تبدیل pdf به پایگاه داده چیست و در مورد موارد استفاده که می تواند مفید باشد، بحث کرده ایم. این بخش عملاً با استفاده از Computer Vision به این مشکل نزدیک می شود و جداول را در پی دی اف های اسکن شده تشخیص می دهد و آنها را به پایگاه داده صادر می کند. برای پیگیری، حتما پایتون و OpenCV را روی دستگاه محلی خود نصب کنید. از طرف دیگر، می توانید از یک نوت بوک آنلاین Google Collab استفاده کنید.
مرحله 1: Tabula و Pandas را نصب کنید
در این مثال، ما از Tabula و Pandas برای استخراج و فشار دادن جداول به پایگاه داده استفاده خواهیم کرد. بیایید آنها را از طریق پیپ نصب کنیم و به برنامه خود وارد کنیم.
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، زیرا سند استفاده شده در مثال فقط یک جدول دارد.
اکنون، ما این لیست را با استفاده از پانداها در یک قاب داده بارگذاری می کنیم و می توانید با استفاده از روش type نوع جدول را بررسی کنید. این یک قاب داده بومی پانداها را برمی گرداند.
مرحله 3: انتقال Dataframe به Postres
قبل از اینکه جدول خود را به پایگاه داده فشار دهیم، ابتدا باید از برنامه خود با آن ارتباط برقرار کنیم و می توانیم این کار را با استفاده از 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 پردازش شده الکترونیکی ساده استفاده کرده ایم. برای استخراج جداول از جداول غیرالکترونیکی تولید شده در زیر تکنیک های یادگیری عمیق رایج وجود دارد که می توان از آنها استفاده کرد:
- مقالات با کد - GFTE: استخراج جدول مالی مبتنی بر نمودار
- مقالات با کد – PubTables-1M: به سوی یک مجموعه داده و معیارهای جهانی برای آموزش و ارزیابی مدلهای استخراج جدول
- TableNet: مدل یادگیری عمیق برای تشخیص پایان به انتها جدول و استخراج داده های جدولی از تصاویر اسناد اسکن شده
Nanonets را وارد کنید: OCR پیشرفته برای تبدیل جدول PDF به پایگاه داده
این بخش به بررسی این موضوع میپردازد که چگونه نانوشبکهها میتوانند به ما کمک کنند تا جداول را به روشی قابل تنظیمتر و آسانتر در پایگاه داده انجام دهیم.
Nanonets یک OCR مبتنی بر ابر است که میتواند به خودکارسازی ورود دادههای دستی شما با استفاده از هوش مصنوعی کمک کند. ما داشبوردی خواهیم داشت که در آن میتوانیم مدلهای OCR خود را بر روی دادههای خود بسازیم/آموزش دهیم و آنها را در JSON/CSV یا هر فرمت دلخواه منتقل کنیم. در اینجا برخی از مزایای استفاده از نانو شبکه به عنوان اسکنر اسناد PDF آورده شده است.
یکی از برجستهترین ویژگیهای نانوشبکهها، سادگی این سرویس است. می توان این خدمات را بدون پیش زمینه برنامه نویسی انتخاب کرد و به راحتی داده های PDF را با فناوری پیشرفته استخراج کرد. در زیر خلاصه ای از چگونگی آسان تبدیل PDF به پایگاه داده ارائه شده است.
مرحله 1: به nanonets.com بروید و ثبت نام کنید/ورود شوید.
مرحله 2: پس از ثبت نام، به قسمت «انتخاب برای شروع کار» بروید، در آنجا می توانید از استخراج کننده های از پیش ساخته شده استفاده کنید یا به تنهایی با استفاده از مجموعه داده خود یکی ایجاد کنید. در اینجا، ما از استخراج کننده فاکتور از پیش ساخته شده فاکتور استفاده خواهیم کرد.
مرحله 3: PDF تصاویر را آپلود کنید تا استخراج داده ها انجام شود و گزینه استخراج خودکار را انتخاب کنید.
4 گام: یک ادغام MySQL یکپارچه جدید برای صادرات داده های استخراج شده به پایگاه داده ایجاد کنید. از طرف دیگر، میتوانید گزینههای مختلفی را بر اساس پایگاههای داده مورد نظر خود انتخاب کنید.
اتصال داده را برقرار کنید و روی افزودن ادغام کلیک کنید. با این کار، داده ها استخراج می شوند و هر زمان که فایل ها آپلود می شوند، به طور خودکار در پایگاه داده آپلود می شوند. اگر ادغامهای لازم را پیدا نکردید، همیشه میتوانید از Nanonets API استفاده کنید و اسکریپتهای ساده را برای انجام اتوماسیون بنویسید.
- AI
- هوش مصنوعی و یادگیری ماشین
- آی هنر
- مولد هنر ai
- ربات ai
- هوش مصنوعی
- گواهی هوش مصنوعی
- هوش مصنوعی در بانکداری
- ربات هوش مصنوعی
- ربات های هوش مصنوعی
- نرم افزار هوش مصنوعی
- بلاکچین
- کنفرانس بلاک چین ai
- coingenius
- هوش مصنوعی محاوره ای
- کنفرانس کریپتو ai
- دل-ه
- یادگیری عمیق
- گوگل ai
- فراگیری ماشین
- افلاطون
- افلاطون آی
- هوش داده افلاطون
- بازی افلاطون
- PlatoData
- بازی پلاتو
- مقیاس Ai
- نحو
- زفیرنت