23
L’ANALYSE DES SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films Année 2014-2015 F3B403A Fouille de données Mehdi ERRAKI Hatim HIDAR Lisa MALIPHOL

IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

Embed Size (px)

Citation preview

Page 1: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

L’ANALYSE DES SENTIMENTS

La détection des opinions et l’analyse des sentiments sur les critiques des films Année 2014-2015

F3B403A

Fouille de données

Mehdi ERRAKI Hatim HIDAR Lisa MALIPHOL

1, rue de l’Institut 75000 PARIS – France

Tél. +33 (0)1 00 00 00 00

Siret : 000 000 000 000 00 APE : 0000 A

www.mines-telecom.fr

Mines ParisTech Mines Albi Mines Alès

Mines Douai Mines Nantes

Mines Saint Étienne Télécom ParisTech Télécom Bretagne Télécom SudParis

Télécom Ecole de Management Télécom Lille1

Eurecom

Page 2: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

1

Sommaire

L’ANALYSE DES SENTIMENTS ............................................................................................. 1

A PROPOS ......................................................................................................................... 4

I. INTRODUCTION ....................................................................................................... 5

EMERGENCE DE L’ANALYSE DES SENTIMENTS ................................................................................. 5

OBJECTIF : CLASSIFICATION DES OPINIONS PAR APPRENTISSAGE AUTOMATIQUE ...................................... 5

II. COMPRENDRE LES ENJEUX METIERS ........................................................................ 5

1. OBJECTIFS OPERATIONNELS ............................................................................................. 5

2. ANALYSE DE LA SITUATION .............................................................................................. 6

3. OBJECTIFS DATA MINING ................................................................................................ 6

4. PLAN DU PROJET ........................................................................................................... 7

III. COMPRENDRE LES DONNEES ................................................................................... 7

1. RECUPERATION DU CORPUS ............................................................................................. 7

2. DESCRIPTION DU CORPUS ............................................................................................... 7

3. DESCRIPTION DES DOCUMENTS ........................................................................................ 8

4. EXPLORATION DU CORPUS .............................................................................................. 8

IV. ITERATION 1 : SACS DE MOTS BASIQUE (OCC OU FREQ) AVEC/SANS STEMMING .... 10

1. PRETRAITEMENT - REPRESENTATION DES DOCUMENTS « BAG OF FEATURES » ............................. 10

2. PRETRAITEMENT - SELECTION DES « FEATURES » : AUCUN FILTRAGE AVEC/SANS STEMMING .......... 10

3. MODELISATION ET EVALUATION ..................................................................................... 11

a) Cross validation ............................................................................................................ 11

b) Evaluation : Neg f-score ................................................................................................ 11

V. ITERATION 2 - REDUCTION DES FEATURES - ELIMINATION DES STOP WORDS – PONCTUATION – NOMS PROPRES ................................................................................... 12

1. PRETRAITEMENT - ELIMINATION DES « STOPWORDS » ........................................................ 13

2. PRETRAITEMENT - ELIMINATION DES « NOMS PROPRES »..................................................... 13

3. PRETRAITEMENT - ELIMINATION DE LA « PONCTUATION » .................................................... 13

4. MODELISATION ET EVALUATION ..................................................................................... 13

VI. ITERATION 3 - REDUCTION DES FEATURES – SELECTION DES MEILLEURS MOTS – MEILLEURS ADJECTIFS/GERONDIFS (POS) ........................................................................ 14

1. PRETRAITEMENT - SELECTION DES « FEATURES » APPORTANT LE PLUS GRAND GAIN D’INFORMATION 14

Page 3: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

2

2. PRETRAITEMENT - SELECTION DES « ADJECTIFS/GERONDIFS » APPORTANT LE PLUS GRAND GAIN

D’INFORMATION .................................................................................................................. 14

3. MODELISATION ET EVALUATION ..................................................................................... 15

VII. ITERATION 4 – INTEGRATION DES BI-GRAMS ......................................................... 15

1. Prétraitement – Intégration des bi-grams .............................................................. 15

2. Modélisation ET EVALUATION ..................................................................................... 16

VIII. ITERATION 5 – SCORING TF-IDF ET/OU BI-GRAMS ET/OU MEILLEURS MOTS ........... 16

1. Prétraitement – sac de mots avec des scores TF-IDF ............................................... 16

2. Modélisation et évaluation .................................................................................... 17

IX. RESUME DES MEILLEURS RESULTATS ..................................................................... 17

X. CONCLUSION ET PERSPECITVES .............................................................................. 18

XI. SOURCES BIBLIOGRAPHIQUES ................................................................................ 20

ANNEXE .......................................................................................................................... 21

MÉTHODE SCORING CHI-SQUARE .................................................................................... 21

Page 4: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

3

Tables des figures

Figure 1 - mots plus fréquents du corpus .................................................................................. 8

Figure 2 - mots les plus discriminants du corpus ....................................................................... 9

Figure 3 - IT1 NB SVM ............................................................................................................... 12

Figure 4 - IT1 DT et RF ............................................................................................................. 12

Figure 5 - IT2 NB SVM .............................................................................................................. 13

Figure 6 – IT2 DT et RF .............................................................................................................. 14

Figure 7 - IT3 NB SVM ............................................................................................................... 15

Figure 8 - IT3 DT et RF ............................................................................................................. 15

Figure 9 - IT4 NB SVM ............................................................................................................... 16

