La classificazione documentale, come spiegato nel precedente articolo sull’argomento, si compone di varie fasi e sfrutta vari strumenti. Uno tra quelli presentati è il classificatore ingenuo di Bayes o “Naive Bayes Classifier”. La solita citazione da Wikipedia è:
“A Bayes classifier is a simple probabilistic classifier based on applying Bayes’ theorem (from Bayesian statistics) with strong (naive) independence assumptions. A more descriptive term for the underlying probability model would be “independent feature model”.”
Prima di poter parlare di classificazione documentale sarebbe innanzi tutto necessario parlare di classificazione in maniera più generale. Infatti, la classificazione documentale, altro non è che un normale processo di classificazione, in questo caso basata su un approccio statistico, composta di numeri, regole e formule. Viene spontaneo chiedersi come sia possibile a questo punto che un documento, fatto di parole, lettere, punteggiatura e simboli che vanno ben oltre semplici numeri, possa essere trattato come se fosse una variabile di un’equazione matematica.
La risposta al questio si chiama “modello matematico”. I modelli matematici, grande divertimento dei ricercatori operativi, sono il risultato di processi di analisi e modellazione che permettono di mappare in qualche modo, più o meno coerente e completo, un qualsiasi elemento della realtà. Il “più o meno coerente e completo” è d’obbligo perché è noto che la natura non fa spigoli, cioè il mondo non è lineare, mentre spesso i problemi reali vengono modellizzati in modo tale da essere risolvibili, per esempio, studiandone una versione linearizzata.
Prendendo il caso particolare del metodo statistico di Bayes, e semplificando al minimo il modello matematico da utilizzare, è possibile trasformare un documento in un semplice vettore di numeri che, nel caso del classificatore classico, appartengono all’insieme {0,1}, cioè sono binari. Questa modellazione è possibile grazie a una “legenda” di riferimento detta vocabolario. In questo particolare caso, il vocabolario del modello matematico corrisponde con un vocabolario secondo la sua più stretta e umana definizione.
Passando a un esempio concreto, si supponga di avere questo vocabolario:
[giocatore, sport, calcio, pallone, scarpa, rete, palo, portiere]
e la seguente frase:
“Durante la partita, il giocatore ha dato un calcio al pallone e ha perso la scarpa”
dunque il vettore di riferimento sarebbe:
[1, 0, 1, 1, 1, 0, 0, 0]
Senza andare nel dettaglio della fase di pre-elaborazione dei dati (cioè la loro trasformazione in dati utilizzabili per l’addestramento e la fruizione del classificatore), è possibile illustrare il principio che sta alla base della classificazione ingenua. Tale classificazione è definita in questo modo perché si presuppone che gli elementi che costituiscono i vettori e il vocabolario siano indipendenti tra loro, e dunque non vengano considerate eventuali correlazioni. Per intendere meglio cosa voglia dire ingenuo può essere utile un esempio:
In un documento che parla di biologia, e in particolare del ciclo di vita di una pianta, la probabilità che nel testo appaia la parola “fotosintesi” non è indipendente dalla presenza del termine “clorofilliana”. Nella conoscenza comune è noto associare le due parole e, per di più, la presenza della seconda può addirittura essere correlata in posizione al termine precedente. Sarà infatti molto più probabile incontrare nel testo l’espressione “fotosintesi clorofilliana” che “clorofilliana fotosintesi”.
Quando si parla di classificazione ingenua, si assume che il valore corrispondente a questi due termini, sia indipendente l’uno dall’altro, cioè si ignora il fatto che la presenza delle due parole insieme costituirebbe una maggiore probabilità che un certo testo parli di biologia vegetale. Viene naturale chiedersi perché non lo si consideri. La risposta è già stata fornita in precedenza. Il modello da utilizzare deve essere semplice e computabile e inserire questo tipo di dipendenze (ne esistono anche di molto complesse nella linguistica e nella teoria della probabilità), significherebbe rendere il problema molto complesso, e in vari casi anche NP-Completo.
La regola di Bayes su cui si basa il classificatore dice che:
La probabilità P di un evento E, data l’evidenza F{1,2,…,N} è data dal rapporto tra il prodotto della probabilità del singolo evento P(E) con la probabilità dell’evidenza dato il fatto E, e la probabilità dell’evidenza.
P(E | F1,F2,…,Fn) = P(E) * P(F1,F2,…,Fn | E) / P(F1,F2,…,Fn)
Detto in termini di classificazione, si supponga che l’evento E sia la categoria da assegnare a un certo documento, e che l’evidenza siano i singoli termini che costituiscono il vocabolario, la regola potrebbe esprimersi come “la probabilità che un documento appartenga alla categoria E, data la presenza/assenza delle parole F1,…,Fn è pari al prodotto della probabilità stessa che un documento appartenga a una certa categoria moltiplicato per la probabilità di ciascuna delle parole, presupposto che si tratti della categoria E, diviso la probabilità delle parole stesse.
Anche espresso in questo modo, il concetto non rimane chiarissimo, ma la comprensione di questa legge non è lo scopo di questo articolo. In ogni caso, la legge scritta in questo modo è altamente esauriente ma sarebbe computazionalmente difficile da calcolare e rappresenterebbe il classificatore “ideale” di bayes.
La classificazione infatti avverrebbe calcolando, dato un documento, la probabilità che questo appartenga a ciascuna delle possibili categorie, scegliendo, ovviamente, quella più alta. Come fare dunque a rendere la legge utilizzabile? Proprio utilizzando il principio di “ingenuità”. Infatti, considerato che la probabilità congiunta espressa al numeratore del secondo membro dell’equazione è esprimibile come:
P(E, F1, F2, … Fn) = P(E)*P(F1|E)*P(F2|F2,E)*…*P(Fn|Fn-1,…F1)
La condizione di indipendenza o ingenuità ci permette di dire che per ogni “i” diverso da “j” è valida la seguente relazione:
P(Fi | C, Fj) = P(Fi | C)
Cioè che non c’è nessuna relazione di probabilità tra “fotosintesi” e “clorofilliana”. Questo ci permette di ridurre l’equazione precedente (dove l’evidenza sarà espressa comeF) nel seguente modo:
P(E | F) = P(C)*P(F1|C)*P(F2|C)*…*P(Fn|C)/P(F)
Adesso, posto che nella classificazione ingenua, generalmente, le categorie sono considerate equiprobabili, e che l’evidenza è un fattore identico per ogni categoria, il valore che vogliamo calcolare potrà essere calcolato come:
P(E | F) = P(F1|C)*P(F2|C)*…*P(Fn|C)
Che significa che dato un documento, il valore che ci permette di ipotizzare a quale categoria appartenga, è data dal massimo prodotto di tutti i valori di probabilità di ciascuna parola del vocabolario in relazione a ciascuna categoria. Il concetto può essere spiegato meglio con un esempio pratico.
Supponiamo di prendere un vocabolario di 5 parole:
W = [cane, soldi, deputato, calciatore, locale]
e di avere 3 categorie:
C = [sport, economia, tempo libero]
La prima cosa da fare sarebbe addestrare il classificatore. Per farlo bisogna calcolare le tabelle di probabilità di ciascun termine per ciascuna categoria e per farlo si passa attraverso l’addestramento. Per esemplificare, si prende un insieme di 3 vettori (documenti) per la categoria “sport”:
v1 = [1,0,0,1,1]
v2 = [1,0,0,1,0]
v3 = [0,0,0,1,1]
La riga relativa alla categoria “sport” per la tabella delle probabilità sarebbe:
sport = [2/3, 0/3, 0/3, 3/3, 2/3]
Si supponga di avere ache le altre due categorie e di avere dunque la seguente tabella delle probabilità positive (quelle negative si calcolano come “1 – p”):
[2/3, 0/3, 0/3, 3/3, 2/3]
[1/3, 2/3, 3/3, 0/3, 0/3]
[2/3, 1/3, 0/3, 1/2, 3/3]
Se volessimo classificare il seguente documento: “il calciatore ha giocato come un cane”, a cui corrisponde il vettore [1, 0, 0, 1, 1] potremmo calcolare i tre possibili valori come:
v(sport) = 2/3*(1 – 0/3)*(1 – 0/3)*3/3*2/3 = 4/9 = 0,44
v(economia) = 1/3*(1 – 2/3)*(1 – 3/3)*0/3*0/3 = 0
v(tempo libero) = 2/3*(1 – 1/3)*(1 – 0/3)*3/3*2/3 = 8/27 = 0,30
quindi max(V) = 0,44 cioè: il documento è classificato come “sport”.
Emerge subito come il risultato sia fortemente dipendente dai dati con cui viene addestrato il sistema e soprattutto esso non è esente da condizioni limite. Per esempio, l’assenza della parola “deputato”, dal momento che è presente nel 100% dei campioni di economia, andrebbe ad azzerare la probabilità nonostante altre parole potrebbero aumentare significativamente lo stesso valore. Questo sarebbe un caso di sotto-stima dell’insieme di addestramento. Al contrario potrebbero esserci significative differenze nel numero dei documenti utilizzati e una categoria potrebbe essere favorita. In questo caso si ha un problema di sovra-dimensionamento. Per far fronte a questi problemi si usano varie tecniche basate su tecniche che calcolano i valori di probabilità sulla base della frequenza dei termini, la loro rilevanza e la proporzione normalizzata dei documenti (e.g. TF-IDF). Questo genere di approcci può trasformare il vettore che rappresenta il documento da binario a reale (e.g. [0.2, 0.4, ... , 0.7]).
Esistono varie altre tecniche e adattamenti di questo algoritmo o che ne siano valide alternative, per esempio le macchine a vettori di supporto, tuttavia il classificatore Naive Bayes rimane uno dei più usati in quanto è facile da implementare, facilmente personalizzabile in base ai tipi di classificazione che deve svolgere, raffinabile e molto efficiente sebbene fortemente dipendente dalla qualità dei dati forniti per l’addestramento.

