Перетворення PDF-даних на записи бази даних PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Перетворення PDF-даних на записи бази даних

Кілька організацій і підприємств покладаються на PDF-документи для обміну такими важливими документами, як рахунки-фактури, платіжні відомості, фінансові відомості, робочі наряди, квитанції тощо. Однак PDF-файли не є популярними форматами для зберігання історичних даних, оскільки їх не можна легко експортувати та організувати в робочі процеси. Тож люди використовують алгоритми вилучення інформації, щоб оцифрувати PDF-файли та відскановані документи у структуровані формати, такі як JSON, CSV, таблиці чи Excel, які можна легко конвертувати в інші робочі процеси організації.

У деяких випадках PDF-файли містять важливу інформацію для обробки в різних ERP, CMS та інших системах, керованих базами даних. На жаль, PDF-документи не мають простої функції PDF до бази даних, і написання сценаріїв або створення робочого процесу навколо цього завдання є дещо складним. Ось тут і з’являються алгоритми OCR і Deep Learning (DL), які витягують дані з цих форматів PDF і експортують їх у базу даних. У цій публікації в блозі ми розглянемо різні способи досягнення цього за допомогою технологій DL, а також деяких популярних API на ринку.

Що таке перетворення PDF у базу даних?

Перетворення PDF у базу даних — це завдання експорту даних із PDF-файлів у базу даних, наприклад Postgres, Mongo, MySQL тощо.

Припустімо, ми створили веб-додаток або систему ERP, яка зберігає та підтримує інформацію про рахунки-фактури з різних джерел. Додавання історичних рахунків-фактур вручну до бази даних є складним завданням і дуже схильне до помилок. З іншого боку, використання простого оптичного розпізнавання символів може не точно витягувати таблиці з рахунків-фактур.

Ось тут стане в нагоді передове перетворення PDF-файлів у базу даних на основі штучного інтелекту!

Чи можна автоматизувати цей керований ШІ процес перетворення PDF-файлу в базу даних? - Так.

У наведених нижче розділах ми використовуємо комп’ютерний зір і глибоке навчання для виявлення областей таблиці зі сканованих документів. Ці таблиці далі зберігаються в певному форматі даних, наприклад CSV або excel, і надсилаються безпосередньо до баз даних.

Перш ніж обговорювати це, давайте розберемося з деякими випадками використання, де виявлення PDF у базу даних може бути корисним.

Різні варіанти використання PDF для баз даних

Бази даних — найкращий спосіб зберігати інформацію як у хмарі, так і в локальному сховищі. Вони дозволяють нам виконувати різні операції та маніпуляції за допомогою простих запитів. Ось кілька варіантів використання, які можна значно оптимізувати за допомогою автоматизованого процесу перетворення PDF-файлу в базу даних:

  1. Керування рахунками-фактурами в Інтернеті: Компанії та організації щодня мають справу з кількома рахунками-фактурами; і їм важко обробляти кожен рахунок-фактуру вручну. Крім того, іноді вони виставляють і отримують рахунки-фактури в нецифровому форматі, що ускладнює їх відстеження. Тому вони покладаються на веб-програми, які можуть зберігати всі їхні рахунки-фактури в одному місці. Конвертер PDF у базу даних може автоматизувати вилучення даних із рахунків-фактур у веб-програму. Щоб ефективно автоматизувати ці завдання, ми могли б запускати завдання cron та інтегрувати їх зі сторонніми службами, такими як n8n і Zapier – коли новий рахунок-фактура сканується та завантажується, він може запускати алгоритм і автоматично надсилати його в таблиці.
  2. Менеджери запасів EComt: Велика частина керування запасами електронної комісії все ще відбувається через ручне введення продуктів із PDF-файлів і сканованих копій. Однак їм потрібно завантажити всі свої дані в програмне забезпечення для керування рахунками, щоб відстежувати всі свої продукти та продажі. Отже, використання алгоритму перетворення таблиці в базу даних може допомогти автоматизувати їх введення вручну та заощадити ресурси. Цей процес зазвичай передбачає сканування списку інвентаризації зі сканованих документів і експортування їх у певні таблиці бази даних на основі різних бізнес-правил і умов.
  3. Отримання даних з опитувань: Щоб зібрати відгуки та іншу цінну інформацію, ми зазвичай проводимо опитування. Вони забезпечують важливе джерело даних і розуміння майже для всіх, хто задіяний в інформаційній економіці, від компаній і ЗМІ до уряду та науковців. Коли вони зібрані в Інтернеті, можна легко витягти статус даних таблиці на основі відповіді користувача та завантажити його в базу даних. Однак у більшості випадків відповіді на опитування є на папері. У таких випадках дуже важко вручну збирати інформацію та зберігати її в цифровому форматі. Таким чином, покладаючись на алгоритми таблиці в базі даних, можна заощадити час, а також зменшити додаткові витрати.

Як отримати інформацію з PDF-файлів до реляційних і нереляційних баз даних?