Figure 10 - IT4 DT et RF ............................................................................................................ 16

Figure 11 - IT5 NB SVM RF ........................................................................................................ 17

Figure 12 - résumé des meilleurs résultats .............................................................................. 18

Page 5: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

4

A PROPOS

Ce document correspond au rapport d’un projet de text mining réalisés par des élèves en troisième année à Telecom Bretagne. Le code source en python des travaux réalisés sera publié sous github, et peut être fourni sous forme de fichier à la demande du lecteur.

Le sujet du projet est celui de l’analyse des sentiments.

Ce rapport est structuré conformément à la méthodologie CRISP-DM qui a été suivie pour réaliser le projet.

Page 6: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

5

I. INTRODUCTION

EMERGENCE DE L’ANALYSE DES SENTIMENTS

Avec l’émergence du web 2.0, les internautes sont de plus en plus invités à exprimer leurs opinions à propos de différents sujets dans des réseaux sociaux, des sites de e-commerce, des sites d’actualités, des forums, etc. La majeure partie de ces informations, qui décrivent des sentiments, devient l’objet d’études dans plusieurs domaines de recherche tel que : « La détection des opinions et l’analyse des sentiments ». La fouille des opinions ou l’analyse des sentiments est une tâche du traitement de langage naturel qui consiste à extraire de l’information à partir de données texte non structurées, et fait partie du vaste domaine de la classification de documents qui consiste à classifier des documents dans deux ou plusieurs catégories (thème, domaine…). Dans l’analyse des sentiments cette catégorisation correspond à la polarisation des opinions dégagées à partir du contenu du document qui peut être binaire (positif, négatif), ou avec plus de granularité (positif, neutre, négatif), ou encore (très positif, positif, neutre, négatif, très négatif).

OBJECTIF : CLASSIFICATION DES OPINIONS PAR APPRENTISSAGE AUTOMATIQUE

Les premières approches de détection de sentiments ont été basées sur des modèles générés par les Hommes, qui consistent à demander à des êtres humains de proposer par intuition deux listes de mots qui caractérisent des sentiments positifs et d’autres qui caractérisent des sentiments négatifs. Ensuite la prédiction du sentiment dégagé dans un nouveau document est basée sur des statistiques relatives à l’usage de ces mots uniquement [4]. Les travaux de Pang et Lee en 2002 ont démontré que les approches basées sur l’introspection et l’extraction d’informations à partir des statistiques tirées d’un corpus de documents s’avéraient plus efficace et permettaient de dévoiler certaines unités syntaxiques très révélatrices quant à la polarité des opinions, mais qui n’étaient pas intuitives, et donc négligées dans les approches basés sur l’intuition de l’homme. L’objectif de notre étude est de pouvoir appliquer et comparer certaines méthodes de classement de documents par apprentissage automatique pour la détection de la polarité binaire des sentiments, en prenant en considération et en comparant plusieurs types de prétraitements et de présentation des données textuelles. La méthodologie suivie est celle du CRISP-DM dont les différentes étapes correspondent aux différentes parties suivantes.

II. COMPRENDRE LES ENJEUX METIERS

1. OBJECTIFS OPERATIONNELS

Notre projet d’analyse de sentiment s’adresse aux entreprises qui souhaitent, au sein de leur département CRM, pouvoir :

tout d’abord détecter automatiquement la polarité des sentiments constatés dans un ensemble d’avis clients relatifs à un produit ou un service donné, et récoltés sous un format textuel non structuré depuis un support donné (site e-commerce, réseau social)

Page 7: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

6

les employés CRM dédiés sont ensuite automatiquement avertis sur tous les avis négatifs (uniquement)

Ces avis négatifs sont ensuite analysés un par un pour pouvoir remonter les raisons de la non satisfaction du client quant au service ou produit en question.

Les employés CRM n’étant pas avertis sur les avis détectés comme positifs (en général en très grand nombre par rapport aux avis négatifs), les enjeux seraient donc de

Maximiser le nombre d’avis négatifs pertinents et détectés par rapport à tous ceux qui sont réellement négatifs (rappel) : afin de ne pas rater des avis négatifs et donc éventuellement des soucis d’insatisfaction client à remonter.

Maximiser le nombre d’avis négatifs pertinents et détectés par rapport à tous ceux qui ont été détectés comme négatifs (précision) : afin de minimiser la charge de travail des employés CRM qui vont remonter les soucis constatés dans les avis négatifs.

Une combinaison de ces deux enjeux devrait donc servir de base pour l’évaluation des méthodes qui seront proposées.

2. ANALYSE DE LA SITUATION

Nous sommes un groupe de trois étudiants de Telecom Bretagne pour effectuer ce projet. Nous utilisons des bibliothèques libres disponibles sous python : NLTK et Scikit-learn, qui disposent de modules adaptés au traitement du langage naturel et à l’apprentissage automatique pour la classification des documents.

Compte tenu des profils techniques des différents membres du groupe, un travail minimal est requis pour la prise en main du langage python.

Cependant, un travail conséquent de recherche bibliographique est jugé nécessaire pour comprendre les grands enjeux du traitement du langage naturel, qui vont définir tous les prétraitements nécessaires à effectuer avant de pouvoir appliquer des modèles d’apprentissage automatique.

Quant aux modèles à appliquer, le cours suivi dans le cadre du niveau 4 de la filière ISA facilitera leur compréhension et leur mise en place.

