Filtro Bayesiano in PHP

elefante PHPSegnalo una interessante implementazione dei filtri bayesiani in php + mysql. Il fenomeno dello spam, ora molto focalizzato sulle caselle email, inizia già a prendere di mira il web “commentabile”. WordPress ha gia l’ottimo Akismet che sbaglia veramente poco ma per una applicazione “from scratch” può tornare molto utile.

Class: Bayesian Spam Filter (spam, filter, classified) – PHP Classes
This class can be used to detect spam in text messages using Bayesian techniques. It analyzes the text words in terms of n-grams in a way that is idiom independent. It can be trained to progressively distinguish what is spam and what is not spam by detecting patterns in training samples. Training data is stored in a MySQL database.

Categorizzazione automatica e antispam

Mi ricollego ad alcuni post sul concetto di web 3.0 fatti qualche tempo fà, le linee guida sembrano essere state definite in modo preciso  e la chiave di volta dovrebbe essere riuscire a far comprendere ai pc le informazioni che trattano. Questa affermazione è semplicistica, ci sono ovviamente molti gradi di comprensione. Quella più “semplice”, se consideriamo come “informazione” i testi scritti in linguaggio naturale, è raggruppare le parole usate in aree semantiche ( a.k.a. analisi semantica) e non richiede nessuna tecnologia particolarmente potente e strana. Bisogna avere la pazienza di mappare il linguaggio naturale in qualcosa che assomiglia ad un “dizionario dei sinonimi e contrari” digitale un pochetto più evoluto.
Si puo fare a manina, si possono usare metodi statistici, ma cmq è fattibile.
Quello che non è fattibile è la categorizzazione automatica, al momento, (secondo Marco Varone, di cui leggo il blog sempre con molto piacere), ovvero da una serie di testi in lingua naturale, opportunamente categorizzati da esseri umani, ricavare per induzione tramite un algoritmo le regole di questa categorizzazione e applicarle ad un insieme molto piu grosso di documenti.

Ma, mi chiedo, non è ciò che fanno i filtri bayesiani degli antispam ? Categorizzazione molto semplice, spam o non spam, ma pur sempre categorizzazione automatica basata sul training da parte di un essere umano su un numero ridotto di documenti in linguaggio naturale.
Un algoritmo bayesiano, volendo ridurre la cosa ai minimi termini, fornisce come risultato la probabilità che un testo sia dello stesso “tipo” di altri testi con cui è stato addestrato.