PDF-файл розглядається як два різних типи: електронний і неелектронний.

  1. Електронні PDF-файли: цей сканований PDF-документ може містити прихований текст за зображенням; їх також називають PDF-файлами, створеними в електронному вигляді.
  2. Неелектронні PDF-файли: у цьому типі ми бачимо більше вмісту, жорстко закодованого у вигляді зображень. Це стосується випадків, коли у вас є друкований документ, відсканований у файл PDF.

Ми могли б покластися на прості мови програмування та фреймворки, такі як Python і Java для першого типу (згенерованого в електронному вигляді). Для неелектронно створених PDF-файлів нам потрібно буде використовувати методи комп’ютерного бачення з OCR і глибоким навчанням. Однак ці алгоритми можуть не бути однаковими для всіх алгоритмів вилучення таблиці, і їх потрібно буде змінювати залежно від типу даних, щоб досягти вищої точності. NLP (обробка природної мови) також використовується для розуміння даних у таблицях і їх вилучення в деяких випадках.

З іншого боку, існує два типи баз даних (реляційні та нереляційні); кожна з цих баз даних має різні набори правил, засновані на їх архітектурі. Реляційна база даних є структурованою, тобто дані організовані в таблицях. Кілька прикладів включають MySQL, Postgres тощо.

Навпаки, нереляційна база даних є документоорієнтованою, тобто вся інформація зберігається в порядку списку. В одному документі конструктора ви матимете всі свої дані, наприклад, MongoDB.

PDF до бази даних, коли документи створюються в електронному вигляді

Як обговорювалося, для електронних PDF-файлів процес вилучення таблиць є простим. Ідея полягає в тому, щоб витягнути таблиці, а потім за допомогою простих сценаріїв перетворити їх або додати в таблиці. Для вилучення таблиці з PDF-файлів є два способи.

Техніка №1 Потік: Алгоритм аналізує таблиці на основі пробілів між клітинками, щоб імітувати структуру таблиці, визначаючи, де немає тексту. Він створений на основі функції PDFMiner, яка полягає у групуванні символів на сторінці в слова та речення за допомогою полів. У цій техніці спочатку рядки визначаються шляхом грубих припущень на основі положення деякого тексту по осі y (тобто висоти). Весь текст в одному рядку вважається частиною одного рядка. Далі читач групується та об’єднується в іншу групу для визначення стовпців у таблиці. Нарешті, таблиця встановлюється разом на основі рядків і стовпців, виявлених на попередніх етапах.

Техніка №2 Решітка: На відміну від потоку, Lattice більш детермінований. Це означає, що він не покладається на припущення; він спочатку аналізує таблиці, які мають визначені лінії між комірками. Потім він може автоматично аналізувати кілька таблиць, присутніх на сторінці. Ця техніка по суті працює, дивлячись на форму багатокутників і ідентифікуючи текст у клітинках таблиці. Це було б просто, якби PDF-файл мав функцію, яка може ідентифікувати багатокутники. Якби він був, він, ймовірно, мав би метод читати те, що всередині нього. Однак це не так. Отже, комп’ютерний зір широко використовується для ідентифікації цих форм і вилучення вмісту таблиці.

Витягнуті таблиці переважно зберігаються у форматі фрейму даних. Це один із нативних типів даних, який пропонує одна з найпопулярніших бібліотек Python pandas. Зберігання табличних даних у кадрі даних має кілька переваг. Ними можна легко керувати та експортувати їх у різні формати, такі як JSON, CSV або таблиці. Однак перед тим, як перемістити ці кадри даних у таблиці, ми повинні спочатку підключитися до бази даних DB-Client, а потім перенести таблицю. Використовуючи такі мови, як Python, ми можемо знайти кілька бібліотек, які можуть підключатися до цих джерел даних і експортувати дані.

PDF до бази даних, коли документи створюються не в електронному вигляді

Обговорені вище прийоми можуть не працювати для PDF-файлів, створених не в електронному вигляді, оскільки дані тут скануються вручну з іншого джерела. Ось чому ми будемо використовувати методи OCR і Deep Learning, щоб витягувати дані зі сканованих документів і експортувати їх у бази даних.

Коротше кажучи, оптичне розпізнавання символів, OCR – це спеціальний інструмент, який перетворює друковані літери зі сканованих документів на редагований текст. Щоб ідентифікувати PDF-таблиці з документів, спочатку нам потрібно визначити положення таблиці, а потім застосувати оптичне розпізнавання символів, щоб отримати дані з клітинок таблиці. Нижче наведено кроки, як це досягти.

  1. Спочатку ми виявляємо відрізки ліній, наносячи горизонтальні та вертикальні контури.
  2. Перетини ліній між лініями визначаються за інтенсивністю пікселів усіх ліній. Якщо лінійний піксель має більшу інтенсивність, ніж решта пікселя, він є частиною двох ліній і, отже, є перетином.
  3. Краї таблиці визначаються за інтенсивністю пікселів пересічних ліній. Тут беруться всі пікселі лінії, а самі зовнішні лінії представляють межі таблиці.
  4. Аналіз зображення транслюється в координати PDF, де визначаються комірки. Текст призначається комірці на основі її координат x і y.
  5. OCR застосовується до координат, щоб витягти текст
  6. Витягнутий текст експортується у фрейм даних на основі положення таблиці.

