La extracción de PDF es el proceso de extraer texto, imágenes u otros datos de un archivo PDF. En este artículo, exploramos los métodos actuales de extracción de datos PDF, sus limitaciones y cómo se puede usar GPT-4 para realizar tareas de preguntas y respuestas para la extracción de PDF. También proporcionamos una guía paso a paso para implementar G PT-4 para la extracción de PDFData.
La extracción de PDF es el proceso de extraer texto, imágenes u otros datos de un archivo PDF. En este artículo, exploramos los métodos actuales de extracción de datos PDF, sus limitaciones y cómo se puede usar GPT-4 para realizar tareas de preguntas y respuestas para la extracción de PDF. También proporcionamos una guía paso a paso para implementar GPT-4 para la extracción de datos PDF.
En este artículo, discutimos:
¿Cuáles son los métodos actuales de extracción de datos PDF y sus limitaciones?
Cómo usar GPT-4 para consultar un conjunto de archivos PDF y encontrar respuestas a cualquier pregunta. Específicamente, exploraremos el proceso de extracción de PDF y cómo se puede usar junto con GPT-4 para realizar tareas de preguntas y respuestas.
Entonces, saltemos directamente a eso.
¿Qué es la extracción de PDF?
La extracción de datos PDF es el proceso de extraer texto, imágenes u otros datos de un archivo PDF (formato de documento portátil). Estos archivos se utilizan ampliamente para compartir y almacenar documentos, pero su contenido no siempre es fácilmente accesible.
¿Por qué es importante la extracción de PDF?
La accesibilidad y la legibilidad de los archivos PDF son muy necesarias para aquellos que tienen problemas de visión o tienen problemas para leer texto pequeño o borroso, útil para situaciones legales, análisis de datos e investigación. Algunos casos en los que se requiere la extracción incluyen el uso de contenido de texto o imagen de archivos PDF en otros documentos para ahorrar tiempo y evitar errores.
¿Cuáles son los métodos actuales para la extracción de datos PDF y sus limitaciones?
Es 2023 y hay muchas técnicas y herramientas de extracción de PDF disponibles en Internet. Profundicemos en las 3 técnicas populares de extracción de datos y algunos ejemplos de las mismas:
1: Técnica OCR
OCR , o la abreviatura de Optical Character Recognition se puede usar para extraer texto de una variedad de fuentes, incluidos documentos escaneados, imágenes y archivos PDF, y se usa comúnmente para digitalizar documentos impresos, como libros, periódicos y documentos históricos.
Algunas de las herramientas populares de OCR incluyen:
Módulo PyTesseract [ ]
Módulo EasyOCR [ ]
Paddle Paddle OCR [ ]
2: Plantillas
Las técnicas basadas en plantillas tienen en cuenta el estilo del documento PDF y utilizan reglas codificadas. Estas técnicas generalmente funcionan en documentos estructurados, cuya estructura se mantiene constante y son fáciles de entender.
Algunas de las técnicas populares basadas en plantillas incluyen:
Usando el patrón de expresión regular
Ej: la fecha se puede extraer mediante la siguiente regla de expresiones regulares: [dd-mm-aaaa o aaaa-mm-dd] - [0-9]{2,4}/[0-9]{2}/[0-9]{2,4}
Reglas de codificación basadas en la posición de los textos y las dimensiones de los documentos
3: Técnicas de aprendizaje automático
Las técnicas de Machine Learning (ML) se consideran uno de los mejores métodos para la extracción de PDF porque permiten el reconocimiento de texto de alta precisión y la extracción de archivos PDF, independientemente de la estructura del archivo. Estos modelos pueden almacenar información tanto del layout como de la position of the text teniendo en cuenta también el texto vecino. Esto les ayuda a generalizar mejor y aprender la estructura del documento de manera más eficiente.
¿Qué son los LLM?
Los modelos de lenguaje grande son un subconjunto de inteligencia artificial que ha sido entrenado en grandes cantidades de datos de texto. Por ejemplo: ChatGPT, que está capacitado en todos los datos e información de Internet para producir respuestas similares a las humanas al diálogo u otras entradas de lenguaje natural.
Para producir estas respuestas en lenguaje natural, los LLM utilizan modelos de aprendizaje profundo, que utilizan redes neuronales de varias capas para procesar, analizar y hacer predicciones con datos complejos.
Algunos modelos populares de ML incluyen:
Diseño de modelos LM v1, v2 y v3 [ ]
DocBERT [ ]
Limitaciones de los modelos de ML
Un problema importante que enfrenta este tipo de modelo es que simplemente pueden extraer la información del PDF sin saber si la extracción es realmente precisa y correcta. Los textos extraídos también pueden incluir información de otras claves en otra clave. Tener un contexto inteligente ayuda al modelo a mitigar esas imprecisiones.
Para resolver este problema e integrar inteligencia en el sistema de extracción de PDF podemos aprovechar el poder de GPT-4.
¿Qué es GPT-4 y ChatGPT?
GPT-4 (Generative Pre-trained Transformer 4) es un gran modelo de lenguaje desarrollado por OpenAI que utiliza técnicas de aprendizaje profundo para generar texto en lenguaje natural similar al humano. Es uno de los modelos de lenguaje más grandes y poderosos disponibles, con 175 mil millones de parámetros. Chat-GPT, por otro lado, es una variante de GPT que ha sido entrenada específicamente para aplicaciones de inteligencia artificial conversacional. Se ha ajustado en un gran conjunto de datos conversacionales y puede generar respuestas similares a las humanas a las consultas de los usuarios. Chat GPT se puede usar para una variedad de aplicaciones, incluidos chatbots, servicio al cliente y asistentes virtuales.
Avancemos con la declaración del problema y veamos cómo GPT-4 junto con ChatGPT nos ayudan a resolver el problema de la extracción de PDF.
Planteamiento del problema
El desafío de extraer información específica de manera eficiente de una colección de archivos PDF es uno que muchas aplicaciones e industrias enfrentan regularmente. Extraer información de extractos bancarios o formularios de impuestos es difícil. La forma antigua de escanear manualmente numerosos archivos PDF lleva mucho tiempo y puede producir datos inexactos o inconsistentes. Además, los datos no estructurados que se encuentran en los archivos PDF dificultan que los sistemas automatizados extraigan la información necesaria.
Pretendemos resolver el problema de encontrar la respuesta a las preguntas del usuario desde el PDF con poca intervención manual.
Solución
Podemos usar el GPT-4 y sus incrustaciones a nuestro favor:
Genere incrustaciones de documentos, así como incrustaciones para consultas de usuarios.
Identifique el documento que se acerque más a la consulta del usuario y que pueda contener las respuestas utilizando cualquier método de similitud (por ejemplo, puntuación de coseno), y luego,
Alimente el documento y la consulta del usuario a GPT-4 para descubrir la respuesta precisa.
Implementación
Paso 1: Analizar PDF
R: Extraer texto del PDF
Puede usar cualquiera de las técnicas OCR o ML para extraer texto del documento
B: dividir el texto en fragmentos más pequeños adecuados según la estructura del documento
Usando la información de coordenadas de Bounding-Box [x0, y0, x2, y2] donde x0 e y0 son las coordenadas de la parte superior izquierda y x2 e y2 son las coordenadas de la parte inferior derecha, puede dividir todo el texto en partes más pequeñas de cierto ancho y altura
C: codifique esos fragmentos en incrustaciones [use o ]
import torch from transformers import AutoTokenizer, AutoModel # Load the pre-trained model and tokenizer tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased') model = AutoModel.from_pretrained('bert-base-uncased') # Tokenize the sentence tokens = tokenizer.encode("<pass your code chunk block here>", return_tensors='pt') # Get the embeddings with torch.no_grad(): outputs = model(tokens) embeddings = outputs[0][0] # Print the embeddings print(embeddings)
Paso 2: almacenar las incrustaciones de vectores en una base de datos de vectores
¿Qué es una base de datos vectorial y por qué es necesaria?
Las bases de datos vectoriales son bases de datos especialmente diseñadas para manejar la estructura única de las incrustaciones de vectores. Indexan vectores para facilitar la búsqueda y recuperación comparando valores y encontrando aquellos que son más similares entre sí. Los ejemplos incluyen Pinecone y Weaviate.
Este V-DB contiene vectores de cada fragmento de fragmento y documento en sí
Paso 3: busque un fragmento de fragmento que sea relevante para la consulta de entrada
A: Calcular incrustaciones para la consulta del usuario
Use la misma técnica que se mencionó anteriormente para calcular las incrustaciones
B: busque el vector de incrustación de fragmentos de la base de datos de vectores cuyas incrustaciones coincidan estrechamente con las incrustaciones de la consulta del usuario
Puede usar cualquiera de los similarity search algorithm .
Puede usar la similitud de oraciones semánticas de la biblioteca de transformadores de oraciones.
from sentence_transformers import SentenceTransformer, util #Compute cosine-similarities for each code chunk embds with user's query embeddings cosine_scores = util.cos_sim(code_chunk_embds, user_query_embds)
Paso 4: Pida a GPT-4 una respuesta basada en el fragmento proporcionado y la consulta del usuario
R: Proporcione 3 entradas.
Input1: consulta del usuario
Input2: el fragmento que se parecía mucho a la consulta
Entrada 3: algunas metainstrucciones, si las hay [Sistema: responda las preguntas basándose únicamente en la información proporcionada en el documento]
B: la salida GPT-4 es la respuesta
¿Beneficios de usar las API de GPT4 y ChatGPT?
Como ya sabemos, dado que GPT4 es un LLM tan poderoso que puede incorporar una gran cantidad de contexto con una longitud de token de 8,192 y 32,768 tokens, producir resultados muy precisos se vuelve más fácil y rápido.
La API de ChatGPT se integra a la perfección con cualquiera de los lenguajes de programación, lo que puede ayudarnos más en las tareas posteriores.
¿Qué aprendimos?
Aprendimos sobre las diferentes técnicas y herramientas de extracción de datos y PDF
¿Cuáles son las limitaciones de este tipo de módulos y modelos?
¿Qué y cómo es útil ChatGPT y GPT-4 en nuestro caso de uso y cómo se pueden usar para resolver la extracción de datos de archivos PDF?