AccueilIA et apprentissage automatiqueFiltre anti-spam — Classificateur Naive Bayes en direct

📧 Filtre anti-spam — Classificateur Naive Bayes en direct

Observez un véritable classificateur Naive Bayes calculer des vraisemblances de fréquence de mots à partir d'un ensemble d'entraînement et noter des e-mails synthétiques entrants comme spam ou non-spam, avec des contributions de probabilité par mot en direct.

IA et apprentissage automatique3DModérée60 FPS
ai-email-spam-filtering ↗ Ouvrir en autonome

À propos de cette simulation

This simulation runs a real multinomial Naive Bayes text classifier over a synthetic labelled corpus of spam and ham (legitimate) emails. Every word in every training example is counted per class, Laplace smoothing keeps unseen words from zeroing out a probability, and each incoming email is scored by summing per-word log-likelihood ratios with the log-prior, then converting that log-odds total back into a spam probability with the sigmoid function — the exact Naive Bayes formula, not a decorative stand-in.

🔬 Ce que ça montre

Un e-mail synthétique entrant en direct avec chaque mot coloré selon sa contribution individuelle au verdict de spam, une jauge de probabilité postérieure avec le seuil de décision marqué, un graphique à barres classé des mots poussant le plus fort vers le spam ou vers le non-spam, et une tendance de précision continue à mesure que le flux classe e-mail après e-mail sur un ensemble de test tenu à l'écart que le modèle n'a jamais vu à l'entraînement.

🎮 Comment l'utiliser

Faites glisser le seuil de classification pour rendre le filtre plus strict ou plus permissif, et observez la précision tenue à l'écart et le verdict actuel se mettre à jour instantanément. Ajustez la vitesse de flux et appuyez sur Démarrer le flux pour voir des e-mails synthétiques arriver en continu, ou utilisez E-mail suivant pour avancer un à la fois. Tapez votre propre texte d'e-mail et cliquez sur Ajouter comme spam ou Ajouter comme non-spam pour agrandir l'ensemble d'entraînement en direct — la taille du vocabulaire et le tableau de fréquence des mots se mettent à jour immédiatement, et les classifications futures évoluent en conséquence. Réinitialiser le modèle revient au corpus d'entraînement d'origine.

💡 Le saviez-vous ?

Naive Bayes ignore entièrement l'ordre des mots et la grammaire — « you won a free prize » et « prize a free won you » obtiennent un score identique — pourtant cette hypothèse rudimentaire de sac de mots a suffi à alimenter certains des premiers filtres anti-spam automatisés véritablement efficaces au début des années 2000. Sa rapidité et sa résistance au surapprentissage sur de petits ensembles de données expliquent exactement pourquoi il est encore enseigné aujourd'hui comme le premier algorithme canonique de classification de texte.

Questions fréquentes

Qu'est-ce qu'un classificateur Naive Bayes ?

Naive Bayes est un classificateur probabiliste construit sur le théorème de Bayes : P(classe|mots) est proportionnel à P(classe) multiplié par le produit de P(mot|classe) sur chaque mot du message. Pour le filtrage du spam, les deux classes sont spam et non-spam (courrier légitime), et le classificateur est entraîné en comptant la fréquence d'apparition de chaque mot dans des exemples étiquetés spam versus non-spam. Malgré sa simplicité, il reste une base solide et rapide pour la classification de texte car les fréquences de mots seules portent une quantité surprenante de signal sur l'intention d'un message.

Pourquoi est-il qualifié de « naïf » ?

Il est dit naïf car il suppose que l'occurrence de chaque mot est conditionnellement indépendante de tout autre mot étant donné la classe — en réalité, des mots comme « free » et « prize » sont corrélés, pas indépendants. Cette hypothèse est presque toujours fausse dans le langage réel, mais elle rend les mathématiques tractables : au lieu d'estimer une probabilité conjointe sur toutes les combinaisons de mots, le modèle n'a besoin que de simples comptages de fréquence par mot, ce qui rend Naive Bayes si rapide à entraîner et si résistant au surapprentissage sur de petits ensembles de données.

Comment fonctionne le lissage de Laplace et pourquoi est-il nécessaire ?

Sans lissage, tout mot n'étant jamais apparu dans l'ensemble d'entraînement du spam donnerait P(mot|spam) = 0, et multiplier par zéro forcerait l'ensemble du postérieur à zéro, quel que soit tout autre mot du message. Le lissage de Laplace (add-one, ou plus généralement add-alpha) ajoute une petite constante à chaque comptage de mot avant de diviser par le total de la classe, de sorte que les mots rares ou jamais vus obtiennent une petite probabilité non nulle au lieu d'anéantir tout le calcul. Cette simulation utilise alpha = 1 sur la taille du vocabulaire en direct, recalculée chaque fois qu'un nouvel exemple d'entraînement modifie le tableau de fréquence des mots.

Que contrôle le curseur de seuil de classification ?

Le modèle produit toujours une probabilité postérieure continue qu'un message soit du spam, P(spam|mots), entre 0 et 1. Le curseur de seuil définit la limite au-delà de laquelle un message est étiqueté spam plutôt que non-spam — l'augmenter rend le filtre plus prudent (moins de faux positifs, plus de spam qui passe), tandis que le diminuer attrape plus de spam au prix de davantage d'e-mails légitimes signalés à tort. Déplacer le curseur reclassifie instantanément l'e-mail actuel et recalcule la métrique de précision tenue à l'écart.

Est-ce ainsi que fonctionnent les vrais filtres anti-spam ?

Le Naive Bayes multinomial a été l'un des tout premiers filtres anti-spam véritablement efficaces, utilisé par des outils comme le SpamAssassin original et les premiers filtres bayésiens dans les années 2000, et les mathématiques de rapport de log-vraisemblance de cette simulation sont exactement la formule réelle, pas un substitut simplifié. Les filtres commerciaux modernes superposent bien plus de signaux — réputation de l'expéditeur, liens, en-têtes, images et souvent des modèles de texte neuronaux — mais le cœur Naive Bayes basé sur la fréquence des mots présenté ici est un élément constitutif fidèle et historiquement important de ce système plus vaste.

⚙ Sous le capot

Un véritable classificateur Naive Bayes multinomial compte les fréquences de mots dans un corpus d'entraînement synthétique spam/non-spam, applique un lissage de Laplace, et note les e-mails synthétiques entrants via des sommes de rapport de log-vraisemblance converties en probabilité postérieure par la fonction sigmoïde — avec des barres de contribution par mot en direct et un suivi de précision tenu à l'écart.

Canvas 2DNaive BayesText ClassificationMachine LearningNLP

3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install

Qu'avez-vous trouvé ?

Ajouter des étapes de reproduction (facultatif)