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.
Entonces, saltemos directamente a eso.
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.
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.
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:
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:
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.
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
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.
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.
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.
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.
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.
Podemos usar el GPT-4 y sus incrustaciones a nuestro favor:
Implementación
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 OpenAI Embeddings o HuggingFace ]
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)
¿Qué es una base de datos vectorial y por qué es necesaria?
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)
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
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.