Classification de Textes avec Naive Bayes

Ce travaux pratiques (TP) porte sur la classification automatique de textes, en particulier la détection d'emails spam à l'aide de la méthode Naive Bayes. L'objectif est d'apprendre à représenter des textes sous forme de vecteurs d'attributs, puis à construire et tester un classifieur Naive Bayes supervisé.

D'après le document Classification de Textes avec Naive Bayes

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Classification de Textes avec Naive Bayes

Document source

Classification de Textes avec Naive Bayes

Data Mining, Text Classification · PDF · 20 pages · 2013

Afficher l'aperçu du document

Consulter le document original →

Ce travaux pratiques (TP) porte sur la classification automatique de textes, en particulier la détection d'emails spam à l'aide de la méthode Naive Bayes. L'objectif est d'apprendre à représenter des textes sous forme de vecteurs d'attributs, puis à construire et tester un classifieur Naive Bayes supervisé. Pour réaliser ce TP, il est nécessaire de disposer d'un ensemble d'emails étiquetés spam ou non-spam, ainsi que d'outils permettant de manipuler du texte et de calculer des probabilités.

Objectifs

  • Comprendre le problème de classification binaire appliqué à la détection de spam.
  • Apprendre à normaliser et représenter des textes sous forme de vecteurs d'attributs binaires.
  • Construire un classifieur Naive Bayes à partir d'un ensemble d'exemples étiquetés.
  • Tester le classifieur sur un nouvel email et prédire sa classe (spam ou non-spam).

Prérequis et installation

  • Connaissances de base en classification supervisée et probabilités.
  • Accès à une base de données d'emails étiquetés (exemple : SpamAssassin Public Corpus).
  • Outils pour le traitement de texte (extraction, normalisation) et calculs statistiques.
  • Familiarité avec la représentation "sac de mots" et la méthode Naive Bayes.

Le problème et les données

Le but est de détecter automatiquement si un email inconnu est un spam ou non. Il s'agit d'un problème classique de classification supervisée binaire. Les données utilisées sont un ensemble de 1000 emails au format texte, chacun étiqueté comme spam ou non-spam. Ces emails proviennent de la base publique SpamAssassin.

Exemple d'email non-spam :

Anyone knows how much it costs to host a web portal ?
Well, it depends on how many visitors you're expecting.
This can be anywhere from less than 10 bucks a month to a couple of $100.
You should checkout http://www.rackspace.com/ or perhaps Amazon EC2 if youre running something big..
(y = non-spam)

Exemple d'email spam :

Best Buy Viagra Generic Online
Viagra 100mg x 60 Pills $125, Free Pills & Reorder Discount, Top Selling 100% Quality & Satisfaction guaranteed!
We accept VISA, Master & E-Check Payments, 90000+ Satisfied Customers!
http://medphysitcstech.ru
(y = spam)

Représentation des textes

Pour appliquer la classification, il faut d'abord transformer les emails en vecteurs d'attributs numériques.

1) Normalisation des textes

Cette phase de prétraitement consiste à :

  • Convertir tous les mots en minuscules.
  • Extraire les racines des mots (lemmatisation ou stemming).
  • Supprimer les mots non importants, la ponctuation et les chiffres.

Cette normalisation permet de réduire la variabilité des mots et de se concentrer sur le contenu pertinent.

2) Construction du vocabulaire

Le vocabulaire est constitué des mots les plus fréquents extraits des textes normalisés. Pour ce TP, le vocabulaire est déjà donné et contient 16 mots :

best, big, buck, buy, cost, expect, host, http, month, pay, portal, run, satisf, sell, web, www

3) Extraction des attributs

Chaque email est représenté par un vecteur binaire x de 16 attributs, un par mot du vocabulaire :

  • x_i = 1 si le i-ème mot du vocabulaire apparaît dans le texte.
  • x_i = 0 sinon.

Par exemple, pour un email donné, on obtient un vecteur x = (x_1, x_2, ..., x_16) avec des valeurs 0 ou 1.

Classification supervisée avec Naive Bayes

La méthode Naive Bayes permet de construire un classifieur probabiliste basé sur les vecteurs d'attributs.

Construction du classifieur Naive Bayes

À partir des 1000 vecteurs d'attributs représentant les emails d'entraînement, on estime :

  • La probabilité a priori de chaque classe y (spam ou non-spam) : Pr(y) = n(y) / n, où n(y) est le nombre d'exemples de la classe y et n le nombre total d'exemples.
  • La probabilité conditionnelle de chaque attribut x_i sachant la classe y : Pr(x_i = 1 | y) = n(m_i, y) / n(y), où n(m_i, y) est le nombre d'exemples de la classe y contenant le mot i.

On suppose que ces valeurs ont été partiellement calculées. L'étudiant doit compléter un tableau en remplissant les probabilités manquantes.

Testing du classifieur Naive Bayes

Pour prédire la classe d'un nouvel email :

  1. Normaliser le texte et extraire ses 16 attributs binaires x comme précédemment.
  2. Calculer la probabilité de chaque classe y selon la formule :
y* = argmax_{y ∈ {spam, non-spam}} Pr(y) × ∏_{i=1}^{16} Pr(x_i | y)

où Pr(x_i | y) est la probabilité conditionnelle estimée.

La classe prédite y* est celle qui maximise ce produit.

Exemple de nouvel email à tester :

Dear customer, thanks for your inquiry. It is best that you buy the stock now and sell it back in 6 months. Otherwise you run the risk of losing out. If you need further help, please visit our Web portal at: http://www.stocks.com , Sincerely yours.

Résultats attendus

Après normalisation, le nouvel email doit être représenté par un vecteur binaire x de 16 attributs correspondant au vocabulaire donné. En appliquant la formule Naive Bayes, on obtient une probabilité pour chaque classe. La classe avec la probabilité la plus élevée est la prédiction finale.

Un résultat correct est une classification cohérente avec le contenu du message, par exemple non-spam si le message semble légitime, ou spam si le message contient des mots typiques de spam.

Pièges courants

  • Ne pas normaliser correctement les textes (oubli de la mise en minuscules, suppression insuffisante des mots non pertinents) fausse la représentation.
  • Confondre le vocabulaire utilisé pour l'entraînement et celui pour le test, ce qui peut entraîner des vecteurs mal formés.
  • Oublier de calculer ou de compléter toutes les probabilités Pr(x_i | y), ce qui empêche le calcul correct de la probabilité globale.
  • Ne pas appliquer la formule Naive Bayes correctement, notamment en oubliant la multiplication des probabilités conditionnelles.
  • Ne pas gérer les cas où un mot du vocabulaire n'apparaît pas dans un email (valeur x_i = 0), ce qui doit être pris en compte dans le calcul.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions