En esta guía, te mostraré cómo extraer datos estructurados de archivos PDF utilizando modelos de visión y lenguaje (VLM) como Gemini Flash o GPT-4o.
Gemini, la última serie de modelos de visión y lenguaje de Google, ha demostrado un rendimiento de vanguardia en la comprensión de textos e imágenes. Esta capacidad multimodal mejorada y su larga ventana de contexto lo hacen particularmente útil para procesar datos PDF visualmente complejos con los que tienen problemas los modelos de extracción tradicionales, como figuras, gráficos, tablas y diagramas.
Al hacerlo, puede crear fácilmente su propia herramienta de extracción de datos para archivos visuales y extracción web. Así es como:
La larga ventana de contexto y la capacidad multimodal de Gemini lo hacen particularmente útil para procesar datos PDF visualmente complejos donde los modelos de extracción tradicionales tienen dificultades.
Antes de sumergirnos en la extracción, configuremos nuestro entorno de desarrollo. Esta guía asume que tiene Python instalado en su sistema. De lo contrario, descárguelo e instálelo desde https://www.python.org/downloads/
⚠️ Tenga en cuenta que, si no desea utilizar Python, puede utilizar la plataforma en la nube en thepi.pe para cargar sus archivos y descargar el resultado como CSV sin escribir ningún código.
Abre tu terminal o símbolo del sistema y ejecuta los siguientes comandos:
pip install git https://github.com/emcf/thepipe pip install pandas
Para aquellos nuevos en Python, pip es el instalador de paquetes para Python, y estos comandos descargarán e instalarán las bibliotecas necesarias.
Para usar thepipe, necesitas una clave API.
Descargo de responsabilidad: Si bien thepi.pe es una herramienta gratuita de código abierto, la API tiene un costo de aproximadamente $0,00002 por token. Si desea evitar dichos costos, consulte las instrucciones de configuración local en GitHub. Tenga en cuenta que aún tendrá que pagarle al proveedor de LLM de su elección.
A continuación se explica cómo obtenerlo y configurarlo:
Ahora, debe configurar esto como una variable de entorno. El proceso varía dependiendo de tu sistema operativo:
Para Windows:
Para macOS y Linux:
Abra su terminal y agregue esta línea a su archivo de configuración de shell (por ejemplo, ~/.bashrc o ~/.zshrc):
export THEPIPE_API_KEY=your_api_key_here
Luego, recarga tu configuración:
source ~/.bashrc # or ~/.zshrc
La clave para una extracción exitosa es definir un esquema claro para los datos que desea extraer. Digamos que estamos extrayendo datos de un documento de lista de cantidades:
Un ejemplo de una página del documento de lista de cantidades. Los datos de cada página son independientes de las otras páginas, por lo que hacemos nuestra extracción "por página". Hay varios datos para extraer por página, por lo que configuramos las extracciones múltiples en Verdadero
Al observar los nombres de las columnas, es posible que deseemos extraer un esquema como este:
schema = { "item": "string", "unit": "string", "quantity": "int", }
Puedes modificar el esquema a tu gusto en la Plataforma pi.pe. Al hacer clic en "Ver esquema", obtendrá un esquema que puede copiar y pegar para usarlo con la API de Python
Ahora, usemos extract_from_file para extraer datos de un PDF:
from thepipe.extract import extract_from_file results = extract_from_file( file_path = "bill_of_quantity.pdf", schema = schema, ai_model = "google/gemini-flash-1.5b", chunking_method = "chunk_by_page" )
Aquí tenemos chunking_method="chunk_by_page" porque queremos enviar cada página al modelo de IA individualmente (el PDF es demasiado grande para alimentarlo todo a la vez). También configuramos multiple_extractions=True porque cada una de las páginas PDF contiene varias filas de datos. Así es como se ve una página del PDF:
Los resultados de la extracción del PDF de la Lista de Cantidades vistos en la Plataforma pi.pe
Los resultados de la extracción se devuelven como una lista de diccionarios. Podemos procesar estos resultados para crear un DataFrame de pandas:
import pandas as pd df = pd.DataFrame(results) # Display the first few rows of the DataFrame print(df.head())
Esto crea un DataFrame con toda la información extraída, incluido el contenido textual y descripciones de elementos visuales como figuras y tablas.
Ahora que tenemos nuestros datos en un DataFrame, podemos exportarlos fácilmente a varios formatos. Aquí hay algunas opciones:
df.to_excel("extracted_research_data.xlsx", index=False, sheet_name="Research Data")
Esto crea un archivo de Excel llamado "extracted_research_data.xlsx" con una hoja llamada "Datos de investigación". El parámetro index=False evita que el índice del DataFrame se incluya como una columna independiente.
Si prefieres un formato más simple, puedes exportar a CSV:
df.to_csv("extracted_research_data.csv", index=False)
Esto crea un archivo CSV que se puede abrir en Excel o en cualquier editor de texto.
La clave para una extracción exitosa radica en definir un esquema claro y utilizar las capacidades multimodales del modelo de IA. A medida que se sienta más cómodo con estas técnicas, podrá explorar funciones más avanzadas, como métodos de fragmentación personalizados, indicaciones de extracción personalizadas e integración del proceso de extracción en canales de datos más grandes.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3