Par conséquent, compte tenu des trois derniers éléments, le volume horaire consacré à ce projet a des fortes chances d’excéder celui qui lui y est dédié dans le cadre de la formation ISA. Sa détermination en amont est difficile, un travail itératif agile et adaptatif est donc nécessaire pour mener à bien ce projet.

Enfin, par rapport aux données qui sont utilisées, celles-ci sont en accès libre pour tout besoin académique ou de recherche, et nous ne souffrons donc d’aucune restriction légale.

3. OBJECTIFS DATA MINING

L’objectif de notre projet de fouille d’opinions est de pouvoir évaluer et comparer :

Plusieurs prétraitements de langage naturel à appliquer aux données d’apprentissage brutes (lors de l’apprentissage), ainsi qu’aux données brutes pour laquelle s’effectuera la prédiction en environnement de production (après le déploiement)

Certains modèles d’apprentissage automatique supervisé afin d’en dévoiler ceux qui sont les plus adaptés aux problématiques de prédiction de sentiments.

Page 8: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

7

Ces deux opérations de comparaison doivent s’effectuer de façon synergique afin de ressortir les meilleures combinaisons de prétraitement et d’apprentissage à proposer au client avec différents niveaux de fiabilité et de simplicité. Celui-ci pourra ensuite choisir celle qui répond le plus à son besoin.

La plus–value de notre proposition sera vérifiée si elle permet de répondre aux besoins métiers relevés dans la partie I-1.

4. PLAN DU PROJET

Le projet se déroule en deux grandes parties

recherches bibliographiques sur le traitement du langage naturel et état de l’art des travaux déjà effectuées

mise en place du projet selon la méthode CRISP-DM (dont la présente partie)

o itérativement (notamment à partir de CRISP-DM 3), mise en commun régulière et adaptation continue en fonction des résultats obtenus

III. COMPRENDRE LES DONNEES

1. RECUPERATION DU CORPUS

Le corpus utilisé provient des travaux de Bo Pang et Lillian Lee (2004) qui sont des enseignants chercheurs de l’université de Cornell. L’ensemble du corpus, intitulé « polarity dataset v2.0 », est téléchargeable sous forme d’un fichier compressé sur le lien suivant : http://www.cs.cornell.edu/People/pabo/movie-review-data/

Ce dernier contient deux sous-dossiers nommés « pos » et « neg », contenant chacun 1000 fichiers « .txt ».

Le corpus est également accessible depuis les deux bibliothèques Python utilisées.

2. DESCRIPTION DU CORPUS

Le corpus contient 2000 documents, correspondant chacun à une critique de presse en anglais d’un film donné. L’ensemble de ce document est uniformément distribué entre les deux catégories de sentiments : 1000 positifs et 1000 négatifs.

L’extraction de ces documents depuis les pages HTML originales des sites des critiques, ainsi que leur labélisation binaire ont été préalablement effectuées par des chercheurs du département Cornell/DCS/NLP en utilisant un système automatique de labellisation. Ce système se base sur la note donnée par le critique au film pour lequel il soumet la critique. Des règles ad-hoc sont utilisées pour cet extraction/labélisation:

Système 5 étoiles : positif si supérieur à 3 étoiles et demie/ négatif si inférieur à 2 étoiles

Système 4 étoiles : positif si supérieur à 3 étoiles / négatif si inférieur à une étoile et demie

Système de lettre a-e : positif si au « a » ou « b » / négatif au-delà de « d »

Page 9: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

8

La possibilité d’extraire/labéliser de façon automatique les critiques de films, ainsi que le nombre important de plateformes dédiées à la publication de ces critiques, en fait le choix numéro 1 pour la plupart des projets de classification de sentiments. Nous avons décidé de ne pas déroger à cette tendance, sachant que pour répondre aux besoins métiers relevés cités précédemment, un corpus avec des documents de taille moins grande aurait été plus adapté.

3. DESCRIPTION DES DOCUMENTS

Chaque document du corpus correspond à un ensemble de lignes séparées par des « \n » correspondant chacune au texte d’une phrase complète formaté en UTF-8.

Hormis la transformation des majuscules en minuscules, aucun autre prétraitement n’a préalablement été effectué. Le texte est donc dans son état brut et contient potentiellement tous les caractères UTF-8.

La longueur moyenne d’un document est de 1590 mots et de 88 phrases.

4. EXPLORATION DU CORPUS

Les différentes unités syntaxiques (mots, nombres, ponctuation) contenus dans le corpus serviront de base aux modèles d’apprentissage et correspondent aux variables explicatives. Une exploration de ces unités est donc nécessaire.

Le nombre des unités syntaxiques contenues dans le corpus : 1 583 820

Les unités syntaxiques les plus fréquentes (utilisation du module nltk.probability) :

Figure 1 - mots plus fréquents du corpus

Nous observons que les unités syntaxiques les plus fréquentes du corpus sont des marques de ponctuation, ainsi que des mots neutres comme les déterminants, les prépositions, les adjectifs possessifs et les pronoms possessifs. Un premier réflexe pourrait être de s’en débarrasser, mais il faudrait être vigilant quant à certaines unités qui peuvent s’avérer très révélatrices de la polarisation des opinions. Ceci nous conduit à l’exploration suivante :

Les unités apportant les plus grands gains d’information (utilisation du module nltk.collocations) :

0

10000

20000

30000

