Classification de Textes avec Naive Bayes

Data Mining, Text Classification · lab

Voir tous les documents en intelligence artificielle et données

Data Mining

TD2 : Classification de Textes avec Naive Bayes

28 Octobre 2013

Prof. Chiraz Ben Abdelkader

ENSI

Plan

TD2 : Classification de Textes avec Naive Bayes

1) Le problème et les données

2) Representation des textes

3) Classification avec méthode de Naive Bayes

● Construction du classeur

● Testing du classeur

References

● Méthode de Naive Bayes (notes de cours du 30 Septembre, 2013)

● Classification de textes (notes de cours du 07 Octobre, 2013)

Le Problème et les Données

• Problème : méthode pour la detection automatique d'emails spam

– étant donné le texte d'un email inconnu, est-t-il spam ou pas?

– Un problème classique de classification supervisée binaire

• Les données : un ensemble de 1000 e-mails (en des fichiers texte),

chacun marqué comme étant spam ou non-spam

• Source : Base de données publique SpamAssasin Public

http://spamassassin.apache.org/publiccorpus/

Le Problème et les Données

• Exemplaire 1 :

> 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

Publicité

if youre running something big..

( y = non-spam)

Le Problème et les Données

• Exemplaire 2 :

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)

Solution

• Une solution pour ce problème se base sur :

I. representation des textes (les emails) en vecteurs d'attributs

II. méthode de classification supervisée

Representation des Textes

1) Normalisation des textes – phase de pretraitement

2) Construction du vocabulaire

3) Extraction des attributs

1) Normalisation des Textes

a) Convertir tous les mots en miniscule

b) Extraire les racines des mots

c) Supprimer les mots non-importants, ponctuation, et chiffres

1) Normalisation des Textes

• Exemplaire 1 :

> 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..

Publicité

1) Normalisation des Textes

• Exemplaire 2 :

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

2) Construction du Vocabulaire

• Normalement, on construit le vocabulaire a partir des textes

exemplaires normalisés

– Par exemple en utilisant les K mots les plus frequents

• Pour ce TD, on imagine que le vocabulaire a été déjà construit :

best, big, buck, buy, cost, expect, host, http,

month, pay, portal, run, satisf, sell, web, www

3) Extraction des Attributs

• Cette phase se base sur un modèle de représentation que l'on choisit

• Pour cet exercice on va utiliser le modèle sacs de mots-version binaire

– Un attribut pour chaque mot dans le vocabulaire

= 1 si le document contient ieme mot du vocabulaire

x

i

= 0 sinon

3) Extraction des Attributs

• Pour nous, le vocabuaire s'agit de 16 mots :

best, big, buck, buy, cost, expect, host, http,

month, pay, portal, run, satisf, sell, web, www

• Donc, chaque texte sera représenté avec un vecteur x de 16 valeurs

binaires (0 ou 1)

• Exemplaire 1 : x1 =

• Exemplaire 2 : x2 =

Publicité

Classification supervisee avec Naive Bayes

1) Construction (induction) du classeur Naive Bayes

2) Testing (mise en oeuvre) du classeur

Construction du Classeur Naive Bayes

• On se dispose de 1000 vecteurs de 16 attributs chacun, qui

représentent les 1000 textes exemplaires

• On doit estimer les probabilités suivantes a partir de ces vecteurs:

– Pr(y) , pour y=spam et y=non-spam

– Pr(x

| y) , pour toutes les combinaisons de valeurs possibles

i

● i=1,..,16

=0, 1

● x

i

● y=spam, non-spam

Construction du Classeur Naive Bayes

• Estimation de Pr(y) , pour tout y:

n(y) / n

• Estimation de Pr(x

n(m

, y) / n(y)

i

= 1| y) , pour tout i et tout y :

i

Construction du Classeur Naive Bayes

• On suppose que le travail a été partiellement complété :

– Les valeurs de n(y) et n(m

,y) sont déjà calculées

i

Publicité

● Completer le tableau en remplissant les valeurs des probabilités

Testing du Classeur Naive Bayes

• On se dispose d'un classeur Naive Bayes pour ce problème

– c'est a dire qu'on a les valeurs de toutes les probabilités Pr(y),

Pr(x

|y)

i

• On considère maintenant le nouveau email suivant :

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.

Testing du Classeur Naive Bayes

• On prédit sa classe (spam ou non-spam) avec les 2 étapes suivantes :

1) Normaliser le texte et extraire ses 16 attributs, comme on l'a

déjà fait (soit disant) pour les textes exemplaires

x = ?

2) Appliquer la formule du classeur Naive Bayes :

|y).Pr[y) ]

y* = argmax

Pr(x

[ P

y={spam,nonspam}

i=1..16

i

y* = ?