Ось як ми можемо видобувати таблиці за допомогою CV. Однак тут є кілька недоліків. Ці алгоритми не працюють для великих таблиць і таблиць з різними стилями шаблонів. Ось де глибоке навчання приходить; вони використовують особливий вид нейронної мережі, щоб навчатися з даних і ідентифікувати схожі шаблони на основі навчання. За останнє десятиліття вони досягли найсучаснішої продуктивності, особливо для таких завдань, як вилучення інформації. Тепер давайте подивимося, як глибокі нейронні мережі можуть навчатися з даних і витягувати таблиці з будь-якого документа.

Навчання глибоких нейронних мереж передбачає певний робочий процес; ці робочі процеси часто змінюються залежно від типу даних, з якими ми працюємо, і продуктивності їх моделі. Перший етап робочого процесу передбачає збір даних і їх обробку на основі нашої моделі. У нашому випадку вилучення таблиць із PDF-документів набір даних в ідеалі має містити неструктуровані документи. Ці документи перетворюються на зображення, завантажуються як тензори та готуються як клас завантажувача даних для навчання. Далі ми зазвичай визначаємо всі гіперпараметри, необхідні для навчання. Зазвичай вони включають налаштування розміру партії, функцію втрат, оптимізатор для моделі. Нарешті, архітектура нейронної мережі визначається або будується на основі попередньо визначеної моделі. Цю модель буде навчено на основі даних і налаштовано на основі показників ефективності.

Нижче наведено скріншот різних етапів навчання моделі глибокого навчання:

Типовий робочий процес ML (Source)

Витяг даних із pdf та експорт їх до бази даних SQL за допомогою Python

Наразі ми дізналися, що таке перетворення pdf у базу даних, і обговорили деякі випадки використання, де це може бути корисним. У цьому розділі буде розглянуто практичне вирішення цієї проблеми за допомогою комп’ютерного зору та виявлення таблиць у відсканованих 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, оскільки документ, використаний у прикладі, має лише одну таблицю.

Тепер ми завантажимо цей список у фрейм даних за допомогою pandas, і ви можете перевірити тип таблиці за допомогою методу type; це поверне рідний кадр даних pandas.

Крок 3: Перенесення Dataframe на Postres

Перш ніж відправити нашу таблицю в бази даних, спочатку ми повинні встановити з’єднання з нею з нашої програми, і ми можемо зробити це за допомогою sqlalchemy клієнт на python. Так само різні мови програмування пропонують клієнтам бази даних такого типу взаємодіяти з базами даних безпосередньо з наших програм.

У цій програмі ми будемо використовувати 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: Advanced OCR для перетворення таблиць PDF у базу даних

У цьому розділі ми розглянемо, як Nanonets може допомогти нам створювати таблиці в базі даних у більш настроюваний і простий спосіб.

Nanonets™ — це хмарний OCR, який може допомогти автоматизувати ручне введення даних за допомогою ШІ. У нас буде інформаційна панель, де ми зможемо створювати/навчати наші моделі OCR на наших даних і передавати їх у JSON/CSV або будь-якому бажаному форматі. Ось деякі з переваг використання Nanonets як сканера документів PDF.

Однією з основних переваг Nanonets є простота послуги. Ви можете вибрати ці послуги без будь-якого досвіду програмування та легко видобувати PDF-дані за допомогою передових технологій. Нижче наведено короткий опис того, як легко конвертувати PDF у базу даних.

Крок 1: Перейдіть на nanonets.com і зареєструйтеся/увійдіть.

Перетворення PDF-даних на записи бази даних PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Крок 2: Після реєстрації перейдіть до розділу «Виберіть, щоб почати», де ви можете скористатися попередньо створеними екстракторами або створити їх самостійно, використовуючи свій набір даних. Тут ми будемо використовувати попередньо створений екстрактор рахунків-фактур.

Перетворення PDF-даних на записи бази даних PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Крок 3: Завантажте PDF із зображеннями, щоб виконати вилучення даних і вибрати параметр автоматичного вилучення.

Перетворення PDF-даних на записи бази даних PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

крок 4: Створіть нову інтеграцію MySQL для експорту вилучених даних у базу даних. Крім того, ви можете вибрати різні варіанти на основі баз даних на ваш вибір.

Перетворення PDF-даних на записи бази даних PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Встановіть з’єднання для передачі даних і натисніть Додати інтеграцію. При цьому дані будуть видобовані та автоматично завантажені в базу даних кожного разу, коли завантажуються файли. Якщо ви не знайдете потрібну інтеграцію, ви завжди можете скористатися Nanonets API і написати прості сценарії, щоб виконати автоматизацію.

Часова мітка:

Більше від ШІ та машинне навчання