40000

50000

60000

70000

80000

Page 10: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

9

Un scoring utilisant le métrique « chi-square » disponible dans la classe « BigramAssocMeasures class » permet de calculer pour chaque unité syntaxique un score qui reflète le degré de présence de cette unité syntaxique dans une catégorie donnée par rapport à sa présence générale dans tout le corpus et par rapport aux nombres d’occurrences des autres mots de sa classe, ainsi le nombre total des occurrences des mots dans le corpus. Plus ce taux est élevé, plus le mot a tendance à être présent dans une seule classe tout en étant très déterminant comparé aux autres mots très fréquents dans sa classe. Le code source de cette méthode est donné en annexe.

Figure 2 - mots les plus discriminants du corpus

Nous constatons que :

les adjectifs négatifs sont ceux qui disposent du plus grand gain d’information : ce qui peut être expliqué par le fait qu’on a plus tendance à utiliser de la négation avec les adjectifs positifs, ce qui induit un certain équilibre dans la présence de ces adjectifs dans les deux classes, et qu’on n’a cependant tendance à utiliser des adjectifs négatifs que dans les avis négatifs

certaines marques de ponctuation « ?, ! » se révèlent très indicatrices : les interrogations et les exclamations accompagnent généralement des sentiments de non satisfaction. Elles ne doivent pas être négligées dans les modèles à construire.

il ne faudrait pas négliger les verbes : comme «waste »

un nettoyage des noms propres et des noms de films se révèle nécessaire : « godzilla », « jackie », « batman » , etc.

0

100

200

300

400

500

600

700

800

900

Page 11: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

10

IV. ITERATION 1 : SACS DE MOTS BASIQUE (OCC OU FREQ)

AVEC/SANS STEMMING

La suite des étapes de la méthodologie CRISP (prétraitement, modélisation et évaluation) sont exécutées sous forme de plusieurs itérations. Chacune des itérations correspond à un ensemble de prétraitements spécifiques qui ont été appliqués. Dans les prochaines parties nous détaillons les résultats obtenus dans chacune de ces itérations. Le lecteur peut directement se référer à la dernière partie du rapport qui résume les résultats obtenus.

1. PRETRAITEMENT - REPRESENTATION DES DOCUMENTS « BAG OF FEATURES »

Pang et lee (2002) avaient constaté que la manière la plus efficace de décrire un texte, pour une tâche de classement d’opinion, était sous forme de « sac de mots ».

Soient {f1,…,fm} un ensemble prédéfini de « features » correspondant à des unités syntaxiques données (mots, ponctuation, nombres).

Si le document d contient par exemple uniquement les features « f5 » et « f15 » parmi ceux prédéfinis, il sera représenté par [ (f5, True), (f15, True) ] ou sous forme de [ (f5, FREQ(f5) ) , (f15, FREQ(f15) ) ].

Dans la première itération deux représentations en sacs de mots sont explorées : avec l’occurrence binaire et avec la fréquence des occurrences dans le document.

Enfin, ces représentations seront programmées à la main sous la bibliothèque NLTK, ou en utilisant la fonction « vectorizer » sous SkLearn.

2. PRETRAITEMENT - SELECTION DES « FEATURES » : AUCUN FILTRAGE AVEC/SANS

STEMMING

Pour constituer la liste des « features » {f1,…,fm}, une première approche serait de

sélectionner tous les mots du corpus. Mais cela peut avoir certains inconvénients (complexité et lenteur du modèle, mots neutres, … )

Dans la première itération, les « features » correspondent à l’ensemble des unités syntaxiques présentes dans le corpus d’apprentissage. Une opération de « stemming » est aussi appliquée afin d’en évaluer l’effet.

Le stemming (ou la désuffixation) consiste à transformer des flexions en leur radical ou racine. La racine obtenue n’est pas forcément un mot lexicalement correct. La stemmisation permet notamment aussi de réduire la taille du sac de « features » et donc la taille du modèle.

Sous NLTK, le stemmer de Porter est utilisé.

La lemmatisation, qui consiste à réduire tous les mots à des lemmes de bases syntaxiquement corrects, ne sera pas utilisée ici. En effet, bien que très utile dans la classification des documents en général, ce prétraitement peut éliminer des préfixes de négation et inverser le sens d’un mot donné, et donc sa contribution à la polarité du sentiment dégagé.

Page 12: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

11

3. MODELISATION ET EVALUATION

a) Cross validation Au regard de la taille insuffisante de l’échantillon d’apprentissage (2000 documents) et de la taille importante de l’ensemble des « features », nous avons opté pour une évaluation des différents modèles retenus par le biais d’une validation croisée en cinq itérations avec un échantillonnage stratifié.

Les modèles retenus sont :

- Naives Bayes (mutlinomial)

- SVM (C=1, noyau linéaire, squared hinge loss)

- Un arbre de décision (entropy cutoff 0.05, support cutoff 10, depth cutoff 30)

- Une forêt décisionnelle (400 trees, max features 12)

Le tunning des différents modèles lorsqu’il est nécessaire se fait lors de la cross-validation.

Nous aurions pu écarter en amont un échantillon de test qui servirait de base à une évaluation indépendante du corpus d’apprentissage, et n’utiliser la cross-validation que pour optimiser les modèles. Mais vu la faible taille du corpus à notre disposition, et le grand nombre de features (plus d’un million), nous avons décidé de garder l’ensemble du corpus pour la cross-validation. Celle-ci servira donc d’une part à optimiser le paramétrage des modèles, et d’autre part à évaluer les différents modèles.

