Vous êtes sur la page 1sur 10

UNIVERSITE LUMIERE LYON 2 DEPARTEMENT DIS

Projet en Fouille de Texte


Etude sur la modlisation dopinions

Patrizia Paulus
21/03/2014


















1


Contenu
I. Introduction .......................................................................................................................................................... 2
II. Prsentation des donnes .................................................................................................................................... 2
III. Prtraitement des donnes .............................................................................................................................. 3
IV. La slection des variables .................................................................................................................................. 3
V. La modlisation ..................................................................................................................................................... 5
1. Les modles ........................................................................................................................................................... 5
a. Arbre de classification ....................................................................................................................................... 5
b. Classifieur baysien naf .................................................................................................................................... 5
c. K-nearest neighbours (K-NN) ............................................................................................................................ 5
d. Rseau de neurones artificiels .......................................................................................................................... 5
e. Rgression logistique ........................................................................................................................................ 5
2. Lchantillon test et mthodes de lvaluation .................................................................................................... 5
VI. Rsultats ............................................................................................................................................................ 6
VII. Conclusion ......................................................................................................................................................... 6
VIII. Bibliographie ..................................................................................................................................................... 9
IX. Annexe .............................................................................................................................................................. 7















2


I. Introduction
Le projet que je vais traiter dans ce rapport utilisera des outils de fouille de texte et de fouille de donnes. Il
sappuie sur un chantillon de tweets en anglais qui contient des opinions positives et ngatives ainsi que des
opinions neutres.
Le but du projet est la construction dun classifieur permettant de distinguer entre les opinions positives et
ngatives. Pour cela, un prtraitement adquat du texte tait ncessaire. Ensuite le texte peut tre utilis pour
apprendre un modle de classification supervise.
Pour mener bien ce travail, jai utilis le logiciel de statistique R et en particulier le package du text mining {tm}.
Ce package permet deffectuer tous les oprations dont on a besoin pour prtraiter et fouiller un texte.
Dabord je vais prsenter les donnes et donner quelques statistiques sur lchantillon. Aprs je vais montrer
comment prtraiter les messages twitter avec R. Ensuite, je vais prsenter chaque modle utilis pour la
classification des messages et les rsultats avant de conclure. Pour lvaluation, je vais utiliser un chantillon test
et calculer le taux derreur.

II. Prsentation des donnes
Les tweets sont des messages courts limits 140 caractres provenant du rseau social Twitter. Les donnes
utilises sont issues de la comptition internationale SemEval de 2013. Ils contiennent un chantillon de 10 404
tweets en anglais. Ces tweets expriment chacun des opinions et sont tiquets selon ces trois classes : ngatives
(0), positives (2) ou neutres (1).
Pour simplifier la classification, la classe des opinions neutres sera enleve plus tard pour se concentrer
uniquement sur les opinions ngatives et positives. Mais tout dabord, je vais prsenter quelques statistiques sur
lchantillon de tous les messages twitter que jai ralis aprs avoir prtrait le texte.
La classe des opinions ngatives contient 8892 termes dans 1634 tweets. La classe des opinions neutres contient
21 724 termes et il y a 4911 tweets pour cette classe. Dans la classe des opinions positives on trouve 17129
termes et 3859 tweets. On voit que la classe des opinions positives est surreprsente. Elle prsente
3859/(3859+1634) = 0.7018 soit 70% des tweets positives et ngatives. On verra dans la suite que cela va
affecter le rsultat et lvaluation de la classification.
Aprs avoir filtr les tweets selon lopinion positive et ngative on peut trouver les mots les plus frquents dans
ces deux classes. Une reprsentation de la frquence des mots en forme de nuage de mots se trouve en annexe
(package WordCloud).





3


