ℐ
filtri bayesiani sono basati sulla regola di Bayes, descritta
esaurientemente dalla Stanford
enciclopedia o in italiano da
una semplice
spiegazione. Permettono il
calcolo della
probabilità che un testo ricevuto sia di un certo tipo, per
esempio spam, basandosi sui messaggi ricevuti in precedenza e
classificati da un essere umano.
Innanzi tutto si suppongono le parole del testo indipendenti, cosa non vera ma che da buoni risultati pratici, il messaggio:
P[ai] = frequenza a priori della parola ai Le frequenze dei messaggi di spam sono banalmente cacolabili:
Innanzi tutto si suppongono le parole del testo indipendenti, cosa non vera ma che da buoni risultati pratici, il messaggio:
X = [x1, ... ,xn]viene trattato come un vettore di v.a. (variabili aleatorie) indipendenti ed equidistribuite, ogni v.a. ha come realizzazione una parola del vocabolario. Dall'indipendenza segue che (considero l'evento spam):
P[ X = spam | X=(a1, ... ,an) ] = ∏i P[ X = spam | ai = xi]Le ai sono semplicemente le parole del messaggio ricevuto. A questo punto si applica la regola di Bayes:
Kensan.it
P[ ai = xi | X = spam ]Si applica la teoria frequentista e si calcolano le frequenze delle parole contenute nei messaggi riconosciuti dall'utente come spam:
P[ X = spam | ai = xi] = ------------------------ * P[ X = spam ]
P[ai]
P[ ai = xi | X = spam ] = frequenza della parola ai inLe frequenze delle parole a priori si possono trovare facilmente:
tutti i messaggi di spam
P[ai] = frequenza a priori della parola ai Le frequenze dei messaggi di spam sono banalmente cacolabili:
P[ X = spam ] = frequenza dello spamCredo che il mio procedimento sia corretto e che almeno sia una spiegazione didattica. Il procedimento usato per esempio da Thunderbird che usa i filtri bayesiani non lo conosco ma l'argomento mi ha incuriosito.