
Il 40% dei documenti che i nostri clienti caricano in RAG Enterprise PRO sono PDF scansionati, immagini di contratti o fogli Excel con formattazione complessa. Senza un sistema di estrazione robusto, quei documenti sarebbero invisibili all'AI. Ecco come Apache Tika e l'OCR risolvono il problema.

Il Problema dei Formati: Perché un Solo Parser Non Basta
Quando un'azienda ci affida i suoi archivi documentali, arriva di tutto: PDF nativi, PDF da scanner, DOCX con tabelle, XLSX con macro, presentazioni PowerPoint, email in formato EML, e persino file TXT con encoding misterioso. Il primo prototipo di RAG Enterprise usava PyPDF2 per i PDF e python-docx per i Word. Funzionava per i documenti puliti. Poi è arrivato il primo cliente reale. Uno studio legale ci ha consegnato 15.000 documenti. Il 35% erano PDF scansionati da fotocopiatrici degli anni 2000. Il 20% erano DOCX con tabelle complesse e immagini incorporate. Il 10% erano fogli Excel con dati strutturati che dovevano essere leggibili dall'AI. PyPDF2 restituiva stringhe vuote sui PDF scansionati. python-docx perdeva le tabelle. Avevamo bisogno di una soluzione che gestisse tutti i formati con un'unica interfaccia. Apache Tika è esattamente questo: un framework di estrazione universale che supporta oltre 1.000 formati di file. Lo abbiamo integrato nella nostra pipeline attraverso tika-python, il wrapper Python ufficiale, che comunica con un server Tika locale via REST. Il vantaggio principale di Tika rispetto a soluzioni frammentate come pypdf + python-docx + openpyxl è la coerenza. Un singolo endpoint, un singolo formato di output, una singola gestione degli errori. Il nostro codice di ingestione documenti è passato da 400 righe con gestione manuale dei formati a 50 righe con Tika.
OCR per i Documenti Scansionati: Tika + Tesseract
La vera sfida non sono i PDF nativi — quelli contengono già il testo in forma digitale. Il problema sono i PDF scansionati: immagini di pagine senza alcun testo estraibile. Qui entra in gioco l'OCR (Optical Character Recognition). Qualcuno potrebbe chiedersi: perché non usare pytesseract direttamente? L'abbiamo provato. pytesseract funziona bene su singole immagini pulite, ma gestire un PDF multipagina richiede prima di convertirlo in immagini (con pdf2image), poi processare ogni pagina, gestire la rotazione, la risoluzione, il deskewing. Con Tika tutto questo è integrato: gli passi il PDF e lui internamente usa Tesseract per le pagine che ne hanno bisogno, combinando OCR e estrazione nativa in un unico flusso. Abbiamo configurato Tika con Tesseract 5.x e i language pack per italiano e inglese. La configurazione è nel file tika-config.xml dove specifichiamo la strategia OCR: applichiamo l'OCR solo alle pagine che non contengono testo estraibile (strategia AUTO), evitando di rielaborare inutilmente le pagine native. Questo dimezza i tempi di ingestione per i documenti misti. La qualità dell'OCR dipende molto dalla qualità della scansione originale. Per i documenti più problematici, abbiamo aggiunto un layer di pre-processing con OpenCV: binarizzazione adattiva, deskewing e rimozione del rumore. Il tasso di errore carattere (CER) è sceso dal 12% al 3.8% sui documenti scansionati a bassa risoluzione.
Integrazione nella Pipeline RAG: Da Documento a Vettore
L'estrazione del testo è solo il primo passo. Il flusso completo nella pipeline RAG Enterprise è: il documento arriva via upload o API, Tika estrae il testo e i metadati (autore, data creazione, numero pagine), il testo viene pulito e normalizzato (rimozione header/footer ripetuti, normalizzazione whitespace), il testo viene segmentato in chunk semantici con LangChain, ogni chunk viene trasformato in embedding con sentence-transformers, e infine i vettori vengono indicizzati in Qdrant. Tika ci fornisce anche metadati preziosi che usiamo per il filtraggio. Quando un utente chiede 'mostrami i contratti del 2024', il sistema può filtrare per data di creazione del documento prima ancora di fare la ricerca semantica. Questo migliora sia la precisione che la velocità. Un problema che abbiamo risolto: i documenti Excel. Tika estrae il testo dalle celle, ma perde la struttura tabellare. Per RAG Enterprise abbiamo costruito un parser specializzato che converte le tabelle Excel in formato markdown prima di passarle al chunking. L'AI può così capire che 'Q1 Revenue: 1.2M' è un dato in una riga specifica, non testo libero. I numeri della nostra pipeline di ingestione in produzione: processiamo in media 500 documenti all'ora su un server con 16 GB di RAM e 4 core. I PDF nativi vengono processati a 200 pagine/minuto, i PDF scansionati a 15 pagine/minuto (il collo di bottiglia è l'OCR). Per carichi maggiori, abbiamo implementato una coda con Celery che distribuisce il lavoro su più worker Tika.
Servizi Correlati
Scopri come applichiamo queste tecnologie nei nostri progetti enterprise.
Interessato?
Contattaci per ricevere un preventivo personalizzato.
Securvita S.r.l. — i3k.eu