La version 0.0.20061217 de foofilter, mon filtre à spam, est sortie. C'est la première version avec un début de documentation, l'occupation mémoire est meilleure et il y a maintenant un format ASCII d'échange de modèle pour résister aux changements d'architecture ou de version.
Tu peux donner en 2 mots une explication sur le fonctionnement de la bête ? En quoi est-ce différent des bayésiens à Papa et pourquoi ça devrait mieux marcher ? (Je viens seulement aujourd'hui de déclencher l'ire de SpamAssassin sur les messages qui m'arrivent... mais je suis preneur d'approches plus fiables)
Le principe de fonctionnement c'est d'apprendre un modèle de compression pour le spam, et un pour le non-spam (ham). Tu compresses le message à tester avec chacun d'eux, et celui qui compresse le mieux détermine la classe du message (l'idée est que tu compresses mieux tes copains, à savoir les messages de la classe que tu as déjà vue). Ça marche empiriquement mieux que du bayésien naïf parce qu'on évite de se poser la question de ce qu'est un "token". Le bayésien est typiquement pourri par les problèmes de ponctuation, alors que là on fait en gros via la compression du bayésian par contexte glissant de 4 caractères.
Il y a fort à parier que dans mon cas particulier, avec une grosse majorité de spam en anglais et une immense majorité de ham en français, ce système devienne un détecteur de langue et ait un taux inacceptable de faux positifs sur les messages anglais. Me trompè-je ?
C'est le lot des systèmes évoluant sur la base de l'apprentissage des erreurs. Tu peux lui donner des hams en anglais en prévision pour éviter ce problème. Mais en rythme de croisière il n'y a pas de raison de penser que le taux de faux positifs reste élevé: les hams en anglais ont des caractéristiques qui les distinguent des spams en anglais, et le système pourra approcher de façon probabiliste ces caractéristiques.