Convierta datos PDF en entradas de bases de datos PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Convertir datos de PDF en entradas de base de datos

Varias organizaciones y empresas confían en los documentos PDF para compartir documentos importantes, como facturas, nóminas, finanzas, órdenes de trabajo, recibos y más. Sin embargo, los archivos PDF no son los formatos de referencia para almacenar datos históricos, ya que no se pueden exportar y organizar fácilmente en flujos de trabajo. Entonces, las personas usan algoritmos de extracción de información para digitalizar archivos PDF y documentos escaneados en formatos estructurados como JSON, CSV, Tables o Excel que se pueden convertir fácilmente en otros flujos de trabajo organizacionales.

En algunos casos, los archivos PDF contienen información esencial para ser procesada en diferentes ERP, CMS y otros sistemas basados ​​en bases de datos. Desafortunadamente, los documentos PDF no tienen una función fácil de PDF a base de datos, y escribir scripts o crear un flujo de trabajo en torno a esta tarea es un poco complicado. Aquí es donde los algoritmos OCR y Deep Learning (DL) entran en escena para extraer datos de estos formatos PDF y exportarlos a una base de datos. En esta publicación de blog, veremos diferentes formas de cómo puede lograrlo mediante el uso de tecnologías DL, así como algunas API populares en el mercado.

¿Qué es la conversión de PDF a base de datos?

La conversión de PDF a base de datos es la tarea de exportar datos de archivos PDF a una base de datos como Postgres, Mongo, MySQL, etc.

Supongamos que construyéramos una aplicación web o un sistema ERP que almacena y mantiene información de facturas de diferentes fuentes. Agregar facturas históricas manualmente a una base de datos es una tarea cuesta arriba y es muy propensa a errores. Por otro lado, es posible que el uso de un OCR simple no extraiga las tablas de las facturas con precisión.

¡Aquí es donde resulta útil la conversión avanzada de PDF a base de datos impulsada por IA!

¿Se puede automatizar este proceso de conversión de PDF a base de datos impulsado por IA? - Sí.

En las siguientes secciones, usamos la visión artificial y el aprendizaje profundo para detectar regiones de tablas a partir de documentos escaneados. Estas tablas se almacenan además en un formato de datos particular, como CSV o Excel, y se enviarán directamente a las bases de datos.

Antes de discutir esto, comprendamos algunos casos de uso en los que la detección de PDF a base de datos puede ser útil.

Diferentes casos de uso de PDF a bases de datos

Las bases de datos son las mejores formas de almacenar información tanto en la nube como en el almacenamiento local. Nos permiten realizar distintas operaciones y manipulaciones mediante consultas sencillas. Aquí hay algunos casos de uso que podrían optimizarse en gran medida con un flujo de trabajo de conversión de PDF a base de datos automatizado:

  1. Gestión de Facturas en la Web: Las empresas y organizaciones se ocupan de varias facturas todos los días; y es difícil para ellos procesar cada factura manualmente. Además, a veces, generan y reciben facturas en un formato no digital, lo que las hace más difíciles de rastrear. Por lo tanto, confían en aplicaciones basadas en la web que pueden almacenar todas sus facturas en un solo lugar. Un convertidor de PDF a base de datos podría automatizar la extracción de datos de las facturas a la aplicación web. Para automatizar estas tareas de manera eficiente, podríamos ejecutar trabajos cron e integrarlos con servicios de terceros como n8n y Zapier: cuando se escanea y carga una nueva factura, puede ejecutar el algoritmo y enviarlo automáticamente a las tablas.
  2. Gestión de inventario EComt: Gran parte de la gestión de inventario de e-com todavía se ejecuta a través de la entrada manual de productos desde archivos PDF y copias escaneadas. Sin embargo, necesitan cargar todos sus datos en el software de gestión de facturación para realizar un seguimiento de todos sus productos y ventas. Por lo tanto, usar el algoritmo de conversión de tabla a base de datos puede ayudar a automatizar su entrada manual y ahorrar recursos. Este proceso generalmente implica escanear la lista de inventario de documentos escaneados y exportarlos a tablas de bases de datos específicas basadas en diferentes reglas y condiciones comerciales.
  3. Extracción de datos de encuestas: para recopilar comentarios y otra información valiosa, generalmente realizamos una encuesta. Proporcionan una fuente fundamental de datos y conocimientos para casi todos los involucrados en la economía de la información, desde empresas y medios hasta gobiernos y académicos. Cuando estos se recopilan en línea, es fácil extraer el estado de los datos de la tabla en función de la respuesta del usuario y cargarlo en una base de datos. Sin embargo, en la mayoría de los casos, las respuestas de la encuesta están en papel. En tales casos, es muy difícil recopilar información manualmente y almacenarla en formato digital. Por lo tanto, confiar en algoritmos de tabla a base de datos puede ahorrar tiempo y también reducir costos adicionales.

