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
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.
- Una prospettiva filosofica e artistica su DALL·E2
- Muybridge Derby Portare in vita le fotografie di locomozione animale con l’IA
- LangChain 101 Parte 1. Costruzione di una semplice app di domande e risposte
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