MathLvl
Question transversaleMathsNSIDonnées et intelligence artificielle

Comment un filtre anti-spam décide-t-il qu'un message est indésirable à partir des mots qu'il contient ?

Si 40 % des messages sont des spams, que « gratuit » apparaît dans 30 % des spams et 2 % des autres, la formule de Bayes donne P(spam | « gratuit ») ≈ 91 %. En ajoutant « urgent » (20 % des spams, 1 % des autres) et en supposant les mots indépendants, on passe à 99,5 %.

Grand oral session 2027 : exposé de 10 minutes debout, puis 10 minutes d'échange, sans calculatrice. Plan prévu pour 9,5 min.

Pourquoi cette question : un modèle d'introduction

Le jury attend que vous expliquiez pourquoi vous avez choisi la question. Inspirez-vous de ce modèle, mais racontez votre propre parcours.

Ma boîte mail range automatiquement certains messages dans les indésirables, et elle se trompe rarement. En NSI, j'ai appris qu'un des premiers filtres efficaces, proposé en 2002, reposait entièrement sur la formule de Bayes vue en probabilités conditionnelles. J'ai voulu refaire son calcul et comprendre l'hypothèse « naïve » sur laquelle il repose.

L'enjeu et les notions du programme

Appliquer la formule de Bayes à un problème de classification et discuter l'hypothèse d'indépendance.

Mathématiques

  • Probabilités conditionnelles, formule de Bayes (première)
  • Formule des probabilités totales, arbres (première)
  • Indépendance d'événements (première, terminale)

Numérique et sciences informatiques

  • Classification, apprentissage sur des données (première)
  • Dictionnaires de fréquences de mots (première)

Le plan de l'exposé en 9,5 min

  1. 1. Introduction

    1 min

    Un filtre a appris, sur des messages déjà triés, la fréquence de chaque mot dans les spams et dans les messages normaux. Problématique : comment en déduire la probabilité qu'un nouveau message soit un spam ?

  2. 2. Mathématiques : la formule de Bayes

    4,5 min

    Données apprises : P(S)=0,4 (proportion de spams), P(G| S)=0,3 (le mot « gratuit » dans un spam), P(G|bar S)=0,02.

    Par la formule de Bayes et les probabilités totales : P(S| G)=(P(S)P(G| S))/(P(S)P(G| S)+P(bar S)P(G|bar S))=0,12/(0,12+0,012)≈0,91.

    Avec un deuxième mot, « urgent » : P(U| S)=0,2, P(U|bar S)=0,01. On suppose que, sachant la catégorie, les mots apparaissent indépendamment : c'est l'hypothèse « naïve ». Alors P(G∩ U| S)=0,3×0,2=0,06 et P(G∩ U|bar S)=0,02×0,01=0,0002. D'où P(S| G∩ U)=0,4×0,06/(0,4×0,06+0,6×0,0002)=0,024/0,02412≈0,995.

    Chaque mot multiplie le rapport des chances par (P( mot | S))/(P( mot |bar S)) : 15 pour « gratuit », 20 pour « urgent ».

  3. 3. NSI : apprendre les fréquences

    2,5 min

    L'entraînement consiste à compter, dans des messages triés, la fréquence de chaque mot dans chaque catégorie, avec un dictionnaire Python. Le classement d'un nouveau message multiplie les rapports de ses mots ; pour éviter des nombres trop petits, on additionne plutôt leurs logarithmes.

    L'hypothèse d'indépendance est fausse (« offre » et « gratuite » vont souvent ensemble), mais le filtre fonctionne bien en pratique, car il suffit de bien classer, pas d'estimer exactement la probabilité. Il s'adapte à chaque utilisateur, qui l'améliore en signalant ses erreurs.

  4. 4. Conclusion

    1,5 min

    Un filtre bayésien combine les indices apportés par chaque mot grâce à la formule de Bayes : « gratuit » seul donne 91 %, « gratuit » et « urgent » 99,5 %. L'hypothèse naïve d'indépendance simplifie tout, au prix d'une approximation. J'ouvre sur les spammeurs qui insèrent des mots anodins pour tromper ce calcul.

Ce que j'écris au tableau

Pas de calculatrice ni de support numérique : un calcul clé écrit au tableau rend l'exposé concret et montre la solidité des connaissances.

P(S| G)=0,4×0,3/(0,4×0,3+0,6×0,02)=0,12/0,132≈0,91
P(S| G∩ U)=0,4×0,3×0,2/(0,024+0,6×0,02×0,01)≈0,995

Conclusion : la réponse à la question

Un filtre anti-spam est une application directe de la formule de Bayes : chaque mot modifie la probabilité d'être un spam. L'hypothèse naïve d'indépendance, fausse mais commode, rend le calcul possible et efficace.

Les questions probables du jury

Pendant les 10 minutesd'échange, le jury vous fait préciser et approfondir, sur tout le programme de vos spécialités en lien avec la question.

Rappelez la formule de Bayes.

P(A| B)=(P(A)P(B| A))/P(B).

Que signifie l'hypothèse naïve ?

Sachant la catégorie, la présence d'un mot est indépendante de la présence des autres.

Pourquoi additionner des logarithmes ?

Le produit de nombreuses petites probabilités devient trop petit pour l'ordinateur ; ln transforme le produit en somme.

Que se passe-t-il pour un mot jamais vu dans les spams ?

Sa fréquence vaudrait 0 et annulerait tout ; on ajoute un petit effectif fictif (lissage).

Calculez P(G) avec la formule des probabilités totales.

0,4×0,3+0,6×0,02=0,132.

Un message sans aucun mot connu est-il classé spam ?

Sa probabilité reste celle de départ, P(S) = 0,4 : aucun indice ne la modifie, il est donc classé normal avec un seuil de 0,5.

Les pièges qui coûtent des points

  • Confondre P(spam | mot) et P(mot | spam).
  • Oublier le dénominateur des probabilités totales.
  • Présenter l'hypothèse d'indépendance comme vraie.

Revoir les notions

Autres questions : données et intelligence artificielle

Toutes les questions maths-nsi →

Préparer l'oral, pas seulement le contenu

Gestion des 20 minutes de préparation, usage du tableau, posture debout, réponses au jury : la méthode complète, conforme aux règles de la session 2027.

Méthode : traiter une question de Grand oral →