Vai al contenuto
kenjtecJournal
Cerca nel Journal

Dalla fattura PDF a dati utilizzabili: cosa deve davvero fornire l’OCR con IA

Leggere correttamente un numero è solo l'inizio. Una fattura sintetica e un piccolo calcolo decimale mostrano come l'OCR diventa un record di dati tracciabile.

Hanne posa uno scontrino lungo accanto ad alcune ciotole di argilla; una ciotola rossa resta vuota. Illustrazione creata con l’IA.

Ogni cifra è stata riconosciuta. Eppure il subtotale finisce nel record di dati come importo finale. Errori come questo sembrano ordinati: JSON valido, campi compilati, nessun messaggio di errore rosso. Ciò che manca sta nella relazione tra numero, etichetta e riga della tabella.

Mistral, nella sua documentazione OCR , descrive tra l'altro testo strutturato, formati di tabella e coordinate dei blocchi. Document Annotations può inoltre convertire le informazioni in un formato JSON predefinito. Questi elementi costitutivi risolvono parti diverse del percorso dal documento all'applicazione.

Quattro livelli per un singolo campo

Prima bisogna leggere i caratteri. Poi l'applicazione ha bisogno della loro posizione e del loro ordine. Dopodiché deve riconoscere quale campo descrive un valore. Infine entrano in gioco le relazioni di contenuto: l'importo finale corrisponde alle voci indicate nell'esempio e allo sconto dichiarato?

Un errore a uno qualsiasi di questi livelli può finire per produrre lo stesso numero sbagliato. Per questo un output di testo completo da solo non è una misura di qualità sufficiente. Per un valore importante, va conservata la strada per risalire al punto in cui è stato trovato.

Non deve sempre trattarsi di un elaborato contrassegno grafico. Un identificativo del documento, la pagina e una descrizione univoca del campo aiutano già. Se si usano coordinate, devono appartenere alla pagina e al rendering giusti. Un rettangolo senza una versione del documento chiaramente identificata può a sua volta creare confusione in seguito.

Crea una fattura di cui conosci il contenuto

Per un test gestibile, progetti un tuo PDF con due voci. La voce A contiene due unità a dieci euro ciascuna, la voce B un'unità a quindici euro. Sotto si trovano uno sconto di cinque euro e un importo finale di trenta euro. Un numero d'ordine manca di proposito. Le cifre servono solo come spiegazione tecnica, non come modello per fini fiscali.

Prima dell'estrazione, annota i valori attesi e dove si trovano. In una seconda versione, cambia solo il layout: sconto e totale ora sono più vicini alle voci. In questo modo potrai capire in seguito se l'assegnazione usa l'etichetta o si basa su una posizione casuale.

Lascia che sia prima un percorso OCR esterno adatto a fornire testo e struttura. Un'estrazione a valle dovrebbe restituire importo finale, valuta, numero d'ordine e posizione nel documento. Il numero d'ordine mancante viene mantenuto come sconosciuto. Un numero sostitutivo inventato sarebbe un errore, anche se riempie completamente il formato di output.

Un piccolo controllo di contenuto al di fuori del modello

La semplice relazione aritmetica dell'esempio sintetico può essere verificata in modo indipendente. Per importi decimali come questi, usa ad esempio Decimal anziché valori binari in virgola mobile. Questo esempio Python, scritto da noi, verifica solo il calcolo didattico che abbiamo definito:

from decimal import Decimal

positionen = [
    (Decimal("2"), Decimal("10.00")),
    (Decimal("1"), Decimal("15.00")),
]
rabatt = Decimal("5.00")
ausgewiesen = Decimal("30.00")
berechnet = sum((menge * preis for menge, preis in positionen), Decimal("0")) - rabatt
assert berechnet == ausgewiesen

Un controllo aritmetico superato mostrerebbe solo che i numeri usati qui sono coerenti tra loro. Non dimostra che l'OCR abbia preso questi numeri dal documento giusto. Per questo il controllo aritmetico e il controllo della fonte restano due passaggi diversi.

In un'applicazione reale devi inoltre rispettare le regole dello specifico tipo di documento. Imposte, arrotondamenti, valute e casi particolari non si possono ricavare da questa fattura semplificata. Il compito qui è soltanto trasferire in modo tracciabile un'assegnazione nota.

L'incertezza va inserita nel contratto di consegna

Definisci esplicitamente cosa succede con una cifra illeggibile o una contraddizione. Un record di dati può contenere il valore, il punto in cui è stato trovato e uno stato di chiarimento. Solo un trasferimento confermato avvia poi il passaggio successivo previsto.

Un'istruzione adatta: «Non aggiungere informazioni mancanti. Per ogni importo che trasferisci, fai riferimento al campo etichettato. Registra separatamente i totali contraddittori. Produci solo un'anteprima, non una registrazione contabile.»

Il test concreto va quindi oltre la semplice lettura del PDF. Verifichi separatamente caratteri, struttura, significato dei campi e una relazione nota. È proprio questo a creare un percorso utilizzabile verso dati che non solo sembrano ordinati, ma riconducono anche all'originale.

Fonti e stato

Fonti aggiornate al 25 ottobre 2026. Document AI OCR processor · Document Annotations.

Amburgo è il nostro punto di partenza.

L’utilità viaggia con te.

IA pratica da Amburgo, spiegata per tutti.

Articoli salvati