b) Evaluation : Neg f-score

Nous rappelons les enjeux métiers décrits dans l’étape 1 :

Maximiser le nombre d’avis négatifs pertinents et détectés par rapport à tous ceux qui sont réellement négatifs (rappel) : afin de ne pas rater des avis négatifs et donc éventuellement des soucis à remonter

Maximiser le nombre d’avis négatifs pertinents et détectés par rapport à tous ceux qui ont été détectés comme négatifs (précision) : afin de minimiser la charge de travail des employés CRM qui vont remonter les soucis constatés dans ces avis négatifs (surtout que les nombre d’avis positifs est généralement très grand par rapport au nombre d’avis négatifs)

Le f-score négatif combinant le rappel et la précision de la prédiction négative sert donc de ratio d’évaluation des différents modèles et/ou prétraitements. Les poids sont égaux entre le rappel et la précision.

Les résultats de la première itération sont donnés dans les tableaux suivants :

Page 13: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

12

méthode d'extraction des features

Occurrence vs

Fréquence

Naive Bayes SVM

Pos Fscore

Neg FScore

total Accuracy

Pos Fscore

Neg FScore

total Accuracy

b.o.w unigram basique

sans filtrage fréquence 0,811 0,814 0,817 0,829 0,828 0.829

b.o.w unigram basique

sans filtrage

occurrence 0.825 0.834 0.83 0,847 0.848 0.84

b.o.w unigram avec stemming

occurrence 0,819 0.826 0,821 0,843 0,844 0,844

Figure 3 - IT1 NB SVM

méthode d'extraction des features

Occurrence vs

Fréquence

arbre de décision forêt décisionnelle

Pos Fscore

Neg FScore

total Accuracy

Pos Fscore

Neg FScore

total Accuracy

b.o.w unigram basique

sans filtrage fréquence 0,649 0,581 0,617 0.7649 0.8099 0.79

b.o.w unigram basique

sans filtrage

occurrence 0,645 0,604 0,626 0.7644 0.8104 0.79

b.o.w unigram avec stemming

occurrence 0,631 0,611 0,602 0.7672 0.8049 0.788

Figure 4 - IT1 DT et RF

Nous observons d’ores et déjà qu’un sac de mots avec des occurrences binaires est plus performant qu’un sac de mots avec des fréquences d’occurrence.

Ensuite, nous remarquons que les performances des arbres de décision sont très faibles par rapport aux autres modèles. Une combinaison de 400 arbres augmente significativement les performances.

Par ailleurs, SVM donne les plus grandes performances avec un f-score de 0,848.

Enfin, le stemming semble diminuer légèrement les performances de chacun des modèles et sera donc écarté dans les prochaines itérations.

V. ITERATION 2 - REDUCTION DES FEATURES - ELIMINATION DES

STOP WORDS – PONCTUATION – NOMS PROPRES

Page 14: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

13

1. PRETRAITEMENT - ELIMINATION DES « STOPWORDS »

Les « Stopwords » sont les mots qui sont jugés neutres et inutiles car très communs (the, for, to,…). L’élimination de ces mots très fréquents permet aussi d’alléger la représentation des documents, et donc de diminuer la lenteur de l’apprentissage. Le module « NLTK.corpus » sur Python fournit un corpus de 128 mots anglais très communs.

2. PRETRAITEMENT - ELIMINATION DES « NOMS PROPRES »

Comme constaté lors de la phase de compréhension des données, certains noms propres se sont révélés comme apportant un gain important d’information, et ont donc une forte chance d’influencer la construction de nos modèles. Le module « NLTK.corpus » sur Python fournit un corpus de 7944 noms propres, auxquelles ont été manuellement ajouté des noms de films comme « godzilla », « Titanic » …

3. PRETRAITEMENT - ELIMINATION DE LA « PONCTUATION »

Comme constaté lors de la phase de compréhension des données, les marques de ponctuation figuraient parmi les features les plus fréquents du corpus. Cependant, nous avions également observé que les marques de ponctuations « ? », « ! » figuraient parmi les features apportant un gain énorme d’information quant à la polarité des sentiments dégagés. Nous testons dans un premier temps de filtrer toute la ponctuation, et puis dans un second temps de filtrer toute la ponctuation sauf les marques d’interrogation et d’exclamation.

4. MODELISATION ET EVALUATION

La même méthode de cross-validation de l’itération 1 a été appliquée avec les mêmes modèles.

Les résultats sont donnés dans les tableaux suivants :

méthode d'extraction des features

Occurrence vs

Fréquence

Naive Bayes SVM

Pos Fscore

Neg FScore

total Accuracy

Pos Fscore

Neg FScore

total Accuracy

Filtrage stopset+Names+

punct occurrence 0.821 0.829 0.826 0.848 0.85 0.849

Filtrage stopset+Names+

punct avec {'?','!'}

occurrence 0.833 0.838 0.836 0.853 0.857 0.855

Figure 5 - IT2 NB SVM

méthode d'extraction des features

Occurrence vs

Fréquence

arbre de décision forêt décisionnelle

Pos Fscore

Neg FScore

total Accuracy

Pos Fscore

Neg FScore

total Accuracy

Filtrage stopset+Names+

occurrence N.A N.A N.A N.A N.A N.A

