La tecnologia Free-Form rappresenta la nuova frontiera della lettura ottica di documenti a struttura libera.

Le tecnologie per la lettura ottica di moduli strutturati sono ormai disponibili da diversi anni ed hanno raggiunto un grado di maturità molto elevato, gettando le basi per nuove sfide: la lettura ottica di documenti a struttura libera è una di queste.

Se un documento strutturato è un qualunque tipo di modulo in cui le posizioni dei dati da estrarre sono ben precise e conosciute in anticipo, un documento non strutturato è invece un documento in cui ci sono comunque dei dati ben precisi, ma la loro posizione ed il loro layout non è noto a priori e può variare notevolmente tra documento e documento della stessa tipologia.

Il più classico esempio di documento non strutturato in cui è molto facile imbattersi quotidianamente è rappresentato dalle fatture: sebbene sappiamo a priori che in ciascuna fattura c’è la ragione sociale del fornitore, la data, il numero progressivo, l’imponibile, l’iva ed il totale, non possiamo sapere in anticipo dove questi dati si trovino; il loro posizionamento non è standard, ma è lasciato al libero arbitrio di ciascun fornitore che può utilizzare font, elementi grafici, ombreggiature e colori come meglio crede.

Una delle strategie possibili per trattare questi tipi di documenti è di ricondurli al caso dei documenti strutturati omogenei, qualora fattibile. Ad esempio, continuando a parlare delle fatture, si potrebbe creare un template specifico da associare alle fatture di ciascun fornitore, così che una volta individuato il fornitore, la fattura possa essere trattata in modo idoneo.

Questo approccio può andar bene quando il numero di classi non è elevato e quando il processo di classificazione può avvenire in modo accurato, sia esso eseguito direttamente dal software o manualmente da un operatore. Bisogna infatti preoccuparsi di predisporre i diversi template in modo preventivo ed essere certi che siano processati soltanto i documenti riconducibili ad essi.

Di contro per altri tipi di documenti non strutturati, come ad esempio i curricula, questo tipo di strategia non è applicabile.

L’approccio che è utilizzato per risolvere questa problematica, piuttosto che partire da una definizione spaziale, parte da una definizione logica del dato: i dati da leggere sono definiti, e quindi identificati, mediante una serie di attributi specifici, quali, ad esempio, parole chiave ad essi prossime, tipo di formattazione attesa, posizione relativa, presenza o assenza di elementi grafici, criteri di cross-validation da verificare, e così via.

Nel caso del dato partita iva di una fattura, ad esempio, sarà possibile riconoscerlo, e quindi ricavarne il valore, istruendo il sistema a trovare una sequenza di 11 caratteri numerici (o 2 lettere seguite da 11 caratteri numerici), in prossimità (sopra, sotto, a destra, a sinistra) delle parole “P.IVA” o “Partita Iva” o “PARTITA IVA”, etc., magari limitatamente ad una certa zona del documento (ad esempio nella metà superiore dell’immagine), verificandone il checksum e, se possibile, la presenza in un eventuale database di fornitori.

In pratica si istruisce il software a “ragionare” come facciamo noi umani: infatti quando dobbiamo cercare su una fattura il dato TOTALE DOCUMENTO siamo naturalmente portati a guardare in basso a destra del foglio, magari ci soffermiamo su un riquadro particolarmente evidente o marcato e cerchiamo come “prova” le parole “TOTALE DOCUMENTO” O “IMPORTO FATTURA” o “TOT. FATTURA”. Nello stesso modo agisce un sistema di elaborazione di documenti non strutturati: ciò avviene sulla base delle nostre indicazioni, sulla scorta cioè di regole opportunamente reimpostate, che devono quindi essere definite in modo preciso ed esaustivo.

Esempio di riconoscimento documenti non strutturati (Fatture): si noti come il medesimo campo “data” sia stato individuato in posizioni completamente differenti.

Alla base di queste funzionalità c’è l’utilizzo del riconoscimento ottico (OCR) di tutto il documento in sinergia con un robusto algoritmo di analisi del layout: l’utilizzo combinato di questi due strumenti rende possibile l’identificazione dei blocchi di testo, delle linee verticali, orizzontali e degli elementi di testo con le rispettive confidenze, da cui deriva la possibilità di verificare o meno le condizioni logiche imposte per la ricerca dei dati sulla pagina.

Per rendere ancora più accurata l’elaborazione di documenti non strutturati è anche possibile combinare le due strategie sopra descritte: se il sistema è in grado di associare il documento da trattare ad un template noto, è trattato come documento strutturato, altrimenti è trattato come documento non strutturato e processato ugualmente.