III. Prtraitement des donnes
Le prtraitement du texte est une tape indispensable dans la fouille de texte. Je me suis servie du package {tm}
dans R pour traiter les messages
Jai charg le fichier texte dans Excel pour avoir un tableau avec deux colonnes, une pour les opinions et une
pour les tweets. Ensuite jai charg le fichier Excel dans R et jai retir la classe des opinions neutres. Puis, jai
cr le corpus du texte. Ceci est un objet dans R qui permet lanalyse et le traitement des textes.
Pour prtraiter les tweets, jai utilis la fonction tm_map qui prend en entre le corpus et le traitement
effectuer. Ces oprations permettent denlever les signes de ponctuation, de passer les majuscules en
minuscule, denlever les chiffres et lespace blanc. Ils permettent galement dliminer des termes trs frquents
mais inutiles (the, and, it, etc.), appels stopword en anglais. Enfin, jai enlev les adresses des sites web trs
frquents dans les tweets. Pour simplifier ce prtraitement jai cr une fonction qui traite tous ces oprations
la fois.
Aprs le prtraitement, on a intrt crer la matrice terme-document avec la commande
TermDocumentMatrix. Cette matrice creuse, contenant des termes en colonnes et les tweets en lignes, nest
compose que des 1 ou 0 (prsence du terme dans le tweet ou pas de prsence). Dans ce projet, la matrice
terme-document contient 12825 termes (somme des termes, aprs le prtraitement, des opinions positives et
ngatives dans les 5493 tweets). On peut drastiquement diminuer le nombre de termes dans la matrice en
enlevant les colonnes creuses avec la commande removeSparseTermes. De cette manire, les termes trs peu
frquents sont limins et linformation nest pas perdue. Ils restent donc 137 termes dans 5493 documents ; le
nombre des termes dans la matrice a diminu denviron 99%.
Enfin, jai transform cette matrice en data frame et ajout la colonne des opinions (contenant des 0 et 2) pour
passer ltape prochaine, la division des donnes en chantillon dapprentissage (deux-tiers des donnes) et
chantillon test.
IV. La slection des variables
Dans ce projet, on dispose de 137 variables restants. Ce sont les termes les plus frquents des tweet, mais pas
tous sont pertinents. Il est donc indispensable de slectionner les variables.
Deux approches principales pour la slection des variables existent. Premirement, lapproche Ranking, qui
classifie les variables selon un critre et slectionne ceux qui sont au-dessus dun certain seuil.
La seconde approche est celui qui cherche un sous-ensemble optimal de variables. Parmi ces mthodes on
trouve les wrapper (algorithme qui cherche automatiquement les variables optimales), lapproche filtre et
finalement la slection des variables dj comprise dans lalgorithme de classification (comme on la trouve dans
la rgression logistique).
Jai choisi la premire approche en me servant du package {FSelector}. Jai choisi cette mthode car elle me
semble intuitive et rapide. Il dispose dune fonction qui permet de classifier les variables selon la corrlation o
dautres critres au choix. Comme il sagit ici des variables qualitatives, on ne peut pas calculer la corrlation
immdiatement. Jai donc choisi le critre de lincertitude symtrique qui est une sorte de corrlation pour des
variables qualitatives. Les variables retenues sont: happi, fuck, bad, love, great, excit, dont, fun, good. Comme
on peut remarquer, les mots des opinions positives sont plus nombreux que les mots ngatifs. Cela vient
surement du fait que les opinions positives sont surreprsentes dans cet chantillon ou du fait que les opinions
positives sont plus facilement identifiables par des mots positifs et que les tweet ngatifs utilisent moins souvent
des mots ngatifs. Par la suite on verra quil est donc plus facile de classifier les tweets positifs.
4

Il reste alors un nombre de termes restreint que lon peut reprsenter avec une analyse des composantes
principales ou avec le modle cluster en dendrogramme (en annexe). Pour le dendrogramme et la
reprsentation de lACP, jai ajout des mots ngatifs pour quilibrer la distribution. On voit clairement le
regroupement des termes positifs et ngatifs.
Voici la projection des variables sur le plan factoriel:

Le cercle de corrlation permet de dtecter les groupes de variables qui se ressemblent ou qui sopposent.
On voit que les termes positifs (great, enjoy, happi, love) sont plutt corrls positivement ainsi que les
termes ngatifs (bad, fuck, dont). Les deux groupes de variables sopposent ; ils sont corrls
ngativement. Les mots tomorrow et excit participent le plus la formation de laxe.








5

V. La modlisation
1. Les modles
Dans cette section je vais prsenter les modles de classification que jai utiliss pour classifier les tweets et je
vais dcrire pourquoi jai choisi ces modles.
a. Arbre de classification
Jai dabord choisi un arbre de classification du package {rpart}. Les arbres sont facilement interprtables
et donnent un aperu des variables pertinentes. La slection des variables est intgre dans le processus
dapprentissage. Pour comparer les rsultats, jai dabord choisi lensemble des 137 variables pour
construire larbre et ensuite seulement les 9 variables retenues de la section prcdente.
b. Classifieur baysien naf
Le classifieur sappelle naf car il suppose que chaque variable (mots) est indpendante de lautre. Il est
connu pour sa simplicit et pour ses bonnes performances mme dans le cas o lhypothse de
lindpendance ne tient pas. Dans R, il existe la fonction naiveBayes du package {e1071}.
c. K-nearest neighbours (K-NN)
Comme lalgorithme baysien naf, il est simple calculer. Un algorithme proche de celui des K-NN existe
dans le package {RWeka} qui est la fonction IBk. Appel aussi lazy learner , son inconvnient est la
lenteur du calcul. Par contre, la vitesse augmente beaucoup grce la slection des variables.
d. Rseau de neurones artificiels
Je me suis appuy sur le package {nnet} dans R. Cette mthode ne calcule pas de probabilits.
e. Rgression logistique
Lavantage de la rgression logistique est quelle donne des probabilits utiles. De plus, on peut facilement
ajuster le seuil dtre positif ou ngatif.
2. Lchantillon test et mthodes de lvaluation
On dispose de deux diffrents chantillons de test. Le premier provient de la division de lchantillon de
lensemble de texte et contient ltiquetage 0 ou 2 pour les opinions. Lautre chantillon comporte des messages
diffrents que le premier et ne contient pas les classes.
Jai test les diffrents modles de lapprentissage supervis sur le premier chantillon test et jai valu les
rsultats avec le taux derreur et aprs avec la f-mesure. Comme dj remarqu dans la section prcdente, les
classes sont trs dsquilibres. Dans ce cas, la matrice de confusion et le taux derreur donnent souvent une
mauvaise valuation de la qualit de lapprentissage. La f-mesure, par contre, fournit des informations plus
intressantes que le taux derreur surtout quand les classes sont dsquilibres. Elle prend des valeurs entre 0 et
1. Le modle est autant mieux que la f-mesure est proche de 1. Jai galement calcul le rappel (le taux de vrais
positifs), la prcision (la proportion des vrais positifs parmi les individus classs positifs) et la spcificit. Le
classifieur par dfaut est son taux derreur taient aussi calcul pour comparer les performances des autres
modles.
Pour tester les modles sur le deuxime chantillon test (sans la colonne des opinions), jai d le prparer de la
mme manire dcrite en section III et IV. Jai appliqu le prtraitement des donnes et aprs jai slectionn les
termes pertinents avec FSelector et lincertitude symtrique. Par contre, les termes slectionns ntaient pas
les mmes que ceux slectionns pour lchantillon dapprentissage. Jai donc calcul lintersection des mots
communs entre lchantillon test sans opinions et lchantillon dapprentissage pour tester le modle.