Page 15: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

14

punct

Filtrage stopset+Names+

punct avec {'?','!'}

occurrence 0,685 0,642 0,676 0.7779 0.8228 0.803

Figure 6 – IT2 DT et RF

Nous constatons, qu’effectivement, les formes de filtrages appliquées améliorent les modèles.

Par rapport au filtrage de la ponctuation, les résultats sont légèrement mieux en gardant les signes d’interrogation et d’exclamation, qui ont plus tendance à caractériser des sentiments négatifs.

VI. ITERATION 3 - REDUCTION DES FEATURES – SELECTION DES

MEILLEURS MOTS – MEILLEURS ADJECTIFS/GERONDIFS (POS)

1. PRETRAITEMENT - SELECTION DES « FEATURES » APPORTANT LE PLUS GRAND GAIN

D’INFORMATION

La réduction du nombre des « features » utilisés permet non pas seulement de réduire la taille du modèle, mais aussi d’augmenter sa robustesse. Plusieurs méthodes peuvent être utilisées pour ordonner les « features », afin d’en sélectionner les mieux classés. Une première approche s’appuierait sur la fréquence d’apparition de chaque « feature » dans le corpus. Mais avec une telle approche, on risque de garder plusieurs mots neutres et très occurrents, au détriment de certains mots moins fréquents mais très déterminants. L’approche que nous avons adoptée est celle qui permet de garder les mots les plus déterminants, c’est-à-dire ceux qui apportent le plus grand gain d’information.

Un scoring utilisant le métrique « chi-square » disponible dans la classe « BigramAssocMeasures class » permet de calculer pour chaque unité syntaxique un score qui reflète le degré de présence de cette unité syntaxique dans une catégorie donnée par rapport à sa présence générale dans tout le corpus et par rapport aux nombres d’occurrences des autres mots de sa classe, et le nombre total des occurrences des mots dans le corpus. La méthode implémentée sur Python qui calcule ce score est présente en Annexe. Plus ce taux est élevé, plus le mot a tendance à être présent dans une seule classe tout en étant très déterminant comparé aux autres mots très fréquents dans sa classe.

Les features ont été classés par le score obtenu, et pour chaque modèle nous en avons sélectionné un nombre qui maximise le f-score.

2. PRETRAITEMENT - SELECTION DES « ADJECTIFS/GERONDIFS » APPORTANT LE PLUS

GRAND GAIN D’INFORMATION

Le même scoring précédent est appliqué cette fois uniquement aux adjectifs et aux gérondifs du corpus. Pour sélectionner ces derniers, nous avons utilisé le tagger « Part of Speech tagger » disponible sous NLTK qui permet de tagger tous les mots du corpus selon leur fonction grammaticale. Nous gardons ensuite tous les adjectifs et les gérondifs. Nous

Page 16: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

15

avons également gardé les gérondifs, car un adjectif comme « boring » ou « oustanding » est taggué comme gérondif par le POS tagger de NLTK.

3. MODELISATION ET EVALUATION

La même méthode de cross-validation de l’itération 1 a été appliquée avec les mêmes modèles.

Les résultats sont donnés dans les tableaux suivants :

méthode d'extraction des features

Occurrence vs

Fréquence

Naive Bayes SVM

Pos Fscore

Neg FScore

total Accuracy

Pos Fscore

Neg FScore

total Accuracy

meilleurs mots (chi2) occurrence 0,851 0.845 0, 841 0.854 0.859 0.857

meilleurs adjectifs et gérondifs (POS)

occurrence 0.815 0,811 0, 823 0.8278 0.8245 0.826

Figure 7 - IT3 NB SVM

méthode d'extraction des features

Occurrence vs

Fréquence

arbre de décision forêt décisionnelle

Pos Fscore

Neg FScore

total Accuracy

Pos Fscore

Neg FScore

total Accuracy

meilleurs mots (chi2) occurrence 0.729 0.734 0,732 0.845 0.854 0.85

meilleurs adjectifs et gérondifs (POS)

occurrence 0.712 0.653 0.686 0.786 0.808 0.795

Figure 8 - IT3 DT et RF

Nous constatons que le meilleur f-score est encore une fois obtenu par le SVM en sélectionnant les meilleurs mots. Ce f-score est aussi supérieur à ceux des précédentes itérations, ce qui valide l’intérêt de réduire l’ensemble des features aux unités apportant le plus grand gain d’information.

Cependant, l’approche consistant à ne garder que les meilleurs adjectifs et les meilleurs gérondifs est largement moins performante. Elle sera abandonnée dans les prochaines itérations.

VII. ITERATION 4 – INTEGRATION DES BI-GRAMS

1. Prétraitement – Intégration des bi-grams

L’intégration des bi-grams dans le sac des « features » permet notamment de s’affranchir des problèmes de négation. Un bi-gram comme « not great » sera interprété par un modèle basé sur un sac de mots Unigram comme contribuant à une polarité positive, du moment où il le sépare en deux uni-grams indépendants.

Page 17: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

16

Pour prendre en compte un certain nombre de « bi-gram » les plus importants, nous procédons sous NLTK à la mesure de la corrélation de la collocation de deux mots (nltk.collocations). Celle-ci permet de classer les bi-grams en leur affectant le plus grand score quand les deux mots apparaissent aussi souvent ensemble que vus individuellement (utilisation de fonction chi-2). Les meilleures collocations sont ensuite gardées et leur nombre optimal est fixé pour chaque modèle en l’évaluant avec le f-score.