¿Cómo extraer información de archivos PDF a bases de datos relacionales y no relacionales?

Un archivo PDF se considera de dos tipos diferentes, generado electrónicamente y no generado electrónicamente.

  1. PDF electrónicos: este documento PDF escaneado puede tener texto oculto detrás de la imagen; estos también se conocen como archivos PDF generados electrónicamente.
  2. PDF no electrónicos: en este tipo, vemos más contenido codificado como imágenes. Este es el caso cuando tiene un documento impreso escaneado en un archivo PDF.

Podríamos confiar en lenguajes y marcos de programación simples como Python y Java para el primer tipo (generado electrónicamente). Para los archivos PDF no generados electrónicamente, necesitaremos utilizar técnicas de visión artificial con OCR y aprendizaje profundo. Sin embargo, es posible que estos algoritmos no sean los mismos para todos los algoritmos de extracción de tablas y deberán cambiar según el tipo de datos para lograr una mayor precisión. NLP (procesamiento del lenguaje natural) también se utiliza para comprender los datos dentro de las tablas y extraerlos en algunos casos.

Por otro lado, existen dos tipos de bases de datos (relacionales y no relacionales); cada una de estas bases de datos tiene diferentes conjuntos de reglas basadas en su arquitectura. Una base de datos relacional está estructurada, lo que significa que los datos están organizados en tablas. Algunos ejemplos incluyen MySQL, Postgres, etc.

Por el contrario, la base de datos no relacional está orientada a documentos, lo que significa que toda la información se almacena en más de un orden de lista de lavandería. Dentro de un solo documento de constructor, tendrá todos sus datos enumerados, por ejemplo, MongoDB.

PDF a una base de datos cuando los documentos se generan electrónicamente

Como se mencionó, para los archivos PDF generados electrónicamente, el proceso de extracción de tablas es sencillo. La idea es extraer tablas y luego usar scripts simples para convertirlas o agregarlas a tablas. Para la extracción de tablas de archivos PDF, existen principalmente dos técnicas.

Técnica #1 Corriente: El algoritmo analiza las tablas en función de los espacios en blanco entre las celdas para simular una estructura de tabla, identificando dónde no está presente el texto. Se basa en la funcionalidad de PDFMiner de agrupar caracteres en una página en palabras y oraciones usando márgenes. En esta técnica, primero, las filas se detectan haciendo conjeturas aproximadas basadas en la posición del eje y de algún texto (es decir, la altura). Todo el texto en la misma línea se considera parte de la misma fila. A continuación, el lector se agrupa y se junta como un grupo diferente para identificar las columnas de la tabla. Por último, la tabla se configura según las filas y columnas detectadas en pasos anteriores.

Técnica #2 Celosía: En contraste con la corriente, Lattice es más determinista. Lo que significa que no se basa en conjeturas; primero analiza tablas que tienen líneas definidas entre celdas. A continuación, puede analizar automáticamente varias tablas presentes en una página. Esta técnica esencialmente funciona observando la forma de los polígonos e identificando el texto dentro de las celdas de la tabla. Esto sería simple si un PDF tiene una característica que puede identificar polígonos. Si lo hubiera hecho, plausiblemente tendría un método para leer lo que hay dentro. Sin embargo, no lo hace. Por lo tanto, la visión artificial se utiliza ampliamente para identificar estas formas y extraer el contenido de la tabla.

