Cómo extraer texto de cualquier PDF e imagen para un modelo de lenguaje grande

Extraer texto de PDF e imagen para modelo de lenguaje

Utiliza estas técnicas de extracción de texto para obtener datos de calidad para tus modelos de LLM

Imagen de Patrick Tomasso en Unsplash

Motivación

Los grandes modelos de lenguaje han causado sensación en internet, haciendo que más personas no presten suficiente atención a la parte más importante de usar estos modelos: ¡datos de calidad!

Este artículo tiene como objetivo proporcionar algunas técnicas para extraer eficientemente texto de cualquier tipo de documento. Después de completar este tutorial, tendrás una idea clara de qué herramienta utilizar según tu caso de uso.

Las bibliotecas de Python

Este artículo se centra en las bibliotecas Pytesseract, easyOCR, PyPDF2 y LangChain. Los datos de experimentación son un archivo PDF de una página y están disponibles de forma gratuita en mi GitHub.

Tanto Pytesseract como easyOCR trabajan con imágenes, por lo que es necesario convertir los archivos PDF en imágenes antes de realizar la extracción de contenido.

La conversión se puede hacer utilizando la biblioteca pypdfium2, que es una potente biblioteca para el procesamiento de archivos PDF, y su implementación se muestra a continuación:

pip install pypdfium2

Esta función toma un PDF como entrada y devuelve una lista de cada página del PDF como una lista de imágenes.

def convert_pdf_to_images(file_path, scale=300/72):        pdf_file = pdfium.PdfDocument(file_path)        page_indices = [i for i in range(len(pdf_file))]        renderer = pdf_file.render(        pdfium.PdfBitmap.to_pil,        page_indices = page_indices,         scale = scale,    )        final_images = []         for i, image in zip(page_indices, renderer):                image_byte_array = BytesIO()        image.save(image_byte_array, format='jpeg', optimize=True)        image_byte_array = image_byte_array.getvalue()        final_images.append(dict({i:image_byte_array}))        return final_images