2. Modélisation ET EVALUATION

La même méthode de cross-validation de l’itération 1 a été appliquée avec les mêmes modèles.

Les résultats sont donnés dans les tableaux suivants :

méthode d'extraction des features

Occurrence vs

Fréquence

Naive Bayes SVM

Pos Fscore

Neg FScore

total Accuracy

Pos Fscore

Neg FScore

total Accuracy

intégration des bi-grams

occurrence 0,835 0.841 0,84 0.87 0.873 0.872

intégration des bi-grams - séléction des

meilleurs mots

occurrence 0.84 0.844 0,893 0.866 0.868 0.8675

Figure 9 - IT4 NB SVM

méthode d'extraction des features

Occurrence vs

Fréquence

arbre de décision forêt décisionnelle

Pos Fscore

Neg FScore

total Accuracy

Pos Fscore

Neg FScore

total Accuracy

intégration des bi-grams

occurrence N/A N/A N/A 0.495 0.740 0.658

intégration des bi-grams - séléction des

meilleurs mots

occurrence 0.712 0.719 0,716 0.449 0.735 0.643

Figure 10 - IT4 DT et RF

Nous constatons que l’intégration des bi-grams augmente bien le f-score du NB et de SVM. Mais elle détériore beaucoup les résultats de l’arbre de décision et de la forêt décisionnelle. Ce traitement parait donc inadéquat pour ces deux derniers modèles.

VIII. ITERATION 5 – SCORING TF-IDF ET/OU BI-GRAMS ET/OU

MEILLEURS MOTS

1. Prétraitement – sac de mots avec des scores TF-IDF

Dans les itérations précédentes nous avons procédé à une représentation des documents par un sac de mots reflétant l’occurrence binaire ou la fréquence d’occurrences des features sélectionnés.

Page 18: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

17

Ici, nous allons procéder à une représentation par un sac de mots donnant à chaque feature un score TF-IDF (Term Frequency-Inverse Document Frequency), en utilisant le module sklearn.feature_extraction.text présent sur Scikit-learn.

Ce score correspond au produit de la fréquence du mot dans le document (TF), et la fréquence inverse du document (IDF). Cette-dernière donne un poids plus important aux termes les moins fréquents, et considérés comme plus discriminants. Elle consiste à calculer le logarithme de l'inverse de la proportion de documents du corpus qui contiennent le terme.

Cette mesure statistique permet donc d'évaluer l'importance d'un terme contenu dans un document, relativement au corpus.

Cette méthode sera testée avec l’ensemble des features du corpus, ou en ne gardant que les meilleurs mots, ou en la combinant aux bi-grams.

2. Modélisation et évaluation

La même méthode de cross-validation de l’itération 1 a été appliquée avec les mêmes modèles sauf l’arbre de décision dont les performances étaient très inférieures par rapport aux autres modèles.

Les résultats sont donnés dans les tableaux suivants :

méthode d'extraction des features

Occurrence vs

Fréquence vs

score

Naive Bayes SVM forêt décisionnelle

Pos Fscore

Neg FScore

total Accuracy

Pos Fscore

Neg FScore

total Accuracy

Pos Fscore

Neg FScore

total Accuracy

b-o-w sans filtrage : (1)

TF-IDF 0,845 0.842 0.846 0.880 0.881 0.881 0.7608 0.7873 0.775

(1) intégration des bi-grams :

(2) TF-IDF 0.8527 0.8385 0.846 0.872 0.870 0.871 0.4256 0.7113 0.6345

(1) + séléction des meilleurs

mots : (3) TF-IDF 0.8372 0.8464 0.842 0.887 0.885 0.886 0.8369 0.8468 0.8375

(2) + (3) TF-IDF 0.855 0.853 0.854 0.872 0.872 0.872 0.4211 0.7032 0.6267

Figure 11 - IT5 NB SVM RF

Nous constatons, que le scoring TF-IDF a amélioré d’avantage les modèles NB et SVM et a permis d’obtenir les plus hauts scores sur toutes les itérations.

Quant à la forêt décisionnelle, on s’aperçoit à nouveau que les performances se dégradent dès qu’on introduit les bi-grams, même en utilisant le scoring TF-IDF.

IX. RESUME DES MEILLEURS RESULTATS

Le tableau suivant donne un classement des différents modèles sélectionnés avec pour chacun les prétraitements qui permettent d’obtenir la plus grande valeur du f-score.

Page 19: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

18

Modèle prétraitement appliqué Freq vs

Occurrence vs score

Neg F-score

SVM (C=1, noyau linéaire, squared hinge loss)

- unigrams uniquement - filtrage des noms propres -filtrage des stop words -filtrage de ponctuation (sauf ' ?', ' !' ) - 12000 meilleurs mots

TF-IDF 0.885

Naive Bayes (mutlinomial)

-unigrams et bigrams - filtrage des noms propres -filtrage des stop words -filtrage de ponctuation (sauf ' ?', ' !' ) - 15000 meilleurs mots

TF-IDF 0.855

Random forests (400 trees, max

features 12)

- unigrams uniquement - filtrage des noms propres -filtrage du stop set -filtrage de ponctuation (sauf ' ?', ' !' ) - 5000 meilleurs mots

occurrence binaire

0,854