Las tablas extraídas se guardan principalmente en un formato de marco de datos. Es uno de los tipos de datos nativos que ofrece uno de los pandas de biblioteca de Python más populares. Hay varias ventajas de almacenar datos de tabla en un marco de datos. Se pueden manejar, manipular y exportar fácilmente a diferentes formatos, como JSON, CSV o tablas. Sin embargo, antes de enviar estos marcos de datos a las tablas, primero debemos conectarnos a la base de datos DB-Client y luego migrar la tabla. Usando lenguajes como Python, podemos encontrar varias bibliotecas que pueden conectarse a estas fuentes de datos y exportar datos.

PDF a la base de datos cuando los documentos no se generan electrónicamente

Es posible que las técnicas mencionadas anteriormente no funcionen para archivos PDF no generados electrónicamente, ya que los datos aquí se escanean manualmente a través de una fuente diferente. Es por eso que utilizaremos técnicas de OCR y Deep Learning para extraer datos de documentos escaneados y exportarlos a bases de datos.

En resumen, el reconocimiento óptico de caracteres, OCR, es una herramienta especial que convierte letras impresas de documentos escaneados en texto editable. Para identificar tablas PDF a partir de documentos, primero debemos identificar la posición de la tabla y luego aplicar OCR para extraer datos de las celdas de la tabla. Los siguientes son los pasos sobre cómo se logra:

  1. Primero, detectamos los segmentos de línea aplicando contornos horizontales y verticales.
  2. Las intersecciones de línea entre líneas se detectan observando la intensidad de los píxeles de todas las líneas. Si un píxel de línea tiene más intensidad que el resto del píxel, es parte de dos líneas y, por lo tanto, una intersección.
  3. Los bordes de la tabla se determinan observando la intensidad de los píxeles de las líneas intersecadas. Aquí, se toman todos los píxeles de una línea y las líneas más externas representan los límites de la tabla.
  4. El análisis de la imagen se traduce a las coordenadas PDF, donde se determinan las celdas. El texto se asigna a una celda en función de sus coordenadas x e y.
  5. Se aplica OCR a las coordenadas para extraer el texto.
  6. El texto extraído se exporta a un marco de datos basado en la posición de la tabla.

Así es como podemos extraer tablas usando CV. Sin embargo, hay algunos inconvenientes aquí. Estos algoritmos fallan para tablas grandes y tablas con diferentes estilos de plantilla. Aquí es donde entra en juego el aprendizaje profundo; utilizan un tipo especial de marco de red neuronal para aprender de los datos e identificar patrones similares basados ​​en los aprendizajes. Durante la última década, han logrado un rendimiento de última generación, especialmente para tareas como la extracción de información. Ahora, veamos cómo las redes neuronales profundas pueden aprender de los datos y extraer tablas de cualquier documento.

El entrenamiento de redes neuronales profundas implica un flujo de trabajo específico; estos flujos de trabajo a menudo se modifican según el tipo de datos con los que estamos trabajando y el rendimiento de su modelo. La primera fase del flujo de trabajo consiste en recopilar los datos y procesarlos según nuestro modelo. En nuestro caso de extraer las tablas de los documentos PDF, el conjunto de datos idealmente debería contener documentos no estructurados. Estos documentos se convierten en imágenes, se cargan como tensores y se preparan como una clase de cargador de datos para el entrenamiento. A continuación, normalmente definimos todos los hiperparámetros que se requieren para el entrenamiento. Por lo general, incluyen la configuración del tamaño del lote, la función de pérdida y el optimizador para el modelo. Por último, una arquitectura de red neuronal se define o construye sobre un modelo predefinido. Este modelo se entrenará sobre los datos y se ajustará en función de las métricas de rendimiento.

A continuación se muestra una captura de pantalla de los diferentes pasos que intervienen en el entrenamiento de un modelo de aprendizaje profundo:

Flujo de trabajo de AA típico (Fuente)

Extraer datos de pdf y exportarlos a la base de datos SQL usando Python

Hasta ahora, hemos aprendido qué es la conversión de pdf a base de datos y hemos discutido algunos casos de uso en los que puede ser útil. Esta sección abordará de manera práctica este problema utilizando Computer Vision y detectará tablas en archivos PDF escaneados y los exportará a bases de datos. Para seguir, asegúrese de instalar Python y OpenCV en su máquina local. Alternativamente, puede usar un cuaderno en línea de Google Collab.

Paso 1: Instala Tabula y Pandas

