Come estrarre testo da qualsiasi PDF e immagine per un grande modello di linguaggio

Estrarre testo da PDF e immagini per modello linguistico

Utilizza queste tecniche di estrazione del testo per ottenere dati di qualità per i tuoi modelli LLM

Immagine di Patrick Tomasso su Unsplash

Motivazione

I grandi modelli di linguaggio hanno conquistato internet, portando sempre più persone a non prestare molta attenzione alla parte più importante nell’utilizzo di questi modelli: i dati di qualità!

Questo articolo si propone di fornire alcune tecniche per estrarre efficientemente il testo da qualsiasi tipo di documento. Alla fine di questo tutorial, avrai un’idea chiara di quale strumento utilizzare in base al tuo caso d’uso.

Le librerie Python

Questo articolo si concentra sulle librerie Pytesseract, easyOCR, PyPDF2 e LangChain. I dati di sperimentazione sono un file PDF di una pagina ed è liberamente disponibile sul mio GitHub.

Sia Pytesseract che easyOCR lavorano con immagini e quindi richiedono la conversione dei file PDF in immagini prima di eseguire l’estrazione del contenuto.

La conversione può essere effettuata utilizzando la libreria pypdfium2, che è una potente libreria per l’elaborazione dei file PDF, e la sua implementazione è riportata di seguito:

pip install pypdfium2

Questa funzione prende in input un PDF e restituisce una lista di ogni pagina del PDF come una lista di immagini.

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