6

VI. Rsultats et choix du modle
Les taux derreur de tous les modles varient entre 27% et 53%. Les performances des rseaux de neurones, de
larbre de classification, de la rgression logistique et de K-NN sont trs proches. Ces modles ont donn un taux
derreur autour de 29% et 27% pour la rgression logistique. Le modle avec la performance la plus faible est le
classifieur baysien naf avec un taux derreur proche de 53%. Pour les autres modles, les performances ne sont
pas beaucoup meilleures que le classifieur par dfaut qui donne un taux derreur de 28% pour la rgression
logistique par exemple.
Le calcul de la prcision et du rappel a rvl dautres informations importantes. Dans tous les modles, part
du modle baysien naf, le rappel tais toujours plus lev que la spcificit. Lalgorithme tait alors plus
capable trouver les vrais positifs que de trouver les vrais ngatifs. Lalgorithme baysien, par contre, classifie
mieux les individus positifs que les ngatifs. Il faudrait amliorer surtout la capacit du modle classifier les
opinions ngatives. Jai choisi le modle de la rgression logistique. Son taux derreur est le plus bas mais elle
tend aussi mieux classer les tweet ngatifs.
Tableau 1. Rsum des performances :
Modle Taux derreur Spcificit Rappel Prcision F-Mesure
Arbre 0.2845 0.0628 0.9778 0.7218 0.8305
Baysien naf 0.5281 0.9619 0.2748 0.9472 0.4261
K-NN 0.2725 0.1142 0.9739 0.7323 0.8360
Rseau des neurones 0.2736 0.1123 0.9732 0.7317 0.8353
Rgression logistique 0.2708 0.1238 0.9724 0.7341 0.8366

VII. Conclusion et critiques
En conclusion, on peut remarquer que les performances des modles sont trs similaires part celle de
lalgorithme baysien naf. Il semble que lhypothse de lindpendance des mots ne tient pas. Le modle qui
daprs le Tableau 1 performe le mieux, est la rgression logistique. Elle ne reprsente pas seulement le taux
derreur le moins lev, mais aussi une spcificit lgrement suprieure.
La capacit des modles classer les tweet positifs et trs leve en dpit de la classification des tweet ngatifs
qui eux sont aussi trop souvent class comme positifs (cf. rappel et spcificit). Une source possible de ce
problme sont les donnes elles-mmes. Les tweets positifs sont largement surreprsentes par rapport au
tweets ngatifs et la slection des variables donne galement un nombre de mots positifs suprieur aux nombre
de mots ngatifs.
Pour augmenter la capacit des classifieurs il serait intressant dtudier des bi-grammes au lieu des mots
uniques. Une possibilit envisager serait de considrer un mot positif et ce mme mot qui se transforme en
mot ngatif avec une ngation, par exemple good et no good .
Une autre question qui se pose est comment dterminer le bon nombre de variables slectionner. On peut se
demander si la mthode Ranking est la bonne voie ou sil est judicieux de choisir plus de variables avec une autre
dmarche.


7


VIII. Annexe

1. Word cloud
Opinions ngative :


Opinions positives :






8


2. Arbre de classification (rpart)

3. Dendrogramme




9

IX. Bibliographie
http://en.wikibooks.org/wiki/Data_Mining_Algorithms_In_R/Dimensionality_Reduction/Feature_Selection#Ran
dom_Forest_Filter
https://sites.google.com/site/miningtwitter/questions/talking-about/wordclouds/wordcloud1
TDs et cours de text mining et de R de Ricco Rakotomalala.

Vous aimerez peut-être aussi