Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
TAL: traitement automatique de la langueReprésentation et classification de textes
Vincent GuigueUPMC - LIP6
Vincent Guigue Représentation et classification de textes 1/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Chaine de traitements générique
1 Importation d’un corpus- Gestion de différents formats
2 Transformation en sac de mots (+dictionnaire)- Sélection des mots pertinents
3 Apprentissage- Choix algorithmique
OPT Sélection de données
4 Inférence
- Projection de nouvelles données sur le même dictionnaire
Vincent Guigue Représentation et classification de textes 2/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
1. Importation des corpus
◦ Maitrise des outils sur les fichiers◦ Expressions régulières◦ Outils de sérialisation◦ Outils paramétriques (nltk)◦ Gestion du XML (dom, BeautifulSoup)◦ ... la base de la programmation / documentation
Vincent Guigue Représentation et classification de textes 3/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Lecture de fichiers / manipulations de base
◦ Lecture en bloc & pb d’encodage (python 2)import codecsw i th codecs . open ( f i l e name , encod ing=" ut f−8" ) as f :
re tu rn f . r ead ( )
◦ Manipulation & expressions régulièresimport r es = " b l a b l a b l a "r e . sub ( "\ s " , "␣" , r e . sub ( "\ s (?=\ s ) " , "␣" , s ) )
◦ Chargement/manipulation XMLimport Beau t i f u l Soupf = open ( ’ tmp . xml ’ , ’ r ’ )data= f . r ead ( )soup = Beau t i f u l Soup . Beau t i f u l Soup ( data )c on t en t s = [ t . t e x t f o r t i n soup . f i n d A l l ( ’ con t en t ’ ) ]l a b e l = soup . f i n d A l l ( ’TOPICS ’ )
Vincent Guigue Représentation et classification de textes 4/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Manipulations de base (suite)
◦ Chargement automatique (pour les formats adaptés) :import n l t k . co rpus . r e a d e r as ptr d r = pt . Ca t e go r i z e dP l a i n t e x tCo r pu sRead e r ( path2data , \
’ .∗/[0−9]+ ’ , encod ing=’ l a t i n 1 ’ , \ca t_pat te rn=’ ( [ \w\. ]+)/∗ ’ )
docs = [ [ r d r . raw ( f i l e i d s =[ f ] ) f o r f i n r d r . f i l e i d s ( c ) ] \f o r c i n r d r . c a t e g o r i e s ( ) ]
Vincent Guigue Représentation et classification de textes 5/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
2. Sac de mots (crédit Sergio Jimenez)
Vincent Guigue Représentation et classification de textes 6/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
2.1 Codage
Outil (exemple)
s k l e a r n . f e a t u r e_e x t r a c t i o n . t e x t . Coun tVec t o r i z e r ( i nput=’ con t en t ’ ,encod ing=’ ut f−8 ’ , decode_er ro r=’ s t r i c t ’ ,s t r i p_a c c e n t s=None , l owe r c a s e=True ,p r e p r o c e s s o r=None , t o k e n i z e r=None ,stop_words=None , token_patte rn=’ (? u )\b\w\w+\b ’ ,ngram_range=(1 , 1 ) , a n a l y z e r=’ word ’ , max_df=1.0 , min_df=1,max_features=None , v o c abu l a r y=None ,b i n a r y=Fa l s e , dtype=<c l a s s ’ numpy . i n t 6 4 ’>)
bow = vec . f i t_ t r a n s f o rm ( co rpus )t r a n s f o rme r = t x t . T f i d fT r an s f o rme r ( u se_ id f=True , smooth_idf=True )bowtf = t r a n s f o rme r . f i t_ t r a n s f o rm (bow)
◦ Présentiel : (0,1)◦ Frequentiel : [0,1], somme d’un document à 1◦ Tf-idf (discriminant)
Vincent Guigue Représentation et classification de textes 7/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
2.2 Codage tf-idfLe codage tf-idf permet de faire apparaître les mots saillants,caractéristiques d’un document.
tfi,j =ni ,j∑k nk,j
, idfi = log|D|
|{d : ti ∈ d}|
D nb documentsni ,j tfi,j : occurences & fréquence de ti dans le document j .idfi : pourcentage des documents où ti apparaît (log de l’inverse).
1 le bonheur est dans le pré2 la mélodie du bonheur
le la du bonheur melodie est dans preidf 0 0.69 0.69 0 0.69 0.69 0.69 0.69
tf − doc1 0.33 0 0 0.17 0 0.17 0.17 0.17tf − doc2 0 0.25 0.25 0.25 0.25 0 0 0
http://fr.wikipedia.org/wiki/TF-IDFVincent Guigue Représentation et classification de textes 8/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
2.3 Codage, traitement de plus haut niveau
Exemples :
◦ Stop Words :stop_words = [ ]f o r l i n l a nguage s :
f o r w i n s topwords . words ( l ) :stop_words . append (w. decode ( ’ u t f−8 ’ ) )
◦ Tokenizer :from n l t k import word_token izefrom n l t k . stem import Snowbal lStemmer
stemmer = Snowbal lStemmer ( ’ f r e n c h ’ )def t o k e n i z e ( t e x t ) :
t okens = word_token ize ( t e x t )stems = [ stemmer . stem ( i tem ) f o r i t em i n tokens ]re tu rn stems
Vincent Guigue Représentation et classification de textes 9/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
2.3 Codage, traitement de plus haut niveau
Exemples :
◦ Stop Words :stop_words = [ ]f o r l i n l a nguage s :
f o r w i n s topwords . words ( l ) :stop_words . append (w. decode ( ’ u t f−8 ’ ) )
◦ Tokenizer :from n l t k import word_token izefrom n l t k . stem import Snowbal lStemmer
stemmer = Snowbal lStemmer ( ’ f r e n c h ’ )def t o k e n i z e ( t e x t ) :
t okens = word_token ize ( t e x t )stems = [ stemmer . stem ( i tem ) f o r i t em i n tokens ]re tu rn stems
Vincent Guigue Représentation et classification de textes 9/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Codage, sur un exemple
co rpus = [ "La␣ v o i t u r e ␣ e s t ␣au␣ garage " ,\"L ’ au tomob i l e ␣ e s t ␣une␣ v o i t u r e " ,\" Les ␣ v o i t u r e s ␣ r o u l e n t ␣ su r ␣ l a ␣ r ou t e " ,\" Les ␣ ga rage s ␣ f o n c t i o n n e n t ␣ pour ␣ l e s ␣ v o i t u r e s
e t ␣ l e s ␣ camions , ␣mais ␣ pas ␣ dans ␣ l a ␣ savane " ,\"Le␣ l i o n ␣ se ␣ b a l l a d e ␣ dans ␣ l a ␣ savane " ,\"La␣ g i r a f e ␣ e s t ␣ a u s s i ␣ dans ␣ l a ␣ savane " ,\"La␣ j e e p ␣ r o u l e ␣ durant ␣ l e ␣ s a f a r i " ]
Vincent Guigue Représentation et classification de textes 10/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Codage, sur un exemple
auau
ssi
bal
lade
cam
ions
dan
sdura
nt
est et
fonct
ionnen
tgar
age
gar
ages
gir
afe
jeep
l'auto
mob
ile la le les
lion
mai
spas
pou
rro
ule
roule
nt
route
safa
risa
vane se sur
une
voiture
voiture
s
0123456
Par comptageco rpus = [ "La␣ v o i t u r e ␣ e s t ␣au␣ garage " ,\
"L ’ au tomob i l e ␣ e s t ␣une␣ v o i t u r e " ,\" Les ␣ v o i t u r e s ␣ r o u l e n t ␣ su r ␣ l a ␣ r ou t e " ,\" Les ␣ ga rage s ␣ f o n c t i o n n e n t ␣ pour ␣ l e s ␣ v o i t u r e s
e t ␣ l e s ␣ camions , ␣mais ␣ pas ␣ dans ␣ l a ␣ savane " ,\"Le␣ l i o n ␣ se ␣ b a l l a d e ␣ dans ␣ l a ␣ savane " ,\"La␣ g i r a f e ␣ e s t ␣ a u s s i ␣ dans ␣ l a ␣ savane " ,\"La␣ j e e p ␣ r o u l e ␣ durant ␣ l e ␣ s a f a r i " ]
Vincent Guigue Représentation et classification de textes 10/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Codage, sur un exemple
0 1 2 3 4 5 6
0
1
2
3
4
5
6
0
2
4
6
8
10
12
14
16
18
20
co rpus = [ "La␣ v o i t u r e ␣ e s t ␣au␣ garage " ,\"L ’ au tomob i l e ␣ e s t ␣une␣ v o i t u r e " ,\" Les ␣ v o i t u r e s ␣ r o u l e n t ␣ su r ␣ l a ␣ r ou t e " ,\" Les ␣ ga rage s ␣ f o n c t i o n n e n t ␣ pour ␣ l e s ␣ v o i t u r e s
e t ␣ l e s ␣ camions , ␣mais ␣ pas ␣ dans ␣ l a ␣ savane " ,\"Le␣ l i o n ␣ se ␣ b a l l a d e ␣ dans ␣ l a ␣ savane " ,\"La␣ g i r a f e ␣ e s t ␣ a u s s i ␣ dans ␣ l a ␣ savane " ,\"La␣ j e e p ␣ r o u l e ␣ durant ␣ l e ␣ s a f a r i " ]
Vincent Guigue Représentation et classification de textes 10/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Codage, sur un exemple
auss
i
bal
lade
cam
ions
dura
nt
fonct
ionnen
tgar
age
gar
ages
gir
afe
jeep
l'auto
mob
ile les
lion
roule
roule
nt
route
safa
ri
sava
ne
voiture
voiture
s
0
1
2
3
4
5
6
Par comptage + élimination StopWordsco rpus = [ "La␣ v o i t u r e ␣ e s t ␣au␣ garage " ,\
"L ’ au tomob i l e ␣ e s t ␣une␣ v o i t u r e " ,\" Les ␣ v o i t u r e s ␣ r o u l e n t ␣ su r ␣ l a ␣ r ou t e " ,\" Les ␣ ga rage s ␣ f o n c t i o n n e n t ␣ pour ␣ l e s ␣ v o i t u r e s
e t ␣ l e s ␣ camions , ␣mais ␣ pas ␣ dans ␣ l a ␣ savane " ,\"Le␣ l i o n ␣ se ␣ b a l l a d e ␣ dans ␣ l a ␣ savane " ,\"La␣ g i r a f e ␣ e s t ␣ a u s s i ␣ dans ␣ l a ␣ savane " ,\"La␣ j e e p ␣ r o u l e ␣ durant ␣ l e ␣ s a f a r i " ]
Vincent Guigue Représentation et classification de textes 10/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Codage, sur un exemple
0 1 2 3 4 5 6
0
1
2
3
4
5
6
0.0
1.5
3.0
4.5
6.0
7.5
9.0
10.5
12.0
13.5
co rpus = [ "La␣ v o i t u r e ␣ e s t ␣au␣ garage " ,\"L ’ au tomob i l e ␣ e s t ␣une␣ v o i t u r e " ,\" Les ␣ v o i t u r e s ␣ r o u l e n t ␣ su r ␣ l a ␣ r ou t e " ,\" Les ␣ ga rage s ␣ f o n c t i o n n e n t ␣ pour ␣ l e s ␣ v o i t u r e s
e t ␣ l e s ␣ camions , ␣mais ␣ pas ␣ dans ␣ l a ␣ savane " ,\"Le␣ l i o n ␣ se ␣ b a l l a d e ␣ dans ␣ l a ␣ savane " ,\"La␣ g i r a f e ␣ e s t ␣ a u s s i ␣ dans ␣ l a ␣ savane " ,\"La␣ j e e p ␣ r o u l e ␣ durant ␣ l e ␣ s a f a r i " ]
Vincent Guigue Représentation et classification de textes 10/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Codage, sur un exemple
,
auss
bal
lad
cam
ion
dan dur
fonct
ionnen
t
gar
ag
gir
af
jeep
l'auto
mob
il
lion
roul
roule
nt
rout
safa
r
sava
n
voitur
0
1
2
3
4
5
6
Par comptage + élimination StopWords + Stemmingco rpus = [ "La␣ v o i t u r e ␣ e s t ␣au␣ garage " ,\
"L ’ au tomob i l e ␣ e s t ␣une␣ v o i t u r e " ,\" Les ␣ v o i t u r e s ␣ r o u l e n t ␣ su r ␣ l a ␣ r ou t e " ,\" Les ␣ ga rage s ␣ f o n c t i o n n e n t ␣ pour ␣ l e s ␣ v o i t u r e s
e t ␣ l e s ␣ camions , ␣mais ␣ pas ␣ dans ␣ l a ␣ savane " ,\"Le␣ l i o n ␣ se ␣ b a l l a d e ␣ dans ␣ l a ␣ savane " ,\"La␣ g i r a f e ␣ e s t ␣ a u s s i ␣ dans ␣ l a ␣ savane " ,\"La␣ j e e p ␣ r o u l e ␣ durant ␣ l e ␣ s a f a r i " ]
Vincent Guigue Représentation et classification de textes 10/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Codage, sur un exemple
0 1 2 3 4 5 6
0
1
2
3
4
5
6
0.0
0.8
1.6
2.4
3.2
4.0
4.8
5.6
6.4
co rpus = [ "La␣ v o i t u r e ␣ e s t ␣au␣ garage " ,\"L ’ au tomob i l e ␣ e s t ␣une␣ v o i t u r e " ,\" Les ␣ v o i t u r e s ␣ r o u l e n t ␣ su r ␣ l a ␣ r ou t e " ,\" Les ␣ ga rage s ␣ f o n c t i o n n e n t ␣ pour ␣ l e s ␣ v o i t u r e s
e t ␣ l e s ␣ camions , ␣mais ␣ pas ␣ dans ␣ l a ␣ savane " ,\"Le␣ l i o n ␣ se ␣ b a l l a d e ␣ dans ␣ l a ␣ savane " ,\"La␣ g i r a f e ␣ e s t ␣ a u s s i ␣ dans ␣ l a ␣ savane " ,\"La␣ j e e p ␣ r o u l e ␣ durant ␣ l e ␣ s a f a r i " ]
Vincent Guigue Représentation et classification de textes 10/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Codage, sur un exemple
,
auss
bal
lad
cam
ion
dan dur
fonct
ionnen
t
gar
ag
gir
af
jeep
l'auto
mob
il
lion
roul
roule
nt
rout
safa
r
sava
n
voitur
0
1
2
3
4
5
6
Par comptage + élimination StopWords + Stemming + TFco rpus = [ "La␣ v o i t u r e ␣ e s t ␣au␣ garage " ,\
"L ’ au tomob i l e ␣ e s t ␣une␣ v o i t u r e " ,\" Les ␣ v o i t u r e s ␣ r o u l e n t ␣ su r ␣ l a ␣ r ou t e " ,\" Les ␣ ga rage s ␣ f o n c t i o n n e n t ␣ pour ␣ l e s ␣ v o i t u r e s
e t ␣ l e s ␣ camions , ␣mais ␣ pas ␣ dans ␣ l a ␣ savane " ,\"Le␣ l i o n ␣ se ␣ b a l l a d e ␣ dans ␣ l a ␣ savane " ,\"La␣ g i r a f e ␣ e s t ␣ a u s s i ␣ dans ␣ l a ␣ savane " ,\"La␣ j e e p ␣ r o u l e ␣ durant ␣ l e ␣ s a f a r i " ]
Vincent Guigue Représentation et classification de textes 10/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Codage, sur un exemple
0 1 2 3 4 5 6
0
1
2
3
4
5
6
0.00
0.15
0.30
0.45
0.60
0.75
0.90
co rpus = [ "La␣ v o i t u r e ␣ e s t ␣au␣ garage " ,\"L ’ au tomob i l e ␣ e s t ␣une␣ v o i t u r e " ,\" Les ␣ v o i t u r e s ␣ r o u l e n t ␣ su r ␣ l a ␣ r ou t e " ,\" Les ␣ ga rage s ␣ f o n c t i o n n e n t ␣ pour ␣ l e s ␣ v o i t u r e s
e t ␣ l e s ␣ camions , ␣mais ␣ pas ␣ dans ␣ l a ␣ savane " ,\"Le␣ l i o n ␣ se ␣ b a l l a d e ␣ dans ␣ l a ␣ savane " ,\"La␣ g i r a f e ␣ e s t ␣ a u s s i ␣ dans ␣ l a ␣ savane " ,\"La␣ j e e p ␣ r o u l e ␣ durant ␣ l e ␣ s a f a r i " ]
Vincent Guigue Représentation et classification de textes 10/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Codage, sur un exemple
,
auss
bal
lad
cam
ion
dan dur
fonct
ionnen
t
gar
ag
gir
af
jeep
l'auto
mob
il
lion
roul
roule
nt
rout
safa
r
sava
n
voitur
0
1
2
3
4
5
6
Par comptage + élimination StopWords + Stemming + TF +IDFco rpus = [ "La␣ v o i t u r e ␣ e s t ␣au␣ garage " ,\
"L ’ au tomob i l e ␣ e s t ␣une␣ v o i t u r e " ,\" Les ␣ v o i t u r e s ␣ r o u l e n t ␣ su r ␣ l a ␣ r ou t e " ,\" Les ␣ ga rage s ␣ f o n c t i o n n e n t ␣ pour ␣ l e s ␣ v o i t u r e s
e t ␣ l e s ␣ camions , ␣mais ␣ pas ␣ dans ␣ l a ␣ savane " ,\"Le␣ l i o n ␣ se ␣ b a l l a d e ␣ dans ␣ l a ␣ savane " ,\"La␣ g i r a f e ␣ e s t ␣ a u s s i ␣ dans ␣ l a ␣ savane " ,\"La␣ j e e p ␣ r o u l e ␣ durant ␣ l e ␣ s a f a r i " ]
Vincent Guigue Représentation et classification de textes 10/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Codage, sur un exemple
0 1 2 3 4 5 6
0
1
2
3
4
5
6
0.00
0.15
0.30
0.45
0.60
0.75
0.90
co rpus = [ "La␣ v o i t u r e ␣ e s t ␣au␣ garage " ,\"L ’ au tomob i l e ␣ e s t ␣une␣ v o i t u r e " ,\" Les ␣ v o i t u r e s ␣ r o u l e n t ␣ su r ␣ l a ␣ r ou t e " ,\" Les ␣ ga rage s ␣ f o n c t i o n n e n t ␣ pour ␣ l e s ␣ v o i t u r e s
e t ␣ l e s ␣ camions , ␣mais ␣ pas ␣ dans ␣ l a ␣ savane " ,\"Le␣ l i o n ␣ se ␣ b a l l a d e ␣ dans ␣ l a ␣ savane " ,\"La␣ g i r a f e ␣ e s t ␣ a u s s i ␣ dans ␣ l a ␣ savane " ,\"La␣ j e e p ␣ r o u l e ␣ durant ␣ l e ␣ s a f a r i " ]
Vincent Guigue Représentation et classification de textes 10/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Codage, sur un exemple
,
au
auss
bal
lad
cam
ion
dan dur
est et
fonct
ionnen
tgar
aggir
afje
epl'a
uto
mob
il la le
lion
mai
spas
pou
rro
ul
roule
nt
rout
safa
rsa
van se sur
une
voitur
0123456
Par comptage + Stemming + TF + IDFco rpus = [ "La␣ v o i t u r e ␣ e s t ␣au␣ garage " ,\
"L ’ au tomob i l e ␣ e s t ␣une␣ v o i t u r e " ,\" Les ␣ v o i t u r e s ␣ r o u l e n t ␣ su r ␣ l a ␣ r ou t e " ,\" Les ␣ ga rage s ␣ f o n c t i o n n e n t ␣ pour ␣ l e s ␣ v o i t u r e s
e t ␣ l e s ␣ camions , ␣mais ␣ pas ␣ dans ␣ l a ␣ savane " ,\"Le␣ l i o n ␣ se ␣ b a l l a d e ␣ dans ␣ l a ␣ savane " ,\"La␣ g i r a f e ␣ e s t ␣ a u s s i ␣ dans ␣ l a ␣ savane " ,\"La␣ j e e p ␣ r o u l e ␣ durant ␣ l e ␣ s a f a r i " ]
Vincent Guigue Représentation et classification de textes 10/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Codage, sur un exemple
0 1 2 3 4 5 6
0
1
2
3
4
5
6
0.00
0.15
0.30
0.45
0.60
0.75
0.90
co rpus = [ "La␣ v o i t u r e ␣ e s t ␣au␣ garage " ,\"L ’ au tomob i l e ␣ e s t ␣une␣ v o i t u r e " ,\" Les ␣ v o i t u r e s ␣ r o u l e n t ␣ su r ␣ l a ␣ r ou t e " ,\" Les ␣ ga rage s ␣ f o n c t i o n n e n t ␣ pour ␣ l e s ␣ v o i t u r e s
e t ␣ l e s ␣ camions , ␣mais ␣ pas ␣ dans ␣ l a ␣ savane " ,\"Le␣ l i o n ␣ se ␣ b a l l a d e ␣ dans ␣ l a ␣ savane " ,\"La␣ g i r a f e ␣ e s t ␣ a u s s i ␣ dans ␣ l a ␣ savane " ,\"La␣ j e e p ␣ r o u l e ␣ durant ␣ l e ␣ s a f a r i " ]
Vincent Guigue Représentation et classification de textes 10/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Exemples de tâches
◦ Classification thématique- classer les news sur un portail d’information,- trier des documents pour la veille sur internet,- présenter les résultats d’une requête
◦ Classification d’auteurs- review spam,- détection d’auteurs
◦ Information pertinente/non pertinente- filtrage personnalisé (à partir d’exemple), classifieur actif(évoluant au fil du temps)
- spam/non spam◦ Classification de sentiments
- documents positifs/négatifs, sondages en ligne
Vincent Guigue Représentation et classification de textes 11/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Naive Bayes
◦ Très rapide, interprétable :le classifieur historique pour les sacs de mots
◦ Modèle génératif :- ensemble des documents {di}i=1,...,N ,- documents = une suite de mots wj : di = (w1, . . . ,w|di |).- modèle Θc pour chaque classe de documents.- max de vraisemblance pour l’affectation
◦ Modélisation naive :P(di |Θc) =
∏|di |j=1 P(wj |Θc) =
∏|D|j=1 P(wj |Θc)x
ji
x ji décrit le nombre d’apparitions du mot j dans le document i
◦ Notation : P(wj |Θc)⇒ Θjc ,
Résolution de : Θc = argmaxΘ∑|C |
i=1∑|D|
j=1 xji logΘj
c
Solution : Θjc =
∑di∈C x ji∑
di∈C
∑j∈D x ji
Vincent Guigue Représentation et classification de textes 12/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Naive Bayes
◦ Très rapide, interprétable :le classifieur historique pour les sacs de mots◦ Modèle génératif :
- ensemble des documents {di}i=1,...,N ,- documents = une suite de mots wj : di = (w1, . . . ,w|di |).- modèle Θc pour chaque classe de documents.- max de vraisemblance pour l’affectation
◦ Modélisation naive :P(di |Θc) =
∏|di |j=1 P(wj |Θc) =
∏|D|j=1 P(wj |Θc)x
ji
x ji décrit le nombre d’apparitions du mot j dans le document i
◦ Notation : P(wj |Θc)⇒ Θjc ,
Résolution de : Θc = argmaxΘ∑|C |
i=1∑|D|
j=1 xji logΘj
c
Solution : Θjc =
∑di∈C x ji∑
di∈C
∑j∈D x ji
Vincent Guigue Représentation et classification de textes 12/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Naive Bayes
◦ Très rapide, interprétable :le classifieur historique pour les sacs de mots◦ Modèle génératif :
- ensemble des documents {di}i=1,...,N ,- documents = une suite de mots wj : di = (w1, . . . ,w|di |).- modèle Θc pour chaque classe de documents.- max de vraisemblance pour l’affectation
◦ Modélisation naive :P(di |Θc) =
∏|di |j=1 P(wj |Θc) =
∏|D|j=1 P(wj |Θc)x
ji
x ji décrit le nombre d’apparitions du mot j dans le document i
◦ Notation : P(wj |Θc)⇒ Θjc ,
Résolution de : Θc = argmaxΘ∑|C |
i=1∑|D|
j=1 xji logΘj
c
Solution : Θjc =
∑di∈C x ji∑
di∈C
∑j∈D x ji
Vincent Guigue Représentation et classification de textes 12/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Naive Bayes
◦ Très rapide, interprétable :le classifieur historique pour les sacs de mots◦ Modèle génératif :
- ensemble des documents {di}i=1,...,N ,- documents = une suite de mots wj : di = (w1, . . . ,w|di |).- modèle Θc pour chaque classe de documents.- max de vraisemblance pour l’affectation
◦ Modélisation naive :P(di |Θc) =
∏|di |j=1 P(wj |Θc) =
∏|D|j=1 P(wj |Θc)x
ji
x ji décrit le nombre d’apparitions du mot j dans le document i
◦ Notation : P(wj |Θc)⇒ Θjc ,
Résolution de : Θc = argmaxΘ∑|C |
i=1∑|D|
j=1 xji logΘj
c
Solution : Θjc =
∑di∈C x ji∑
di∈C
∑j∈D x ji
Vincent Guigue Représentation et classification de textes 12/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Naive Bayes (suite)
◦ Très simple à calculer (possibilité de travailler directement enbase de données)◦ Naturellement multi-classes,
inférence : argmaxc
|D|∑j=1
x ji log(Θjc)
Performance intéressante... Mais améliorable
◦ Extensions :- Robustesse : Θj
c =∑
di∈Cmx ji +α∑
di∈Cm
∑j∈D x j
i +α|D|
- Mots fréquents (stopwords) ... Bcp d’importance dans ladécision
le la du bonheur melodie est dans predoc1 2 0 0 1 0 1 1 1doc2 0 1 1 1 1 0 0 0
- pas d’aspect discriminant
Vincent Guigue Représentation et classification de textes 13/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Naive Bayes (suite)
◦ Très simple à calculer (possibilité de travailler directement enbase de données)◦ Naturellement multi-classes,
inférence : argmaxc
|D|∑j=1
x ji log(Θjc)
Performance intéressante... Mais améliorable◦ Extensions :
- Robustesse : Θjc =
∑di∈Cm
x ji +α∑
di∈Cm
∑j∈D x j
i +α|D|
- Mots fréquents (stopwords) ... Bcp d’importance dans ladécision
le la du bonheur melodie est dans predoc1 2 0 0 1 0 1 1 1doc2 0 1 1 1 1 0 0 0
- pas d’aspect discriminant
Vincent Guigue Représentation et classification de textes 13/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Classifieur linéaire, mode de décision
◦ Données en sacs de mots, différents codages possibles :
X =
x11 x12 · · · x1d...
xN1 xN2 · · · xNd
Un document xi ∈ Rd
◦ Décision linéaire :- Décision linéaire simple :
f (xi ) = xiw =∑j
xijwj
- Régression logistique :
f (xi ) =1
1 + exp(−(xiw + b))
◦ Mode de fonctionnement bi-classe (extension parun-contre-tous)
Vincent Guigue Représentation et classification de textes 14/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Classifieur linéaire, mode de décision
◦ Données en sacs de mots, différents codages possibles :
X =
x11 x12 · · · x1d...
xN1 xN2 · · · xNd
Un document xi ∈ Rd
◦ Décision linéaire :- Décision linéaire simple :
f (xi ) = xiw =∑j
xijwj
- Régression logistique :
f (xi ) =1
1 + exp(−(xiw + b))
◦ Mode de fonctionnement bi-classe (extension parun-contre-tous)
Vincent Guigue Représentation et classification de textes 14/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Classifieur linéaire, mode de décision
◦ Données en sacs de mots, différents codages possibles :
X =
x11 x12 · · · x1d...
xN1 xN2 · · · xNd
Un document xi ∈ Rd
◦ Décision linéaire :- Décision linéaire simple :
f (xi ) = xiw =∑j
xijwj
- Régression logistique :
f (xi ) =1
1 + exp(−(xiw + b))
◦ Mode de fonctionnement bi-classe (extension parun-contre-tous)
Vincent Guigue Représentation et classification de textes 14/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Formulations et contraintes◦ Formulation
- Maximisation de la vraisemblance (yi ∈ {0, 1}) :L = ΠN
i=1P(yi = 1|xi )yi × [1− P(yi = 1|xi )]1−yi
Llog =N∑i=1
yi log(f (xi )) + (1− yi ) log(1− f (xi ))
- Minimisation d’un coût (yi ∈ {−1, 1}) :
C =N∑i=1
(f (xi )− yi )2
C =N∑i=1
(−yi f (xi ))+
◦ Passage à l’échelle : technique d’optimisation, gradientstochastique, calcul distribué
◦ Fléau de la dimensionnalité...
Vincent Guigue Représentation et classification de textes 15/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Fléau de la dimensionnalité
X =
x11 x12 · · · x1d...
xN1 xN2 · · · xNd
◦ d = 105,N = 104...◦ Distribution des mots en fonction de leurs fréquences :
0 50 100 150 200 250 300nb occurences
0
2
4
6
8
10
12lo
g n
b m
ots
◦ Construire un système pour bien classer tous les documentsproposés
Vincent Guigue Représentation et classification de textes 16/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Fléau de la dimensionnalité (suite)
◦ Il est souvent (toujours) possible de trouver des mots quin’apparaissent que dans l’une des classes de documents...◦ Il suffit de se baser dessus pour prendre une décision parfaite...
◦ Mais ces mots apparaissent ils dans les documents non vusjusqu’ici ? ? ?
Une experience amusante :◦ Reprendre un jeu de données étudié en MAPSI,◦ Ajouter des colonnes (=descripteurs) pour les données en
tirant des variables aléatoires◦ Les performances en apprentissage s’améliorent !◦ Mais les performances en test baissent...
Vincent Guigue Représentation et classification de textes 17/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Fléau de la dimensionnalité (suite)
◦ Il est souvent (toujours) possible de trouver des mots quin’apparaissent que dans l’une des classes de documents...◦ Il suffit de se baser dessus pour prendre une décision parfaite...◦ Mais ces mots apparaissent ils dans les documents non vus
jusqu’ici ? ? ?
Une experience amusante :◦ Reprendre un jeu de données étudié en MAPSI,◦ Ajouter des colonnes (=descripteurs) pour les données en
tirant des variables aléatoires◦ Les performances en apprentissage s’améliorent !◦ Mais les performances en test baissent...
Vincent Guigue Représentation et classification de textes 17/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Curse of dimensionalityDonnées :
6 4 2 0 2 4 66
4
2
0
2
4
6
0 5 10 15 20
0
5
10
15
+ ajout de dimensions aléatoires= évolution des perf.
0 20 40 60 80 100 120 140 160 180Dim. sup.
0.91
0.92
0.93
0.94
0.95
0.96
0.97
0.98
0.99
1.00
Tx r
eco
Vincent Guigue Représentation et classification de textes 18/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Réduire la dimensionnalité des données
◦ Regrouper les mots similaires◦ Utiliser des heuristiques/ressources linguistiques◦ Sélectionner l’information discriminante
Vincent Guigue Représentation et classification de textes 19/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Réduire la dimensionnalité des données
◦ Regrouper les mots similairesEtant donnée la représentation en sac de mots, il est (parfois)pénalisant de compter les occurrences de président etprésidents dans deux cases séparées... Nous allons donc traiterles mots du textes pour les ramener à leurs radicaux :
- mangeait, mangera, mangeoire,... → manger
Lemmatisation : approche basée sur un dictionnaire
efficace / il faut un dictionnaire...Exemple d’outil : treetagger (gratuit, récupérable sur internet)
Stemmatisation : approche statistique de suppression des suffixes
rapide, facile à utiliser / parfois approximatifcf outils fournis dans le projet
◦ Utiliser des heuristiques/ressources linguistiques◦ Sélectionner l’information discriminante
Vincent Guigue Représentation et classification de textes 19/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Réduire la dimensionnalité des données
◦ Regrouper les mots similaires◦ Utiliser des heuristiques/ressources linguistiques
- Elimination des mots peu fréquents- Elimination des mots courts (articles...)- Elimination de tous les éléments inutiles a priori (chiffres...)- Elimination des stopwords (listes multilingues disponibles dansnltk)
◦ Sélectionner l’information discriminante
Vincent Guigue Représentation et classification de textes 19/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Réduire la dimensionnalité des données
◦ Regrouper les mots similaires◦ Utiliser des heuristiques/ressources linguistiques◦ Sélectionner l’information discriminante
Il est possible d’utiliser des critères discriminants (donnant unscore à chaque mot) pour choisir un sous-ensemble dudictionnaire sur lequel travailler.Parmi les classiques :
- Saillance : Stf−idf (i) =∑
j tf−idf(i,j)
|{tf−idf(i,j)6=0}| (mot i , doc j)
- Odds ratio : Sodds(i) = pi/(1−pi )qi/(1−qi ) = pi (1−qi )
qi (1−pi ) . (souvent utilisé enlog). Où pi est la probabilité d’observer le mot ti dans la classe1 et qi est la probabilité d’observer ti dans la classe 2.
- Critère(s) de Fisher, Mallows... Notion de séparabilité
Vincent Guigue Représentation et classification de textes 19/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Régularisation
Idée :Ajouter un terme sur la fonction coût (ou vraisemblance) pourpénaliser le nombre (ou le poids) des coefficients utilisés pour ladécision
Llog =N∑i=1
yi log(f (xi )) + (1− yi ) log(1− f (xi ))−λ‖w‖α
C =N∑i=1
(f (xi )− yi )2+λ‖w‖α, C =
N∑i=1
(−yi f (xi ))++λ‖w‖α
Avec : ‖w‖2 =∑
j w2j ou ‖w‖1 =
∑j |wj |
◦ Etude de la mise à jour dans un algorithme de gradient◦ On se focalise sur les coefficients vraiment important
Vincent Guigue Représentation et classification de textes 20/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Locuteurs, Chirac/Mitterrand
Données d’apprentissage :
<100:1:C> Quand je dis chers amis, ...<100:2:C> D’abord merci de cet ......<100:14:M> Et ce sentiment ...
Le format est le suivant : <ID-Discours :ID-phrase :Etiquette>, C→ Chirac, M → MitterrandDonnées de test, sans les étiquettes :
<100:1> Quand je dis chers amis, ...<100:2> D’abord merci de cet ......
Vincent Guigue Représentation et classification de textes 21/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Revues de films
Crédit : Sergio Jimenez
Vincent Guigue Représentation et classification de textes 22/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Revues de films
Crédit : Sergio Jimenez
Vincent Guigue Représentation et classification de textes 23/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Revues de films
Crédit : Sergio JimenezVincent Guigue Représentation et classification de textes 24/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Compétition
UE TAL :Obligation de participer à une mini-compétition sur les 2 jeux dedonnées
⇒ Buts :
◦ Traiter des données textuelles ( !)◦ Travail minimum d’optimisation des classifieurs◦ Post-traitements & interactions (minimales) avec un système
externe
Vincent Guigue Représentation et classification de textes 25/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Comment évaluer les performances ?
◦ Métriques d’évaluation- Taux de reconnaissance Ncorrect
Ntot
- Précision (dans la classe c) Nccorrect
Ncpredits
- Rappel (dans la classe c) (=couverture) Nccorrect
Nctot
- F1 (1+β2)precision·rappelβ2precision+rappel
- ROC (faux pos VS vrai pos) / AUC◦ Procédures
- Apprentissage/test
- Validation croisée- Leave-one-out
Vincent Guigue Représentation et classification de textes 26/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Analyse qualitative
Regarder les poids des mots du classifieur :
annoying 37.2593another -8.458any 3.391anyone -1.4651anything -15.5326anyway 29.2124apparently 12.5416...attention -1.2901audience 1.7331audiences -3.7323away -14.9303awful 30.8509
Vincent Guigue Représentation et classification de textes 27/28
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils
Ressources (python)
◦ nltk- Corpus, ressources, listes de stopwords- quelques classifieurs (mais moins intéressant que sklearn)
◦ gensim- Très bonne implémentation (rapide)- Outils pour la sémantique statistique (cours suivants)
◦ sklearn
- Boite à outils de machine learning (SVM, Naive Bayes,regression logistique ...)
- Evaluations diverses- Quelques outils pour le texte (simples mais pas très optimisés)
Vincent Guigue Représentation et classification de textes 28/28