Arbre de décision (entropy cutoff 0.05,

support cutoff 10, depth cutoff 30)

- unigrams uniquement - filtrage des noms propres -filtrage du stop set -filtrage de ponctuation (sauf ' ?', ' !' ) - 250 meilleurs mots

occurrence binaire

0.734

Figure 12 - résumé des meilleurs résultats

X. CONCLUSION ET PERSPECITVES

Ce projet nous a permis de constater que les performances des différents modèles sont très dépendantes des prétraitements appliqués aux documents et de leur représentation. Les prétraitements optimaux sont spécifiques à chacun des modèles, mais un point commun qui ressort est celui de la sélection des meilleurs mots du corpus, qui a permis d’augmenter significativement le f-score de chacun des modèles.

Nous jugeons également que les modèles obtenus lors des dernières itérations, suite à un filtrage des mots inutiles, ou spécifiques au corpus, sont assez généralisables et pourront être utilisés pour traiter des tâches réelles de prédiction de sentiments en milieu de production.

Par ailleurs, en guise d’amélioration, nous proposons plusieurs pistes. Tout d’abord, concernant les prétraitements, un dictionnaire de synonymes sous « wordnet » permettrait une réduction significative des features, tout en permettant aux modèles de considérer la contribution de deux mots différents mais qui sont synonymes comme unique en non

Page 20: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

19

indépendante. Un scoring préalablement établi dans un autre dictionnaire « sentiword » aurait aussi permis d’augmenter les performances des modèles.

En termes d’apprentissage automatique, une méthode ensembliste combinant deux modèles (SVM et arbres de décision par exemple) pourrait potentiellement permettre de meilleures performances. Aussi, dans le cadre de nos recherches bibliographique, nous avions constaté qu’un modèle neuronal récursif permet de réaliser des résultats aussi élevés que NB et SVM dans le cas de la polarisation binaire. Mais il est en mesure de les dépasser très largement lorsqu’il s’agit d’une classification en plusieurs niveaux. Il serait donc pertinent de l’appliquer pour une classification de sentiment plus granulaire (5 niveaux par exemple).

Enfin, quant au corpus utilisé, bien qu’il soit très employé dans les projets de classification de sentiments, il demeure tout de même légèrement moins adapté à la problématique métier traitée qui concerne des avis clients, généralement moins volumineux que des critiques de presse sur des films. Une extraction de publications twitter relatives aux interactions des clients avec une marque donnée, en utilisant l’API Twitter Streaming, aurait probablement permis de construire des modèles plus robustes.

Page 21: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

20

XI. SOURCES BIBLIOGRAPHIQUES

[1] Bing Liu, 2012, Sentiment Analysis and Opinion Mining

[2] Social Science Information, 2005, SAGE Publications (London, Thousand Oaks, CA and

New Delhi), 0539-0184

[3] http://sentiment.christopherpotts.net/lingcog.html#commitment

[4] Bo Pang and Lillian Lee, Shivakumar Vaithyanathan. 2002. Thumbs up? Sentiment

Classification using Machine Learning Techniques.

[5] Marc Vincent, Grégoire Winterstein. 2013. Construction et exploitation d’un corpus

français pour l’analyse de sentiment

[6] Bird, Steven, Edward Loper and Ewan Klein (2009), Natural Language Processing with Python. O’Reilly Media Inc. [7] Mohamed Ali Sghaier , Rami Ayadi, Houssem Abdellaoui, Mounir Zrigui, Analyse de sentiments et extraction des opinions pour les sites e-commerce : application sur la langue arabe [8] Eric Charton, Nathalie Camelin, Rodrigo Acuna-Agost, Pierre Gotabn, Remi Lavalley, Remy Kessler, Silvia Fernandez Pré-traitements classiques ou par analyse distributionnelle :application aux méthodes de classification automatique déployées pour DEFT08

Page 22: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

21

ANNEXE

METHODE SCORING CHI-SQUARE

#Y est une liste de tupple (id document, classe document) def bestwords_function(Y): word_fd = FreqDist() label_word_fd = ConditionalFreqDist() for ids,tag in y: if(tag==1): for word in movie_reviews.words(fileids = ids): word_fd[word.lower()]+=1 label_word_fd['pos'][word.lower()]+=1 elif(tag==0): for word in movie_reviews.words(fileids = ids): word_fd[word.lower()]+=1 label_word_fd['neg'][word.lower()]+=1 pos_word_count = label_word_fd['pos'].N() neg_word_count = label_word_fd['neg'].N() total_word_count = pos_word_count + neg_word_count word_scores = {} for word, freq in word_fd.iteritems(): pos_score = BigramAssocMeasures.chi_sq(label_word_fd['pos'][word],(freq, pos_word_count), total_word_count) neg_score = BigramAssocMeasures.chi_sq(label_word_fd['neg'][word],(freq, neg_word_count), total_word_count) word_scores[word] = pos_score + neg_score best = sorted(word_scores.iteritems(), key=lambda (w,s): s, reverse=True)[:12000] bestwords=[w for w, s in best]

return bestwords

Page 23: IMT Dossier - time4bigdata.files.wordpress.com · APE Fouille de données L’ANALYS S SENTIMENTS La détection des opinions et l’analyse des sentiments sur les critiques des films

22

Technopôle Brest-Iroise CS 83818 29238 Brest Cedex 3 France

+33 (0)2 29 00 11 11

www.telecom-bretagne.eu