En este ejemplo, usaremos Tabula y Pandas para extraer y enviar tablas a las bases de datos. Instalémoslos a través de pip e importémoslos a nuestro programa.

import tabula
import pandas as pd

Paso 2: Lectura de tablas en Dataframe

Ahora, estaremos usando el read_pdf función de tabula para leer tablas de archivos PDF; tenga en cuenta que esta biblioteca solo funciona con documentos PDF generados electrónicamente. El siguiente es el fragmento de código:

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

df = pd.concat(table)

Aquí, como podemos ver, primero, usamos para leer el contenido del archivo PDF, configuramos el parámetro multiple_tables a False, ya que el documento utilizado en el ejemplo solo tiene una tabla.

Ahora, cargaremos esta lista en un marco de datos usando pandas, y puede verificar el tipo de tabla usando el método de tipo; esto devolverá un marco de datos de pandas nativo.

Paso 3: Migración de Dataframe a Postres

Antes de enviar nuestra tabla a las bases de datos, primero debemos establecer una conexión con ella desde nuestro programa, y ​​podemos hacerlo usando el sqlalchemy cliente en python. Del mismo modo, diferentes lenguajes de programación ofrecen este tipo de clientes de bases de datos para interactuar con las bases de datos directamente desde nuestros programas.

En este programa, usaremos el create_engine método que nos permite conectarnos con la base de datos; asegúrese de reemplazar las credenciales de la base de datos en la cadena dada para que esto funcione. A continuación, usamos el write_frame función para exportar la tabla extraída a la base de datos conectada.

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

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

Y así, pudimos exportar tablas de archivos PDF a la base de datos, esto parece bastante sencillo y fácil, ya que hemos utilizado un PDF procesado simple generado electrónicamente. Para extraer tablas de tablas no generadas electrónicamente, las siguientes son técnicas populares de aprendizaje profundo que se pueden utilizar:

  1. Papers with Code – GFTE: Extracción de tablas financieras basadas en gráficos
  2. Papers with Code – PubTables-1M: Hacia un conjunto de datos y métricas universales para entrenar y evaluar modelos de extracción de tablas
  3. TableNet: modelo de aprendizaje profundo para la detección de tablas de extremo a extremo y la extracción de datos tabulares de imágenes de documentos escaneados

Introduzca Nanonets: OCR avanzado para la conversión de tabla PDF a base de datos

Esta sección analizará cómo Nanonets puede ayudarnos a realizar tablas en la base de datos de una manera más personalizable y más fácil.

Nanonets™ es un OCR basado en la nube que puede ayudar a automatizar la entrada manual de datos mediante IA. Tendremos un tablero donde podemos construir/entrenar nuestros modelos OCR en nuestros datos y transportarlos en JSON/CSV o cualquier formato deseado. Estas son algunas de las ventajas de usar Nanonets como escáner de documentos PDF.

Uno de los aspectos más destacados de Nanonets es la simplicidad que brinda el servicio. Uno puede optar por estos servicios sin conocimientos de programación y extraer fácilmente datos PDF con tecnología de punta. El siguiente es un breve resumen de lo fácil que es convertir PDF en la base de datos.

Paso 1: Vaya a nanonets.com y regístrese / inicie sesión.

Convierta datos PDF en entradas de bases de datos PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Paso 2: Después del registro, vaya al área "Elegir para comenzar", donde puede usar los extractores preconstruidos o crear uno propio usando su conjunto de datos. Aquí, utilizaremos el extractor de facturas preconstruido Invoice.

Convierta datos PDF en entradas de bases de datos PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Paso 3: Cargue PDF de imágenes para realizar la extracción de datos y elija la opción de extracción automática.

Convierta datos PDF en entradas de bases de datos PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Paso 4: Cree una nueva integración MySQL para exportar los datos extraídos a la base de datos. Alternativamente, puede elegir varias opciones según las bases de datos de su elección.

Convierta datos PDF en entradas de bases de datos PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Establezca una conexión de datos y haga clic en agregar integración. Con esto, los datos se extraerán y se cargarán automáticamente en una base de datos cada vez que se carguen archivos. Si no encuentra las integraciones requeridas, siempre puede usar la API de Nanonets y escribir scripts simples para realizar la automatización.

Sello de tiempo:

Mas de IA y aprendizaje automático