Преобразование данных PDF в записи базы данных PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Преобразование данных 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-систему, которая хранит и поддерживает информацию о счетах из разных источников. Добавление исторических счетов-фактур вручную в базу данных — сложная задача, в которой высока вероятность ошибок. С другой стороны, использование простого OCR может привести к неточному извлечению таблиц из счетов-фактур.

Именно здесь вам пригодится расширенное преобразование 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-файлов, созданных не электронным способом, нам потребуется использовать методы компьютерного зрения с оптическим распознаванием текста и глубоким обучением. Однако эти алгоритмы могут не быть одинаковыми для всех алгоритмов извлечения таблиц, и для достижения более высокой точности их необходимо будет изменять в зависимости от типа данных. НЛП (обработка естественного языка) также используется для понимания данных внутри таблиц и их извлечения в некоторых случаях.

С другой стороны, существует два типа баз данных (реляционные и нереляционные); каждая из этих баз данных имеет разные наборы правил, основанные на их архитектуре. Реляционная база данных структурирована, то есть данные организованы в таблицах. Несколько примеров включают MySQL, Postgres и т. д.

Напротив, нереляционная база данных ориентирована на документы, что означает, что вся информация хранится в порядке списка. В одном документе-конструкторе вы будете перечислять все свои данные — например, MongoDB.

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

Как уже говорилось, для PDF-файлов, созданных в электронном виде, процесс извлечения таблиц прост. Идея состоит в том, чтобы извлечь таблицы, а затем использовать простые сценарии для их преобразования или добавления в таблицы. Для извлечения таблиц из PDF-файлов в основном существует два метода.

Техника №1. Поток: Алгоритм анализирует таблицы на основе пробелов между ячейками, чтобы имитировать структуру таблицы, определяя, где текст отсутствует. Он основан на функции PDFMiner по группировке символов на странице в слова и предложения с использованием полей. В этом методе сначала строки обнаруживаются путем приблизительных предположений на основе положения некоторого текста по оси Y (т. е. высоты). Весь текст в одной строке считается частью одной строки. Затем читатель группируется и объединяется в другую группу для идентификации столбцов в таблице. Наконец, таблица формируется на основе строк и столбцов, обнаруженных на предыдущих шагах.

Техника №2: Решетка: В отличие от потока, Lattice более детерминирован. Это означает, что это не зависит от догадок; сначала он анализирует таблицы, в которых между ячейками определены строки. Затем он может автоматически анализировать несколько таблиц, представленных на странице. По сути, этот метод работает, изучая форму многоугольников и определяя текст внутри ячеек таблицы. Это было бы просто, если бы в PDF-файле была функция, позволяющая идентифицировать многоугольники. Если бы это было так, у него, вероятно, был бы способ прочитать то, что находится внутри него. Однако это не так. Следовательно, компьютерное зрение широко используется для идентификации этих фигур и извлечения содержимого таблицы.

Извлеченные таблицы в основном сохраняются в формате фрейма данных. Это один из собственных типов данных, предлагаемых одной из самых популярных библиотек Python pandas. Есть несколько преимуществ хранения табличных данных во фрейме данных. Их можно легко обрабатывать, манипулировать ими и экспортировать в различные форматы, такие как JSON, CSV или таблицы. Однако прежде чем помещать эти фреймы данных в таблицы, нам следует сначала подключиться к базе данных DB-Client, а затем перенести таблицу. Используя такие языки, как Python, мы можем найти несколько библиотек, которые могут подключаться к этим источникам данных и экспортировать данные.

PDF в базу данных, если документы созданы не в электронном виде.

Обсуждаемые выше методы могут не работать для PDF-файлов, созданных не в электронном виде, поскольку данные здесь сканируются вручную из другого источника. Вот почему мы будем использовать методы оптического распознавания символов и глубокого обучения для извлечения данных из отсканированных документов и экспорта их в базы данных.

Короче говоря, оптическое распознавание символов, OCR, — это специальный инструмент, который преобразует печатные буквы из отсканированных документов в редактируемый текст. Чтобы идентифицировать таблицы PDF из документов, сначала нам нужно определить положение таблицы, а затем применить OCR для извлечения данных из ячеек таблицы. Ниже приведены шаги, как этого достичь:

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

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

Обучение глубоких нейронных сетей включает в себя определенный рабочий процесс; эти рабочие процессы часто меняются в зависимости от типа данных, с которыми мы работаем, и производительности их модели. Первый этап рабочего процесса включает сбор данных и их обработку на основе нашей модели. В нашем случае извлечения таблиц из PDF-документов набор данных в идеале должен содержать неструктурированные документы. Эти документы преобразуются в изображения, загружаются как тензоры и подготавливаются как класс загрузчика данных для обучения. Далее мы обычно определяем все гиперпараметры, необходимые для обучения. Обычно они включают настройку размера партии, функции потерь и оптимизатора модели. Наконец, архитектура нейронной сети определяется или строится на основе заранее определенной модели. Эта модель будет обучена на основе данных и настроена на основе показателей производительности.

Ниже приведен снимок экрана с различными этапами обучения модели глубокого обучения:

Типичный рабочий процесс ML (Источник)

Извлечение данных из 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 клиент на питоне. Аналогичным образом, различные языки программирования предлагают клиентам баз данных такого типа возможность взаимодействовать с базами данных непосредственно из наших программ.

В этой программе мы будем использовать 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: модель глубокого обучения для сквозного обнаружения таблиц и извлечения табличных данных из изображений отсканированных документов

Enter Nanonets: расширенное распознавание текста для преобразования таблиц PDF в базу данных

В этом разделе будет рассмотрено, как Nanonets может помочь нам создавать таблицы в базе данных более настраиваемым и простым способом.

Nanonets™ — это облачное средство оптического распознавания символов, которое может помочь автоматизировать ввод данных вручную с помощью искусственного интеллекта. У нас будет панель мониторинга, на которой мы сможем создавать/тренировать наши модели OCR на наших данных и передавать их в JSON/CSV или любом желаемом формате. Вот некоторые преимущества использования Nanonets в качестве сканера PDF-документов.

Одной из особенностей Nanonets является простота услуги. Можно выбрать эти услуги без какого-либо опыта программирования и легко извлекать данные PDF с помощью передовых технологий. Ниже приводится краткое описание того, как легко преобразовать PDF в базу данных.

Шаг 1: Зайдите на nanonets.com и зарегистрируйтесь / авторизуйтесь.

Преобразование данных PDF в записи базы данных PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Шаг 2: После регистрации перейдите в область «Выберите, чтобы начать», где вы можете использовать готовые экстракторы или создать их самостоятельно, используя свой набор данных. Здесь мы будем использовать встроенный экстрактор счетов Invoice.

Преобразование данных PDF в записи базы данных PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Шаг 3: Загрузите изображения в формате PDF, чтобы выполнить извлечение данных, и выберите опцию автоматического извлечения.

Преобразование данных PDF в записи базы данных PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

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

Преобразование данных PDF в записи базы данных PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Установите соединение для передачи данных и нажмите «Добавить интеграцию». При этом данные будут извлекаться и автоматически загружаться в базу данных при каждой загрузке файлов. Если вы не найдете необходимых интеграций, вы всегда можете использовать API Nanonets и написать простые сценарии для автоматизации.

Отметка времени:

Больше от ИИ и машинное обучение