TAL: traitement automatique de la langue Représentation et...

51
Repr. de doc. Classification de documents Données (exemples) Evaluation/outils TAL: traitement automatique de la langue Représentation et classification de textes Vincent Guigue UPMC - LIP6 Vincent Guigue Représentation et classification de textes 1/28

Transcript of TAL: traitement automatique de la langue Représentation et...

Page 1: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 2: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 3: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 4: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 5: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 6: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 7: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 8: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 9: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 10: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 11: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 12: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 13: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 14: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 15: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 16: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 17: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 18: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 19: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 20: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 21: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 22: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 23: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 24: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 25: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 26: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 27: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 28: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 29: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 30: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 31: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 32: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 33: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 34: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 35: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 36: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 37: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 38: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 39: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 40: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 41: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 42: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 43: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 44: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 45: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 46: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 47: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 48: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 49: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 50: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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

Page 51: TAL: traitement automatique de la langue Représentation et ...webia.lip6.fr/~guigue/wikihomepage/uploads/Course/2017_C...2.3 Codage, traitement de plus haut niveau Exemples: StopWords:

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