Vous êtes sur la page 1sur 160

Mémoire de fin d’études

Pour l'obtention du diplôme d’ingénieur d’Etat en informatique


Option : Mixte (SIQ/SIT)

Thème

Analyse de sentiments dans les médias


sociaux
(Social media mining)

Réalisé Par Encadré Par


BENATALLAH Abdennour Mme BENKRID Soumia
YAKOUBI Yacine Mme SAID LHADJ Lynda
Mr ALLOUCHE Badredine

Promotion : 2017/2018
Remerciements
Nous tenons à remercier en premier lieu nos encadrants Mme. BENKRID Soumia et Mme
SAID LHADJ Lynda pour leurs précieuses orientations tout au long de l'élaboration de ce
travail et du temps qu'elles nous ont consacré pour nous guider malgré leurs diverses
préoccupations.

Nous adressons aussi nos sincères remerciements à Mr. ALLOUCHE Badredine, notre
promoteur pour la confiance qu'il nous a accordé, ses remarques, ses conseils et ses critiques
qui nous ont poussés pour mener à terme ce travail.
Nous remercions également tous les membres de l'équipe Data Warehouse d'Ooredoo, pour
leur accueil et le temps qu'ils nous ont consacré pour répondre à nos besoins et à nos questions.

Nous tenons à remercier notre établissement, l’École supérieure d'informatique ainsi que son
cadre administratif et pédagogique, en particulier Mme. AIT ALI YAHIA Dahbia, pour leur
disponibilité afin de pouvoir effectuer notre stage dans les meilleures conditions.

Nous présentons tous nos respects et nos sincères remerciements aux membres de jury qui ont
accepté d'évaluer notre travail.

Enfin, nous tenons à remercier toutes les personnes qui ont contribué de près ou de loin à la
réalisation de ce travail.

II
Résumé
Depuis l’arrivée du web 2.0, l’intérêt va croissant pour connaître les opinions des internautes
qui s’y expriment spontanément et en temps réel. Cette masse de données d’opinions est
accessible avec des outils de fouille du web, avec une collection d’informations constamment
renouvelée.

Des sites se sont spécialisés dans le recueil de ces opinions dans certains domaines (critiques
de cinéma par exemple) et les internautes ont pris l’habitude de consulter les avis et notes
déposés par les autres dès qu’ils doivent prendre une décision d’achat pour un produit technique,
ou encore pour une réservation d’hôtel. Les avis, les opinons intéressent donc les internautes
et ont suscité des applications et services multiples, ce qui provoque un cercle vertueux
d’encouragement à donner son avis et même à se faire reconnaître comme donnant des avis
pertinents et suivis par les autres.

Mais ces données intéressent également des marques et des cabinets d’études qui tentent de
connaître ce « sentiment agrégé des foules ». Souvent sensibles au fantasme « votre réputation
peut être détruite à cause d’un commentaire de blog », les marques se soucient de leur identité
en ligne mais cherchent également à mieux connaître les attentes et critiques que les internautes
leur adressent.

D’où le développement croissant des techniques pour capter ces évaluations des internautes,
allant du simple dénombrement de commentaires positifs ou négatifs à l’analyse plus fine des
contenus de ces commentaires.

C'est dans ce contexte que s'inscrit le présent projet, dont l'objet est de mettre en place un
système qui permet de collecter, stocker et exploiter les données textuelles exprimées par les
internautes sur les réseaux sociaux. Nous avons procédé à une étude bibliographique se
rapportant à l'analyse de sentiments qui nous a permis de proposer une solution comblant les
problèmes existants, en particulier le dialecte, et répondant aux exigences exprimées.

Mots clés : Opinion, Analyse de sentiments, Médias sociaux, Dialecte, Corpus, Classification.

III
Abstract
Since the arrival of Web 2.0, the interest is growing to know the opinions of Internet users who
express themselves spontaneously and in real time. This mass of opinion data is accessible with
web search tools, with a constantly renewed collection of information.

Some sites have specialized in gathering these opinions in certain fields (film critics for
example) and Internet users have become accustomed to consulting the opinions and notes
submitted by others as soon as they have to make a purchase decision for a technical product,
or for a hotel reservation. Opinions and views are therefore of interest to Internet users and
have given rise to multiple applications and services, which provokes a virtuous circle of
encouragement to give one's opinion and even to be recognized as giving relevant opinions and
followed by others.

However, these data are also of interest to brands and research firms that are trying to find out
about this "aggregated feeling of the crowds". Often sensitive to the fantasy "your reputation
can be destroyed because of a blog comment", brands are concerned about their online identity
but also seek to better understand the expectations and criticisms that Internet users address to
them.

As a result, techniques for capturing these evaluations of Internet users are increasingly being
developed, ranging from the simple counting of positive or negative comments to a more
detailed analysis of the content of these comments.

It is in this context that this project is situated, the purpose of this project is to set up a system
that collects, stores and uses text data expressed by Internet users on social networks. We
proceeded to a bibliographical study relating to the sentiment analysis, which allowed us to
propose a solution filling the existing problems, in particular the dialect, and answering the
expressed requirements.

Keywords : Sentiment analysis, Social networks, dialect, Corpus, Classification.

IV
‫ملخص‬
‫منذ وصول الويب ‪ ،2.0‬إزداد االهتمام بمعرفة آراء متصفحي اإلنترنت‪ ،‬الذين يعبرون عن أنفسهم بشكل تلقائي وفي‬
‫الوقت الحقيقي‪ .‬هذه الثروة من بيانات الرأي يمكن الوصول إليها من خالل أدوات البحث على شبكة اإلنترنت‪ ،‬مع مجموعة‬
‫‪.‬متجددة باستمرار من المعلومات‬

‫وقد تخصصت المواقع في جمع هذه اآلراء في مناطق معينة (مثل استعراض السينما على سبيل المثال) وأصبح‬
‫المستخدمون معتادين على المالحظات واالستشارات المقدمة من اآلخرين بمجرد اتخاذ قرار الشراء‪ .‬للحصول على منتج‬
‫فني‪ ،‬أو لحجز فندق‪ .‬وبالتالي‪ ،‬فإن اآلراء صارت تهم مستخدمي اإلنترنت وتؤدي إلى استخدام تطبيقات وخدمات متعددة‪،‬‬
‫‪.‬األمر الذي يثير دائرة حميد ة من التشجيع إلبداء الرأي وحتى االعتراف بأنه يعطي آراء ذات صلة ويتبعها آخرون‬

‫وهذه البيانات تهم أيضًا العالمات التجارية وشركات األبحاث التي تحاول معرفة هذا "الشعور الجماعي للحشود"‪ .‬غالبا ً ما‬
‫تكون حساسة للخيال "يمكن تدمير سمعتك من خالل تعليق مدونة"‪ ،‬فإن العالمات التجارية تهتم بهويتها عبر اإلنترنت‪،‬‬
‫‪.‬ولكنها تسعى أيضًا إلى فهم أفضل للتوقعات واالنتقادات التي يواجهها المستخدمون‬

‫ومن هنا تنامى تطور التقنيات الستخالص هذه التقييمات لمستخدمي اإلنترنت‪ ،‬بد ًءا من مجرد حساب التعليقات اإليجابية أو‬
‫‪.‬السلبية إلى التحليل الدقيق لمحتوى هذه التعليقات‬

‫وفي هذا السياق ‪ ،‬يقع هذا المشروع ‪ ،‬والغرض منه هو إعداد نظام لجمع وتخزين واستغالل البيانات النصية التي يعبر‬
‫عنها المستخدمون على الشبكات االجتماعية‪ .‬لقد أجرينا دراسة ببليوغرافية تتعلق بتحليل المشاعر التي سمحت لنا باقتراح‬
‫حل يمأل المشاكل القائمة ‪ ،‬وال سيما اللهجة ‪ ،‬واإلجابة على المتطلبات المعبر عنها‬

‫الكلمات المفتاحية‪ :‬تحليل المشاعر‪ ،‬الشبكات االجتماعية‪ ،‬اللهجة ‪ ،‬كوربوس ‪ ،‬التصني‬

‫‪V‬‬
Table des matières
Remerciements ....................................................................................................................II
Résumé .............................................................................................................................. III
Abstract ........................................................................................................................... IV
Liste des abréviations ..................................................................................................... XI
Introduction Générale .....................................................................................................12
Problématique ................................................................................................................14
Chapitre I : Généralités sur l’analyse de sentiments .........................................................17
I. Définitions et Concepts .................................................................................................. 18
I.1. L’Émotion ............................................................................................................................................... 18
I.2. Sentiment .............................................................................................................................................. 19
I.3. Opinion .................................................................................................................................................. 20
I.3.1. Opinion ordinaire et opinion comparative .................................................................................... 20
I.3.2. Les classes d'opinions .................................................................................................................... 20

II. L’analyse de sentiments : applications et processus .................................................. 21


II.1. Domaines d'applications ...................................................................................................................... 22
II.1.1. Marketing...................................................................................................................................... 22
II.1.2. Revue des produits ....................................................................................................................... 22
II.1.3. E-commerce et CRM ..................................................................................................................... 23
II.1.4. Finance .......................................................................................................................................... 23
II.1.5. Politique ........................................................................................................................................ 24
II.1.6. Veille ............................................................................................................................................. 24
II.2. Analyse de sentiments.......................................................................................................................... 24
II.2.1. L’analyse de sentiment d’un point de vue TAL ............................................................................. 24
II.2.2. Niveaux d'analyse de sentiments ................................................................................................. 26
II.3. Le processus de l’analyse de sentiments ............................................................................................. 27
II.3.1. Le sourcing et collecte .................................................................................................................. 28
II.3.2. Prétraitement ............................................................................................................................... 30
II.3.3. Annotation .................................................................................................................................... 30
II.3.4. Représentation ............................................................................................................................. 30
II.3.5. Classification de texte ................................................................................................................... 30
II.4. Évaluation des approches d’analyse des sentiments ........................................................................... 31
II.4.1. Précision........................................................................................................................................ 31
II.4.2. Rappel ........................................................................................................................................... 32
II.4.3. Fausse acceptation ....................................................................................................................... 32
II.4.4. Faux rejet ...................................................................................................................................... 32
II.4.5. F-mesure ....................................................................................................................................... 32
II.4.6. Exactitude ..................................................................................................................................... 33

III. Synthèse ........................................................................................................................ 33


Chapitre II : ..................................................................................................................34
Analyse de sentiments et construction du vocabulaire .............................................34
I. Construction du vocabulaire ......................................................................................... 35
I.1. Définitions.............................................................................................................................................. 35
I.1.1. Lexique ........................................................................................................................................... 35
I.1.2. Vocabulaire .................................................................................................................................... 35

VI
I.1.3. Corpus ............................................................................................................................................ 35
I.2. Méthodes de construction .................................................................................................................... 36
I.2.1. Méthodes manuelles ..................................................................................................................... 37
I.2.2. Méthodes automatiques ............................................................................................................... 37
I.3. Synthèse des travaux ............................................................................................................................. 39

II. Approches de catégorisation des messages ................................................................. 41


II.1. Catégorisation basée sur le lexique ...................................................................................................... 43
II.1.1 Principe de l’approche ................................................................................................................... 43
II.1.2. Synthèse des travaux ................................................................................................................... 43
II.2. Catégorisation basée sur l’apprentissage automatique....................................................................... 45
II.2.1. Principe de l’approche .................................................................................................................. 45
II.2.1.1. Prétraitement ............................................................................................................................ 45
II.2.2 Synthèse des travaux .......................................................................................................................... 58
II.2.2.1 Construction du vocabulaire....................................................................................................... 59
II.2.2.2. Classification .............................................................................................................................. 60
II.3. L’approche hybride ............................................................................................................................... 62
II.3.1. Principe de l’approche ....................................................................................................................... 62
II.3.2. Synthèse des travaux ......................................................................................................................... 62

III. Outils d’analyse de sentiment sur les réseaux sociaux ............................................. 65


IV. Conclusion .................................................................................................................... 68
Chapitre III : Conception..................................................................................................71
I. Description du projet de référence ............................................................................... 72
II. Méthodologie de travail ................................................................................................ 73
II.1. Méthodologie CRISP-DM ...................................................................................................................... 73

III. Présentation de la solution .......................................................................................... 74


IV. Hypothèses de départ .................................................................................................. 75
IV.1. Type d'opinions à traiter ..................................................................................................................... 76
IV.2. Niveau de l'analyse de sentiments ...................................................................................................... 76

V. Vue globale..................................................................................................................... 76
VI. Vue détaillée ................................................................................................................. 78
VI.1. Préparation des données .................................................................................................................... 78
VI.1.1. Collecte des données................................................................................................................... 79
VI.1.2 Nettoyage des données..................................................................................................................... 84
VI.1.3. Structuration des données ............................................................................................................... 85
VI.2. Prétraitement ...................................................................................................................................... 86
VI.2.1. Suppression du bruit ................................................................................................................... 87
VI.2.2. Normalisation du lexique ............................................................................................................ 89
VI.2.3. Racinisation ................................................................................................................................. 91
VI.2.4. Traitement de langage SMS ........................................................................................................ 92
VI.2.5. Construction du dictionnaire des néographies. .......................................................................... 93
VI.2.6. Prétraitement relatif à l’analyse de sentiments ......................................................................... 96
VI.3. Annotation du corpus.......................................................................................................................... 97
VI.3.1. Modèle de clustering ................................................................................................................... 97
VI.3.2. Approche d’annotation non supervisée ................................................................................... 100
VI.4. Catégorisation ................................................................................................................................... 101
VI.5. Visualisation ...................................................................................................................................... 101
VI.5.1. Méthodes de mise en œuvre des tableaux de bords ................................................................ 102
VI.5.3. Définitions des indicateurs de performances (KPI) ................................................................... 102
VI.6. Sécurité du système .......................................................................................................................... 106
VI.6.1. Authentification ......................................................................................................................... 107

VII
VI.6.2. Autorisation ............................................................................................................................... 107
VI.6.3. Sécurité des données ................................................................................................................ 108

VI.7. Conclusion ............................................................................................................... 109


Chapitre IV : Réalisation, Déploiement et Évaluation ..................................................... 110
I. Environnement et technologies de développement.................................................... 111
I.1. Langages de programmations ............................................................................................................. 112
I.1.1. Python .......................................................................................................................................... 112
I.1.2. C# ................................................................................................................................................. 112
I.2. Environnement .................................................................................................................................... 112
I.2.1. Nifi ................................................................................................................................................ 112
I.2.2 Kafka ............................................................................................................................................. 112
I.2.3. Spark ............................................................................................................................................ 112
I.2.4. Hbase ........................................................................................................................................... 113
I.3. Bibliothèques ....................................................................................................................................... 113
I.3.1. NLTK (Natural Language Toolkit) ................................................................................................. 113
I.3.2. SciKit-Learn .................................................................................................................................. 113
I.3.3. Keras ............................................................................................................................................ 113
I.3.4 Gensim .......................................................................................................................................... 113

II. Réalisation ................................................................................................................... 115


II.1. Collecte de données – Data Collection- ............................................................................................. 115
II.1.1. Authentification Facebook ......................................................................................................... 115
II.1.2. Récupération du token d’accès .................................................................................................. 116
II.2. Traitements de données - Data Processing -...................................................................................... 116
II.3. Stockage de données .......................................................................................................................... 116
II.4. Représentation du vecteur texte........................................................................................................ 117
II.5. Annotation .......................................................................................................................................... 118
II.5.1. Annotation non supervisée ........................................................................................................ 118
II.5.2. Annotation manuelle .................................................................................................................. 119
II.6. Catégorisation..................................................................................................................................... 120
II.6.1. Définition des différents layers .................................................................................................. 120
II.6.2. Architecture des algorithmes proposés ..................................................................................... 121
II.7. Visualisation ........................................................................................................................................ 122

III. Déploiement ............................................................................................................... 124


IV. Évaluation .................................................................................................................. 125
IV.1. Démarche .......................................................................................................................................... 126
IV.1.1. Composantes du vecteur de caractéristiques ........................................................................... 126
IV.1. 2. Techniques de représentation du vecteur de caractéristiques ............................................... 127
IV.1.3. Algorithmes d’apprentissage automatique ............................................................................... 127
IV.1.4. Approche d’évaluation .............................................................................................................. 127
IV.1.5 Résultats des tests ...................................................................................................................... 128
IV.1.6. Synthèse des résultats ............................................................................................................... 135

V. Conclusion.................................................................................................................... 136
Conclusion et perspectives ............................................................................................ 137

VIII
Table des figures
Figure 1 Wheel of emotion de Robert Plutchik ............................................................................................. 18
Figure 2: Processus générique d’analyse de sentiments ............................................................................... 28
Figure 3 Classification des méthodes de construction du lexique de sentiments ..................................... 37
Figure 4: Approches de l’analyse de sentiments ........................................................................................... 42
Figure 5 la représentation de sac en mots ....................................................................................................... 49
Figure 6: la structure du modèle NNLM ........................................................................................................ 57
Figure 7: La structure du modèle C&W ......................................................................................................... 58
Figure 8 Méthode CRISP-DM (AGA, 2005) ................................................................................................. 73
Figure 9 Architecture globale ............................................................................................................................. 77
Figure 10 Processus de collecte et de préparation des données...................................................................... 79
Figure 11 Diagramme de séquence de l'extraction des posts .......................................................................... 83
Figure 12 Diagramme de séquence de l'extraction des commentaires ........................................................... 84
Figure 13 Exemple d’un fichier CSV contenant les commentaires utilisateurs ....................................... 84
Figure 14 Schéma de la base de données .......................................................................................................... 86
Figure 15 Schéma prétraitement de données ................................................................................................... 87
Figure 16 Etapes de normalisation .................................................................................................................... 89
Figure 17: La répartition des langues dans le corpus ....................................................................................... 91
Figure 18 Processus de traitement relatif au langage dialectal......................................................................... 93
Figure 19 Réduction du nombre de mots après prétraitement ....................................................................... 96
Figure 20 Exemple d'émoji ................................................................................................................................. 97
Figure 21 Exemple d'autocollants ...................................................................................................................... 97
Figure 22 Diagramme d'activité qui illustre le processus de clustering ..................................................... 98
Figure 23 Vecteur d'entrée de clustering ........................................................................................................ 98
Figure 24 Diagramme d’activité de l'annotation non supervisée ................................................................. 101
Figure 25 Diagramme des cas d'utilisation - Vue administrateur-............................................................ 103
Figure 26 Diagramme des cas d'utilisation - Vue utilisateur- ................................................................... 104
Figure 27 Diagramme de séquence du système de sécurité ....................................................................... 108
Figure 41 Technologies utilisées ...................................................................................................................... 111
Figure 28 Architecture technique ..................................................................................................................... 115
Figure 29 Application AS Ooredoo sur Facebook Dev Platforme .............................................................. 116
Figure 30 Architecture du système du Word Embedding ............................................................................. 118
Figure 31 Architecture de l'annotation non supervisée ................................................................................. 118
Figure 32 Application web pour l'annotation manuelle ................................................................................. 119
Figure 33 Diagramme de séquence de l'annotation manuelle ....................................................................... 119
Figure 34 Architecture LSTM .......................................................................................................................... 121
Figure 35 Architecture CNN............................................................................................................................ 121
Figure 36 Architecture CNN & LSTM ........................................................................................................... 122
Figure 37 Part d'un sentiment par opérateur ................................................................................................ 122
Figure 38 Part d'un sentiment par opérateur avec aperçu sur les commentaires .................................... 123
Figure 39 Nombre de commentaires par opérateur/sentiment .................................................................. 123
Figure 40 Vue principale du Dashboard ....................................................................................................... 124
Figure 42 Architecture de déploiement......................................................................................................... 124
Figure 43 Exemple de représentation Unigramme et Bigramme.................................................................. 126
Figure 44 Classification á deux niveaux .......................................................................................................... 128

IX
Liste des tableaux
Table 1 table de confusion ................................................................................................................................ 31
Table 2 Synthèse bibliographique ...................................................................................................................... 64
Table 3 Attributs sélectionnés pour le clustering .......................................................................................... 98
Table 4 Présentation des différentes metriques ........................................................................................... 105
Table 5 Langages de programmation et emplacement ............................................................................... 111
Table 6 Comparaison entre Cassandra vs HBase vs MonogDB .................................................................. 117
Table 7 Jeu de données ..................................................................................................................................... 125
Table 8 Taille du corpus d'entrainement et test pour l'approche à un niveau ............................................. 129
Table 9 Taille du corpus d'entrainement et test pour l'approche à deux niveaux ....................................... 129
Table 10 Évaluation de la classification à un seul niveau .............................................................................. 130
Table 11 Évaluation de la classification à un seul niveau avec annotation manuelle ............................ 131
Table 12 Évaluation de la classification des classes de sentiments de l'approche à deux niveaux .... 132
Table 13 Évaluation de la classification sur les classes Objective-Subjective ....................................... 132
Table 14 Évaluation sans Traitement des lettres répétées et des Majuscules. ........................................ 134
Table 15 Synthèse des meilleurs résultats........................................................................................................ 135
Table 16 Approche un niveau Vs Approche deux niveaux ....................................................................... 136
Table 17 Microsoft Azure ML Vs Notre Système ...................................................................................... 136

X
Liste des abréviations
AD Arbre de Décision
AS Analyse de sentiments
BNB Bernoulli Naïve Bayes
BoWs Bag of Words
CNN Conventional Neural Network
DL Deep Learning
Lol laughing out loud
LSTM Long Short-Term Memory
Mdr Mort De Rire
ME Maximum Entropy
ML Machine Learning
MNB Multinomiale Naïve Bayes
MASA Microsoft Azure for Sentiment Analysis
NB Naïve Bayes
PMI Pointwise Mutual Information
POS Part of Speech
RNA Réseaux de Neurones Artificiels
SO Sentiment Orientation
SVM Support Vectors Machine
TAL Traitement automatique du langage
URL Uniform Resource Locator
WE Word Embedding

XI
Introduction Générale
L’objectif primordial de toute entreprise aujourd’hui face à la concurrence accrue est de
fidéliser ses clients. En effet, de plus en plus d’entreprises se dotent d’outils lui permettant
d’analyser le comportement de leur client vis-à-vis de leurs produits, leurs degrés de
satisfaction ainsi que d’estimer la probabilité qu’ils partent chez les concurrents. Si autrefois
les données permettant d’obtenir cette information coutaient très cher, aujourd’hui grâce à la
place centrale qu’occupe le client dans les systèmes d’information des entreprises et à la
prolifération des médias de communication et des média sociaux en particulier, le fossé entre
les aspirations des clients et les entreprises a tendance à se réduire.
Le développement des plateformes sociales a changé la manière de communiquer entre
individus ainsi que de produire de l'information. Désormais, l'information, en plus d'être
présentée sous la forme de texte, est aussi tirée des différentes interactions des utilisateurs sur
les plateformes sociales (mentions, follow, j'aime, ...) permettant ainsi de traduire l'opinion des
utilisateurs vis-à-vis des contenus.

En effet, selon GlobalWebIndex 1, une personne sur trois utilise les médias sociaux. Ceci donne
une idée sur le contenu utilisateur gigantesque généré sur ces plateformes. En effet, (Pak and
Paroubek, 2010) affirment que les internautes utilisent de plus en plus les médias sociaux en
raison d'un format plus libre de messages et d'un accès facile aux plates-formes. (Pang and Lee,
2008) rapportent que près de 87% des lecteurs de commentaires en ligne qui portent sur des
avis des restaurants, des hôtels et autres services admettent que ces derniers ont eu une certaine
influence sur leur consommation.

Ainsi, les plateformes sociales apparaissent comme des sources d'évidence primordiales pour
les entreprises qui ont le besoin permanent de cibler les profils des clients susceptibles
d'acheter leurs produits ou d'influencer de potentiels client.

De ce fait, la fouille des médias sociaux connait un intérêt croissant dans divers milieux
scientifiques et économiques. En effet, les entreprises s’intéressent principalement aux
utilisateurs de ces réseaux et cherchent à les caractériser selon deux axes : (1) leur expertise et
leur réputation, (2) les sentiments qu’ils expriment vis-à-vis d’un service ou d’un produit.

Nous nous intéressons dans ce projet de fin d’étude à l’analyse des sentiments en particulier.
Cette discipline permet de déterminer automatiquement l'opinion à partir du texte récolté
depuis plusieurs sources (essentiellement des plateformes sociales). Nous partons de l’idée que
les opinions des individus qui pourraient être des clients et les clients potentiels pourraient

1GlobalWebIndex combine la plus grande étude en cours au monde sur le monde numérique avec des
analyses puissantes pour servir comme un principal fournisseur de données de mesure à l'industrie du
marketing mondial.

12
avoir un enjeu stratégique pour une entreprise donnée. Ils permettent de connaitre et
comprendre la réputation de la marque à travers des retours d'information sur l'expérience
vécue par les consommateurs. Ceci permettra typiquement de répondre à des questions :

➢ Que pensent les gens de nos produits, services ou marque ?

➢ Est-ce que les gens ont tendance à promouvoir ou non nos produits ?

➢ Comment est-ce que les gens préfèreraient nos produits ?

Le domaine d’analyse des sentiments a ainsi suscité de nombreux travaux de recherche qui ont
inspirés les industriels à développer des outils d’analyse des sentiments génériques ou sur
mesures. Le challenge est d’arriver à traduire du texte écrit en langage naturel et spontané en
opinion positive ou négative par exemple. Ce texte est non structuré est parfois annotés par ce
que l’on appelle des émoticônes, des hashtags ou des gifs qui sont utilisés pour appuyer les
commentaires et exprimer une opinion. De nombreux travaux ont été proposés dans la
littérature et les applications sont aussi nombreuses. Les performances de ces modèles
différents selon plusieurs critères notamment la langue utilisée. Dans certains contextes, les
utilisateurs utilisent le dialecte pour s’exprimer sur les réseaux sociaux et la question que l’on
se pose alors est comment identifier les opinions sur les réseaux sociaux ?

13
Problématique
Ayant constaté que très peu de travaux se sont intéressés au dialecte dans l’analyse des
sentiments, notre objectif à travers ce PFE est de mener une étude bibliographique pour
identifier les approches d’analyse de sentiments dans la littérature afin de dresser leurs forces
et faiblesses et de proposer une approche permettant l’analyse des sentiments à partir de textes
exprimés en dialecte sur les médias sociaux.

Pour atteindre notre objectif nous avons organisé notre travail comme suit :

Introduction générale

Nous entamons notre rapport par une introduction générale suivie par une problématique qui
va nous permettre de bien cadrer notre travail ainsi que nos objectifs que nous avons soulignés
dès le début de notre projet de fin d’études pour avoir une vision claire de notre finalité.

Partie I : État de l’art


Cette partie sera consacrée à la synthèse bibliographique sur l'analyse de sentiments en
comprenant les approches adoptées pour la résolution du problème ainsi que les différentes
techniques appliquées dans ce but.

Chapitre 1 : Généralités sur l’analyse de sentiments

Nous entamons la seconde partie du rapport par un chapitre qui comportera les notions de bases
et les définitions indispensables pour appréhender le domaine d'analyse de sentiments. Nous
aborderons par la suite le domaine de l'analyse de sentiments en présentant ses différents
niveaux et ses domaines d’applications, ensuite nous citons les problèmes liés à l’analyse des
sentiments dans les réseaux sociaux, à la fin nous présentons le processus général de l’analyse
de sentiments ainsi que les différentes métriques utilisées pour évaluer une démarche AS.

Chapitre 2 : Apprentissage automatique et analyse de sentiments

Nous aborderons dans ce chapitre, les différentes approches et techniques utilisées pour la
construction du lexique et la catégorisation des sentiments tout en mettant en évidence les
différentes méthodes utilisées.
Nous présenterons dans un second temps en détails l'analyse de sentiments basée sur
l'apprentissage automatique et le processus complet ainsi que les techniques appliquées pour
ce faire. Par la suite l’approche hybride qui combine les deux approches citées précédemment,
Nous étaierons nos propos par des exemples de la littérature et des travaux phares réalisés dans
le contexte d'analyse de sentiments.

14
Partie II : Contribution : Conception, réalisation et étude de cas

La troisième et dernière partie du rapport sera dédiée à l'aspect pratique de notre solution et
abordera plus en détails les choix de conception et de réalisation pris tout au long du projet
ainsi qu’une présentation du projet de référence.

Chapitre 3 : Conception

Nous expliquerons à ce niveau notre vision de la solution en allant du chargement des données
à la visualisation en passant par la description du projet de référence et l'analyse de sentiments.

Nous consacrerons une partie de ce chapitre au traitement spécialement appliqué pour traiter
quelques aspects du langage utilisé notamment le dialecte.

Chapitre 4 : Réalisation, déploiement et évaluation

Nous présenterons dans ce chapitre l'intégralité des technologies et outils utilisés pour réaliser
notre solution et son déploiement. Nous présenterons dans un deuxième temps la phase
d'évaluation du système d'analyse de sentiments pour valider le modèle construit.

Conclusion et perspectives

Et pour conclure, la quatrième partie exposera la synthèse de notre projet et oriente les
perspectives de la solution.

15
Partie I : état de l’art

16
Chapitre I : Généralités sur l’analyse
de sentiments
L’analyse de sentiments est définie par Pang et Lee (2008) comme étant « le traitement
informatique de l’opinion, du sentiment et de la subjectivité dans le texte ». Il s’agit de détecter
automatiquement si un élément par exemple, une revue de produit ou un article de blog, sous
forme de texte, d’image ou de vidéo exprime une opinion positive ou négative à propos d'une
entité donnée telle qu’un produit ou un service, une personne ou un parti politique

Dans ce chapitre, nous présentons les définitions de base gravitant autour de l’analyse de
sentiments. Ensuite, nous citons ses différents domaines d’applications. Nous aborderons en
second lieu le domaine de l'analyse de sentiments en présentant les problèmes liés à cette
analyse et ses différents niveaux d’applications. Enfin, nous donnons le processus général de
l’analyse de sentiments ainsi que la phase d’évaluation.

17
Chapitre I : Généralités sur l’analyse de sentiments

I. Définitions et Concepts
Lorsqu'on aborde le domaine de la fouille d'opinions ou l'analyse de sentiments, l'une des
premières questions à se poser pourrait être la suivante : Quelle est la différence entre un
sentiment et une opinion ? Une deuxième question est : Où trouve-t-on des opinions sur le web ?

Pour y répondre, nous allons d'abord définir les concepts se rapprochant du sentiment à savoir :
l'émotion, le sentiment et l'opinion.
I.1. L’Émotion
Rosenberg and Turner (1990) définissent une émotion sur un plan psychologique comme un
état complexe de l'organisme, impliquant des changements corporels, et sur un plan mental
comme étant un état d'excitation ou de perturbation, marqué par une impulsion envers un
comportement définit.

Quant à Myers (2004), il définit l'émotion comme étant une expérience psychophysiologique
complexe et intense avec un début brutal et une durée relativement brève.

Larousse 2002 la présente sous une réaction affective transitoire d'assez grande intensité, tandis
que le dictionnaire en ligne l'Internaute la définit comme la manifestation d'un sentiment,

Modèles d'émotions : Il existe plusieurs modèles d’émotions en psychologie. Nous citons


les modèles de Plutchik (1984), Russell (1991) et Ekman (1992). Le plus récent, est celui dit
le modèle d'émotions cubique de Lövheim Lövheim (2012).

➢ Modèle de Plutchik : Ce modèle, plus connu sous le nom de « Wheel of emotion »


[Plutchik 1980] représente les émotions en forme de roue en deux dimensions. Dans ce modèle,
Plutchik propose huit émotions principales (voir figure 1), de façon que chaque deux parties
qui s'opposent indiquent une opposition en termes de vocabulaire d'émotions.

Figure 1 Wheel of emotion de Robert Plutchik

18
Chapitre I : Généralités sur l’analyse de sentiments

Pour une lecture aisée, il est recommandé dans (Plutchik 1980), de lire le deuxième cercle en
premier. Par exemple l’émotion de joie s’oppose à celle de la tristesse

Aussi, nous pouvons constater que plus nous allons vers l'extérieur, plus les couleurs
deviennent plus claires, signifiant des émotions moins intenses, tandis que plus nous allons
vers l'intérieur de la roue, les couleurs sont plus tenaces, ce qui signifie que les émotions sont
plus intenses. Exemple : si on prend la partie jaune du centre de la roue, on commence par
extase, ensuite joie et ensuite sérénité, on remarque que l'émotion est la même mais c'est
l'intensité qui varie (voir Figure 1).

➢ Modèle d'Ekman : L'un des modèles les plus connus et utilisés est le modèle d'Ekman qui fut
un des pionniers dans l'étude des émotions et qui a conçu une liste des émotions qu'il a, par la
suite, enrichi.

L’auteur a conçu cette liste des émotions de base à partir de recherche transculturelle sur une
tribu de Papouasie-Nouvelle-Guinée. Il a observé le fait que des personnes isolées du monde
ayant une culture d'âge de la pierre peuvent identifier les expressions de l'émotion de personnes
sur des photographies dont les cultures sont inconnues. Ces gens pouvaient également attribuer
les expressions du visage à des descriptions de situations. Sur cet indice, il a conclu que
certaines émotions de base sont soit biologiques, soit universelles à tous les hommes.

Liste des émotions d’Ekman est la suivante (a) Tristesse, (b) joie, (c) colère, (d) peur, (e) dégout,
(f) surprise, (g) mépris.

I.2. Sentiment
Larousse de Poche 2000 définit le sentiment comme étant un état affectif durable lié à certaines
émotions ou représentations.

Dans Sablonnière (2015), le sentiment est défini comme la composante de l'émotion qui
implique les fonctions cognitives de l'organisme et la manière d'apprécier. Le sentiment est à
l'origine d'une connaissance immédiate ou d'une simple impression.
Rosenberg and Turner (1990) présentent le sentiment d'un point de vue psychologique comme
un concept sociologique basique utile pour analyser le lien des sensations corporelles, la
gestuelle et les relations sociales.

Nous remarquons que la fouille d'opinions et l'analyse de sentiments traitent en fait des
émotions, qui, seront par la suite interprétées en opinions.

19
Chapitre I : Généralités sur l’analyse de sentiments

I.3. Opinion
Larousse de Poche 2000 définit l'opinion comme étant un jugement, un avis ou un sentiment
qu'un individu ou un groupe émet sur un sujet, des faits, ce qu'il en pense ou encore comme
l’ensemble des idées d'un groupe social sur des sujets s politiques, économiques, moraux, etc

(Liu, 2012) reprend à son tour le modèle de (Kim and Hovy, 2004) et celui de (Kobayashi et
al., 2007) en y apportant une nouvelle dimension qui est celle du temps. De ce fait, l'opinion
est représentée sous forme de quintuple à savoir (porteur, objet, aspect, sentiment, temps).

Il existe dans la littérature des classifications de l’opinion selon qu’elle soit ordinaire ou
comparative ou bien selon son type c’est-à-dire sa polarité ou son intensité.
I.3.1. Opinion ordinaire et opinion comparative
a) L’opinion ordinaire

Selon Liu (2007), l’opinion ordinaire est simplement appelée opinion dans la littérature. On
peut cependant distinguer deux types d'opinions

➢ L’opinion directe qui désigne une opinion exprimée directement sur une entité ou un
aspect d'une entité. Par exemple, L'écran de ce téléphone est Impressionnant. Ici l’entité
et le sentiment sont respectivement, l’écran d’un téléphone et impressionnant.

➢ L’opinion indirecte désigne une opinion exprimée indirectement sur une entité ou un
aspect d'une entité basé sur l'effet d'une autre entité. Par exemple, Après avoir changé
de type de carburant, la voiture roulait difficilement.

b) L’opinion comparative

L’opinion comparative exprime une relation de similitude ou de différence entre plusieurs


entités (Jindal and Liu 2006), nous pouvons dire qu'il existe deux types d'opinions
comparatives.

➢ Comparaison évaluée : dans ce type de comparaison, il existe une préférence évidente


entre les entités, par exemple, la BMW est plus rapide que la Renault, c’est clair ici que
la BMW a une vitesse plus grande donc elle est le détenteur de l’opinion préféré.
➢ Comparaison non évaluée : Dans ce cas, il existe une différence entre les entités,
cependant, on ne peut déterminer laquelle le détenteur de l'opinion préféré, par exemple :
La vitesse de cette BMW est différente de la Renault, ici, on peut pas savoir qui est
mieux de l’autre.
I.3.2. Les classes d'opinions
Nous pouvons retrouver dans la littérature deux manières d'évaluer ou de classer une opinion
qui sont les suivantes :

20
Chapitre I : Généralités sur l’analyse de sentiments

➢ Par polarité : Dans ce cas-là, on s'intéresse à catégoriser les opinions en :

❖ Positive

❖ Négative

❖ Neutre

➢ Par niveaux d'intensité On s'intéresse ici à catégoriser les opinions en cinq classes qui
expriment leurs intensités et leurs évaluation rationnelle ou émotionnelle 3 Chaudhuri
(2006)

❖ Négative émotionnelle (-2)

❖ Négative rationnelle (-1)


❖ Neutre (0)

❖ Positive rationnelle (+1)

❖ Positive émotionnelle (+2)

Après avoir défini quelques concepts ayant trait avec le domaine d’analyse des sentiments
nous abordons dans la section suivante le domaine de l’analyse des sentiments en donnant la
définition du domaine, ensuite nous en exergue les domaines d’application pour y montrer
l’intérêt de la communauté pour ce domaine. Enfin, nous présentons le processus général de
l’analyse des sentiments avec ses étapes clés.

II. L’analyse de sentiments : applications et


processus
L'analyse de sentiments appelée aussi fouille d'opinion est le domaine d'étude qui analyse les
opinions, les sentiments, les évaluations, les émotions des gens à partir du langage écrit.

Dans le monde de la recherche académique il s’agit de l'un des domaines de recherche les plus
actifs qui s’articule autour de plusieurs domaines tels que le traitement automatique du langage
naturel, de la fouille de données, la fouille du web ainsi que la fouille de texte (Liu, 2012).

Les premiers travaux de recherche dans l'analyse des sentiments remontent à l'an 2001 (Pang
and Lee, 2008), quand les chercheurs ont pris conscience des problèmes et des opportunités
que peut soulever ce domaine tant dans l’académique que dans l’industriel. Depuis cette date,
la recherche connait un essor considérable que les auteurs attribuent à plusieurs facteurs tels
que :

➢ Le développement des techniques d'apprentissage automatique dans le domaine du


traitement automatique du langage naturel et la recherche d'information,

21
Chapitre I : Généralités sur l’analyse de sentiments

➢ La disponibilité des données pour l'entrainement des algorithmes d'apprentissage


automatique et ce grâce à l'épanouissement du web et plus spécialement, le
développement des sites web offrant une agrégation des critiques.

➢ La réalisation de challenges intellectuels fascinants ainsi que les applications


commerciales et Business Intelligence qu'offre le domaine.

➢ D’un point de vue applications de l’analyse des sentiments, selon Pang et Lee, l’analyse
des sentiments est évoquée dans tout processus décisionnel, que ce soit en vue de
l’achat d’un bien, dans le contexte d’une élection, ou encore pour évaluer la réputation
de son entreprise.

D’après le blog spécialisé dans l’analyse de données, analyticsvidhya, il existe plusieurs


domaines ou on peut faire appel à l’analyse de sentiments, parmi eux nous citons :

II.1. Domaines d'applications


II.1.1. Marketing
En plus de la consultation des avis en ligne pour un usage personnel dans la vie courante, la
collecte et l’analyse des opinions des individus sont devenues des sources d’informations
précieuses pour les entreprises. Alors que le recueil des opinions des consommateurs a eu
pendant longtemps un caractère fastidieux, sans garantir que les avis recueillis soient spontanés
(organisation de focus groups, recours à des consultants, enquêtes et questionnaires, etc.),
l’accessibilité de ces informations, dès lors qu’elles se retrouvent postées en ligne par les
consommateurs eux-mêmes, permet des analyses à grande échelle (opinions en provenance du
monde entier). Le marketing a rapidement compris l’intérêt de l’analyse des sentiments. Des
agences vendent aux entreprises la traque des moindres mots sur leur image, sur leurs produits.
II.1.2. Revue des produits
Dans le domaine du product review mining : notamment à partir des sites d’avis de
consommateurs. Les consommateurs viennent y échanger des avis et trouver des conseils pour
leurs décisions d’achat (produits technologiques, voitures, voyage et hôtels, etc.).

L’analyse des sentiments permet non seulement de catégoriser les avis au sujet d’un produit
( le système de review classification, comme dans le cas des critiques de cinéma), d’en proposer
des résumés, mais aussi de détailler à un niveau fin ces avis (quelle dimension du produit est
appréciée, quelle autre dimension ne l’est pas – on parle alors de « features »). Il peut également
aider à lutter contre le spam en contribuant à détecter les faux avis postés par des agences. Le
site d’enchères en ligne eBay utilise également des outils d’analyse de sentiments pour repérer
les meilleures critiques et les rendre accessibles plus facilement parmi toutes les revues de
produits (et les spams commerciaux) que présente le site. L’équipe des eBay Research Labs a

22
Chapitre I : Généralités sur l’analyse de sentiments

en effet défini des indicateurs de qualité d’un avis sur un produit parmi lesquels la réputation
de l’auteur de l’avis au sein de la communauté des utilisateurs d’eBay, son « seller degree »
qui reflète le cas échéant quel type de vendeur ou d’acheteur il est, et enfin un « expertise
degree » qui reflète la connaissance que l’auteur peut avoir sur un type de produits.
II.1.3. E-commerce et CRM
Dans le domaine du e-commerce et du CRM (ou GRC en français) : acquérir des
connaissances sur ses consommateurs ou anticiper leurs attentes est possible à partir de la
collecte des avis de consommateurs sur un produit, un service, une marque. Le contrôle qualité
des produits peut s’en servir comme d’une veille. Il est aussi possible d’améliorer la relation
client/fournisseur en récupérant les critiques ou avis favorables. Les évolutions à venir des
marchés de consommation courante peuvent être anticipées par des signes précurseurs dans les
tonalités des conversations dès lors qu’on dispose d’un étalon en temps normal ou favorable
pour percevoir ces changements rapides. Une autre application de l’analyse de sentiments
proposée par eBay permet de rechercher la présence de mots-clés sur Twitter pour détecter les
pannes du service signalées par les utilisateurs, avant même que l’alerte ne soit donnée par le
système d’enchères lui-même.
II.1.4. Finance
Dans le domaine financier (prédiction de tendances de marché par exemple). Ainsi dans leur
article « Predicting Movie Sales from Blogger Sentiment », Gilad Mishne et Natalie Glance
utilisent des techniques de sentiment analysis pour améliorer la prédiction du succès
commercial d’un film à partir des blogs. Ils montrent que le constat selon lequel le volume de
citations d’un produit dans les blogs est corrélé avec la réussite financière du produit, peut être
amélioré, au moins dans le domaine du cinéma, en analysant le sentiment positif exprimé dans
les blogs au sujet d’un film, avant sa sortie en salle, et en le comparant avec son score au box-
office2. L’utilisation des techniques de sentiment analysis contribuerait ainsi à construire de
meilleures prédictions que la mesure du simple buzz, surtout si elle était associée à d’autres
types de données comme le genre du film et le moment de sa sortie. Une autre utilisation de
l’analyse de sentiments dans le domaine financier est la classification des dépêches financières
afin d’observer l’impact éventuel de ces dernières sur le prix des actions cotées en Bourse.
C’est ce type d’application que présentent Michel Généreux, Thierry Poibeau et Moshe Kopple
dans leur article « Sentiment analysis using automatically labelled financial news items » en
faisant l’hypothèse que « la réaction du marché suite à la publication d’une dépêche reliée à
une action particulière est un bon indicateur de la polarité de la nouvelle et qu’un algorithme
d’apprentissage à partir de ces dépêches permet de construire un système qui donne à

2
Box-office est un terme emprunté à l'anglais dans son acception de chiffre d'affaires d'une production artistique
ou d'une vedette (et par extension leur classement sous forme de palmarès). Il se mesure en nombre de
spectateurs, de billets écoulés (« entrées ») ou en valeur monétaire fondée sur l'un des deux items précédents.
On parle également d'« échelle de succès », de « classement » calculé d'après le montant des recettes.

23
Chapitre I : Généralités sur l’analyse de sentiments

l’investisseur une source d’information supplémentaire qui peut être exploitée de façon
avantageuse dans une stratégie d’investissement ».
II.1.5. Politique
Dans le domaine politique. La publication croissante sur internet de textes à teneur politique
(lois, rapports, billets de blogs politiques, etc.) et le constat que la politique ne se fait plus
seulement dans les hémicycles mais aussi dans les débats en ligne, a conduit certains
chercheurs à utiliser les techniques d’analyse de sentiments pour déterminer l’accord ou le
désaccord des commentateurs avec telle ou telle proposition de loi. Dans leur article « Get out
the vote : Determining support or opposition from Congressional floor-debate transcripts »,
Matt Thomas, Bo Pang et Lillian Lee espèrent faciliter la reconnaissance du positionnement
d’un orateur dans un débat politique grâce a l’analyse de sentiments. D’autres recherches
tentent par exemple d’analyser en masse les commentaires et opinions des citoyens américains
lors de l’élaboration des réglementations proposées par les agences indépendantes du
gouvernement.
II.1.6. Veille
Dans le domaine de la veille. Les techniques d’analyse de sentiments permettent de classer de
grandes quantités de textes, rapports, conversations informelles sur des produits ou des
dirigeants d’entreprises, etc., peuvent être utilisées dans le domaine de la veille, qu’elle soit
économique, technologique, stratégique ou institutionnelle. Ainsi espère-t-on par exemple
mettre en place des systèmes d’évaluation de la réputation des entreprises en rassemblant dans
des bases de données des faits et opinions trouvés sur le web et permettant de tracer le profil
de telle ou telle entreprise.

Quel que soit le domaine d’application, le processus d’analyse des sentiments reste le même.
Nous décrivons dans ce qui suit l’analyse des sentiments d’un de vue recherche et d’un point
de vue TAL en particulier. Nous verrons par la suite dans le processus de l’analyse de sentiment
que les taches cruciales sont celle de la collecte et du prétraitement dont dépend fortement le
résultat
II.2. Analyse de sentiments
II.2.1. L’analyse de sentiment d’un point de vue TAL
Le domaine de la fouille d'opinions est au départ lié au traitement du langage naturel, il
s'approprie donc ses difficultés. Quelle que soit la méthode utilisée, toutes les subtilités du
langage ne peuvent être reconstituées sous forme d’algorithmes pour être reconnues par un
système informatique. En effet, la langue comprend différents niveaux d’articulation (Floriane
Chariault 2014), chaque niveau comportant son lot de difficultés :

24
Chapitre I : Généralités sur l’analyse de sentiments

➢ Niveau lexical

➢ Niveau syntaxique

➢ Niveau sémantique

➢ Niveau pragmatique
II.2.1.1. Niveau lexical

Les données textuelles sont soumises à des formes orthographiques particulières. Les fautes
d’orthographe, fréquentes dans les médias de type forums ou réseaux sociaux, ne font que
compliquer l’analyse automatique d’un texte.

Il en est de même avec les diverses formes orthographiques possibles que génère l’utilisation
du langage SMS ou encore les abréviations afin de respecter la limite des 140 caractères sur
Twitter, par exemple, « Y’a que moi qui arrive pu ouvrir fb ak mon iPhone ? »
II.2.1.2. Niveau syntaxique

L’information étant sous forme de texte libre et donc en langage naturel, l’analyseur peut être
confronté à des formes syntaxiques hétérogènes, ne répondant pas toujours aux normes
grammaticales habituelles. Le langage utilisé par certains internautes est spontané et peut
parfois être désordonné. Les mots ne sont pas toujours employés dans leur forme originale. Les
internautes n’hésitent pas à modifier la structure des phrases (absence de verbes, phrases
incomplètes) et reproduisent parfois à l’écrit certaines caractéristiques liées à l’oral.

Cette simplification d’emploi par les internautes rend l’analyse d’autant plus difficile puisque
les « phrases » ne sont pas toutes construites de la même manière et ne répondent pas toutes
aux mêmes règles. Pour pouvoir analyser n’importe quelle structure de phrase, il faudrait alors
prévoir la reconnaissance d’une multitude de formes syntaxiques, ce qui serait trop complexe
sachant que les usages de la langue évoluent sans cesse.
II.2.1.3. Niveau sémantique

La première difficulté relative à la sémantique est la polysémie des mots, qui peut rendre
ambiguë toute analyse du sens et créer des incompréhensions. Nous pouvons prendre l’exemple
de l’unité lexicale vague dont le sens premier est neutre, soyez averti de la prochaine vague de
précommandes du smartphone LG.

Sa polarité est amenée à varier lorsqu’elle est utilisée dans un contexte différent.

Dans l’exemple ci-dessous, la mention est bien subjective et sa polarité devient négative.

Exemple : Il n’y a pas de meilleur smartphone Android. C’est trop vague.

25
Chapitre I : Généralités sur l’analyse de sentiments

D’autres phénomènes sémantiques contribuent à complexifier l’analyse automatique des


sentiments. L’opposition entre deux propositions, unies par « mais » ou « pourtant », est
souvent source d’erreur pour les analyseurs. Dans la majorité des cas, les deux propositions ont
des polarités opposées.

Exemple : Top 10 de smartphones, l’iPhone 5S numéro 1 mais Samsung domine.


II.2.1.4. Niveau pragmatique

Ce niveau linguistique implique une connaissance générale du contexte de la situation, et pas


seulement du contexte induit par l’énoncé lui-même. Cela englobe souvent des éléments
extérieurs au langage, à savoir différentes informations sur les auteurs (âge, sexe, statut social).

Pour ce qui est de l’analyse de sentiments, la difficulté réside également dans l’identification
de phénomènes tels que l’ironie, le sarcasme, l’implicite. Ces phénomènes sont pour la majorité
des cas identifiables par les hommes. Cependant, un analyseur automatique ne peut posséder
toute la connaissance contextuelle que requièrent ces types de phénomènes.

Notons toutefois que certains éléments peuvent permettre d’identifier automatiquement ces
phénomènes langagiers, comme la présence d’un hashtag #ironie dans un tweet.

Maintenant, que nous avons mentionné les problèmes de l’analyse de sentiments, nous allons
rentrer dans ses différents niveaux c’est-à-dire, les niveaux où on peut appliquer cette analyse.
II.2.2. Niveaux d'analyse de sentiments
(Liu, 2012) distingue trois différents niveaux d'analyse de sentiments en se basant sur la
granularité de l'unité de texte considérée par la méthode en question. Ces niveaux sont cités en
partant du plus général au plus fin : le niveau document, le niveau phrase et pour finir le niveau
aspect.

Nous allons dans ce qui suit, aborder plus en détails chacun des trois niveaux en mettant en
évidence leur hypothèse ainsi que leur démarche.
II.2.2.1. Niveau document
L'analyse de sentiments au niveau document part de l'hypothèse que le document exprime une
seule opinion envers une seule entité provenant d'une même source. La tâche principale est
donc la détermination de l'orientation générale du sentiment du document selon les classes qui
peuvent être positive, négative ou neutre. En effet, soit un document d évaluant une entité e, le
but de l'analyse est donc de déterminer le sentiment s du porteur de l'opinion p à propos de
l'entité e. Le sentiment s concerne l'aspect GENERAL dans la représentation en quintuple de
(Liu, 2012).

Dans la pratique, cette représentation affiche plusieurs limites. A vrai dire, un document peut
évaluer plusieurs entités avec des avis différents envers ces dernières, comme il peut aborder

26
Chapitre I : Généralités sur l’analyse de sentiments

une seule entité mais avoir des avis mitigés envers ses différents aspects. Malgré ces limites,
cette représentation s'avère utile lorsque nous traitons des documents courts où l'hypothèse de
départ est souvent vérifiée.
II.2.2.2. Niveau phrase

L'analyse de sentiments au niveau document est jugée trop brute pour une grande partie des
applications c'est pourquoi, la recherche descend à un niveau de détail plus fin qui est le niveau
phrase. La classification des sentiments au niveau phrase considère chaque phrase composant
le document d comme étant une unité de base de l'analyse et part à son tour de l'hypothèse que
la phrase exprime une seule opinion envers une seule entité.
L'hypothèse émise est valable quand il s'agit de phrases simples mais reste limitée quand il est
question de phrases composées où une phrase peut exprimer plus d'un sentiment.

L'analyse de sentiments au niveau phrase consiste en deux tâches qui sont la catégorisation de
la subjectivité et la catégorisation du sentiment. Ces deux tâches sont définies comme suit :

➢ Catégorisation de la subjectivité : Cette étape classifie les phrases en deux catégories :


subjective et objective. Une phrase objective exprime une information factuelle tandis
qu'une phrase subjective exprime un point de vue personnel et une opinion qui peut
faire référence à un sentiment positif ou négatif.

➢ Catégorisation du sentiment : A l'issue de l'étape de classification de la subjectivité,


si une phrase est jugée subjective, nous devons déterminer si cette dernière exprime un
sentiment positif ou négatif.
II.2.2.3. Niveau aspect

Le terme aspect fait référence à un attribut ou une fonction de l'entité évaluée. Pour une analyse
plus complète, il faut détecter les aspects d'un sujet et déterminer les sentiments relatifs à ces
derniers (Liu, 2012). L'objectif est de découvrir tous les quintuples (porteur, objet, aspect,
sentiment, temps) dans un document d donné.

Par exemple dans la phrase : La qualité d'image de la caméra est géniale mais elle et très chère,
l'analyse de sentiments au niveau aspect doit détecter un sentiment positif envers l'aspect
"qualité d'image" ainsi qu’un sentiment négatif envers l'aspect "prix".

II.3. Le processus de l’analyse de sentiments


Dans cette partie nous allons présenter brièvement les différentes étapes de l’analyse de
données, commençant tout d’abord par le « sourcing » qui est négligeables dans certains
travaux mais que nous jugeons très important.

27
Chapitre I : Généralités sur l’analyse de sentiments

Figure 2: Processus générique d’analyse de sentiments

Nous présentons dans cette sous-section le « sourcing » ainsi que quelques sources de données
généralement utilisées dans l’analyse de sentiments. Nous montrons aussi que toute approche
d’analyse de sentiments commence par la collecte de données qui est un aspect important pour
ce type d’analyse. En effet, selon plusieurs travaux comme Taboada et al. (2011), Medhat et
al. (2014), Saleh et al. (2011), le choix de la source de données influe les résultats finaux de
l’analyse.
II.3.1. Le sourcing et collecte
Le sourcing est le terme par lequel on désigne l’ensemble des opérations, préalables à la
collecte de données, qui visent à identifier des sources (sites web, blogs, forums, etc.) contenant
ou susceptibles de contenir de l’information, (Boullier, D., & Lohard, A. 2012).
Typologie des sources web

Où trouve-t-on des opinions sur le web ? Certains sites ont directement vocation à recevoir des
opinions (notamment en raison de leur caractère social : réseaux sociaux, sites d’avis de
consom-mateurs, micro-blogging, etc.). D’autres, comme les sites de presse par exemple, sont
historiquement tournés vers les faits mais se « socialisent » depuis le « Web 2.0 ».

➢ Les sites d’avis consommateurs

Ces sites permettent de recueillir des opinions au sujet de produits ou de services. Ils
intéressent tout particulièrement les marques qui peuvent se faire rapidement une idée
de ce que pensent les consommateurs. Ces derniers détaillent parfois très précisément
leurs avis, en évaluant un produit ou un service non seulement dans son ensemble mais
aussi en fonction de ces différentes dimensions et nous verrons que cela a son
importance. Certains sites donnent aux utilisateurs la possibilité de noter la pertinence
des avis proposés par les autres (et ceci, nous le verrons aussi, peut s’avérer très
précieux).

28
Chapitre I : Généralités sur l’analyse de sentiments

➢ Les sites d’études communautaires de partage de contenus

Ces sites sont également des lieux où trouver des opinions. Les vidéos, souvent
commentées, que l’on trouve sur YouTube, qualifié de deuxième moteur de recherche
au monde, agrègent des avis sur les publicités et par extensions sur les produits. Les
commentaires associés aux vidéos peuvent renfermer beaucoup d’évaluations
intéressantes.

➢ Les bases de données

Les bases de données peuvent dans certains cas être des mines d’informations pour la
veille. Elles font souvent partie du package de sources inspectées par les services de
veille en ligne. De manière générale, le contenu de ces bases est injecté par un
organisme ou une institution et n’est pas ouvert aux commentaires. Ces sources n’ont
quasiment pas d’intérêt dans le cadre d’une analyse d’opinions mais restent très utiles
pour de la veille.

➢ Les blogs

Les blogs sont le lieu privilégié de l’expression en ligne depuis leur explosion en 2004,
une plate-forme de blogs comme Skyrock rassemble près de 35 millions de blogs et
représente ainsi un des premiers acteurs mondiaux sur ce type de supports. Souvent
tenus par une seule personne/entité (mais pas toujours), les blogs permettent d’identifier
plus clairement « qui parle » – contrairement aux sites cités plus haut où l’identité des
personnes est très souvent visible uniquement au travers d’un pseudonyme
(pseudonymat plus qu’anonymat – même si certaines personnes utilisent leur vraie
identité). On trouve plusieurs types de blogs : personnels (journaux intimes – extimité),
de loisirs (cuisine, couture, etc.), commerciaux (blogs d’entreprise, de marque), de
journalistes, d’experts, blogs politiques (élus, partis, syndicats, etc.), etc. Le format
blog invite aux commentaires des lecteurs même si l’auteur peut choisir de fermer les
commentaires.

➢ Les forums

Qu’ils soient rattachés à une marque, à une institution ou encore à une pratique (forum
de santé), les forums ont un format spécifique qui permet à tous de trouver une
information et des conseils précis. Les forums sont souvent animés et modérés. Leur
contenu est hiérarchisé en fonction de « topics » bien distincts les uns des autres et les
utilisateurs peuvent s’y exprimer librement à condition de respecter les règles de
conduite.

29
Chapitre I : Généralités sur l’analyse de sentiments

➢ Les réseaux sociaux

Regroupant des dizaines de milliers d’utilisateurs à l’échelle mondiale, les réseaux


sociaux peuvent être généralistes (Facebook, Diaspora), professionnels (Viadeo,
LinkedIn) ou encore affinitaires (Myspace). Pour pouvoir consulter ces sites, il faut
presque toujours en être membre. Les utilisateurs n’ont pas accès à toutes les pages. Ils
peuvent consulter celles de leurs « amis » et les pages publiques. Pour les prestataires
en veille, social monitoring, e-réputation, etc., seules les pages publiques peuvent être
exploitées. Les pages « Fan » ou les groupes peuvent fournir de nombreuses
informations sur les utilisateurs : les discours ainsi que les relations entre les membres
peuvent être analysés.
II.3.2. Prétraitement
Il est connu que dans le domaine de l’analyse de sentiments, le texte est la forme la plus
déstructurée de toutes les données disponibles, beaucoup de bruit qui n’est pas pertinent à
l’analyse d’opinion. Il s’agit en particulier du processus de nettoyage et de standardisation du
texte en éliminant ce que l’on appelle les mots vides ou les mots communs tels que les
prépositions ou les verbes d’état (se situer, localisé, etc). Le prétraitement peut aussi consister
en la racinisation ou la lemmatisation. Nous détaillons cette étape dans le chapitre suivant.
II.3.3. Annotation
L'annotation du corpus consiste en l'attribution d'une étiquette (label) positive, négative ou
neutre à chaque message pour permettre au classifieur de l’étape qui suit de s'entraîner dessus
afin de construire le modèle de classification.
II.3.4. Représentation
Pour analyser une donnée prétraitée, il faut la convertir en caractéristiques. Selon l'utilisation,
les caractéristiques du texte peuvent être construites à l'aide de techniques variées on peut citer
le TF-IDF et les Word Embeddings
II.3.5. Classification de texte
La classification de texte, est définie comme une technique permettant de classer du texte dans
une des catégories déjà définis. Il est vraiment utile lorsque la quantité de données est trop
importante, surtout pour l'organisation, le filtrage de l'information et le stockage.

Un classificateur de langage naturel typique se compose de deux parties : (a) Apprentissage (b)
Prédiction. Tout d'abord, le texte est traité et des caractéristiques sont identifiées. Ensuite un
modèle d’apprentissage utilise ensuite ces caractéristiques pour la prédiction du nouveau texte.

30
Chapitre I : Généralités sur l’analyse de sentiments

II.4. Évaluation des approches d’analyse des sentiments


Pour évaluer les performances d'un modèle d’analyse de sentiments, diverses métriques sont
utilisées, elles sont principalement empruntées du domaine de la recherche d'information.
Nous présentons les métriques les plus utilisées dans la fouille d'opinions à savoir la précision,
le rappel, les fausses acceptations, les faux rejets, la F-mesure et l'exactitude. Pour plus de
clarté dans la façon de calculer ces métriques, le Tableau 1 présente une table de confusion où :

➢ TP correspond au nombre de messages exprimant une opinion positive et classés


positifs par le classifieur.

➢ TN correspond au nombre de messages exprimant une opinion négative et classés


négatifs par le classifieur.

➢ FP correspond au nombre de messages exprimant une opinion négative et classés


positifs par le classifieur.

➢ FN correspond au nombre de messages exprimant une opinion positive et classés


négatifs par le classifieur.

Prédiction

Positive Négative

Positive TP FN

Réalité
Négative FP TN

Table 1 table de confusion

II.4.1. Précision
Cette métrique calcule la capacité du modèle à ne pas se tromper lorsqu'il affecte un message
à une classe donnée. Elle est donnée par le ratio entre le nombre de messages correctement
classés à une classe donnée sur le nombre de messages classés par le classifieur à cette même
classe.
nombre de messages correctement classés
𝑃𝑟é𝑐𝑖𝑠𝑖𝑜𝑛 =
𝑛𝑜𝑚𝑏𝑟𝑒 𝑑𝑒 𝑚𝑒𝑠𝑠𝑎𝑔𝑒𝑠 𝑎𝑡𝑡𝑟𝑖𝑏𝑢é𝑠 à 𝑙𝑎 𝑐𝑙𝑎𝑠𝑠𝑒

En utilisant les données de la table de confusion cela donne pour la classe positive (à gauche)
et la classe négative (à droite) :
TP TN
𝑃𝑟é𝑐𝑖𝑠𝑖𝑜𝑛 = 𝑜𝑢 𝑃𝑟é𝑐𝑖𝑠𝑖𝑜𝑛 =
𝑇𝑃 + 𝐹𝑃 𝑇𝑁 + 𝐹𝑁

31
Chapitre I : Généralités sur l’analyse de sentiments

II.4.2. Rappel
Cette métrique calcule la capacité du modèle à bien détecter les messages appartenant à une
classe donnée, elle est donnée par le ratio entre le nombre de messages correctement classés à
une classe donnée sur le nombre de messages appartenant réellement à cette même classe.
nombre de messages correctement classés
𝑅𝑎𝑝𝑝𝑒𝑙 =
𝑛𝑜𝑚𝑏𝑟𝑒 𝑑𝑒 𝑚𝑒𝑠𝑠𝑎𝑔𝑒𝑠 𝑎𝑝𝑝𝑎𝑟𝑡𝑒𝑛𝑎𝑛𝑡 à 𝑙𝑎 𝑐𝑙𝑎𝑠𝑠𝑒

En utilisant les données de la table de confusion cela donne pour la classe positive (à gauche)
et la classe négative (à droite) :

𝐓𝐏 𝐓𝐍
𝑹𝒂𝒑𝒑𝒆𝒍 = 𝒐𝒖 𝑹𝒂𝒑𝒑𝒆𝒍 =
𝑻𝑷 + 𝑭𝑵 𝑻𝑵 + 𝑭𝑷
II.4.3. Fausse acceptation
Cette métrique calcule le taux d'acceptation à tort d'un faux message à une classe donnée, elle
est donnée par le ratio entre le nombre de messages faussement classés à une classe donnée sur
le nombre de messages classés par le classifieur à cette même classe.
nombre de fausses acceptations
𝐹𝑎𝑢𝑠𝑠𝑒 𝐴𝑐𝑐𝑒𝑝𝑡𝑎𝑡𝑖𝑜𝑛 =
𝑛𝑜𝑚𝑏𝑟𝑒 𝑑𝑒 𝑚𝑒𝑠𝑠𝑎𝑔𝑒𝑠 𝑎𝑡𝑡𝑟𝑖𝑏𝑢é𝑠 à 𝑙𝑎 𝑐𝑙𝑎𝑠𝑠𝑒

En utilisant les données de la table de confusion cela donne pour la classe positive (à gauche)
et la classe négative (à droite) :
𝐅𝐏 𝐏𝐍
𝑭𝒂𝒖𝒔𝒔𝒆 𝑨𝒄𝒄𝒆𝒑𝒕𝒂𝒕𝒊𝒐𝒏 = 𝒐𝒖 𝑭𝒂𝒖𝒔𝒔𝒆 𝑨𝒄𝒄𝒆𝒑𝒕𝒂𝒕𝒊𝒐𝒏 =
𝑻𝑷 + 𝑭𝑷 𝑻𝑵 + 𝑭𝑵
II.4.4. Faux rejet
Cette métrique calcule le taux de rejet à tort d'un vrai message à une classe donnée, elle est
donnée par le ratio entre le nombre de messages faussement rejetés d'une classe donnée sur le
nombre de messages appartenant réellement à cette même classe.
nombre de faux rejets
𝐹𝑎𝑢𝑥 𝑅𝑒𝑗𝑒𝑡 =
𝑛𝑜𝑚𝑏𝑟𝑒 𝑑𝑒 𝑚𝑒𝑠𝑠𝑎𝑔𝑒𝑠 𝑎𝑝𝑝𝑎𝑟𝑡𝑒𝑛𝑎𝑛𝑡 à 𝑙𝑎 𝑐𝑙𝑎𝑠𝑠𝑒

En utilisant les données de la table de confusion cela donne pour la classe positive (à gauche)
et la classe négative (à droite) :
FN FP
𝐹𝑎𝑢𝑥 𝑅𝑒𝑗𝑒𝑡 = 𝑜𝑢 𝐹𝑎𝑢𝑥 𝑅𝑒𝑗𝑒𝑡 =
𝑇𝑃 + 𝐹𝑁 𝑇𝑁 + 𝐹𝑃
II.4.5. F-mesure
Il est possible d'augmenter la valeur de la précision, mais au détriment du rappel et vice-versa,
cette métrique combine la précision et le rappel pour en donner un compromis. Elle est calculée
comme suit :
Précision ∗ Rappel
𝐹 − 𝑚𝑒𝑠𝑢𝑟𝑒 = 2 ∗
𝑃𝑟é𝑐𝑖𝑠𝑖𝑜𝑛 + 𝑅𝑎𝑝𝑝𝑒𝑙

32
Chapitre I : Généralités sur l’analyse de sentiments

II.4.6. Exactitude
Cette métrique calcule les performances globales du modèle de classification indépendamment
des classes, elle est donnée par le ratio entre le nombre total de messages correctement classés
par le classifieur sur le nombre total de messages.
nombre de messages correctement classés
𝐸𝑥𝑎𝑐𝑡𝑖𝑡𝑢𝑑𝑒 =
𝑛𝑜𝑚𝑏𝑟𝑒 𝑑𝑒 𝑚𝑒𝑠𝑠𝑎𝑔𝑒𝑠 𝑡𝑜𝑡𝑎𝑙

En utilisant la table de confusion :

TP + TN
𝐸𝑥𝑎𝑐𝑡𝑖𝑡𝑢𝑑𝑒 =
𝑇𝑃 + 𝐹𝑃 + 𝐹𝑁 + 𝑇𝑁
Dans le domaine de l’analyse de données, on attend beaucoup de la mesure du sentiment ou
d’opinion, l’attribution à chaque message d’une polarité positive, neutre ou négative est
presque devenue un exercice obligé pour tous ceux qui écoutent le web (solutions de
veille, social media analysis). On retrouve également cet indicateur dans les solutions
d’analyse de données dédiées à la mesure de l’expérience client (logiciels d’analyse d’enquêtes,
management de l’expérience client…).

Dans la partie qui suit, nous allons citer quelques domaines et faire un aperçu sur ce que
l’analyse de données a apporté de plus dans ces domaines.

III. Synthèse
Nous avons vu dans ce chapitre les différents concepts de base liés à l’analyse de sentiments,
nous avons défini tout ce qui est sentiment, émotion et opinion.

Ensuite nous avons cité les domaines d’applications et présenté en détail les problèmes liés à
l’analyse de sentiments, nous avons également parlé des niveaux de la fouille de données et
son processus général.

Enfin nous avons abordé la phase d’évaluation et présenté ses différentes métriques qui
permettent de mesurer les performances d’un système d’analyse de sentiments.

33
Chapitre II :
Analyse de sentiments et
construction du vocabulaire
L’analyse des sentiments est souvent considérée comme une catégorisation des sentiments qui
repose sur la construction des ressources lexicales nécessaires, une tâche importante dans ce
domaine. Plusieurs approches et plusieurs outils ont été proposés pour déterminer la classe de
sentiment d'un texte.

Cependant, le domaine de l'analyse de sentiments ne se résume pas seulement à la tâche de la


catégorisation des sentiments, mais il touche également à d'autres tâches toutes aussi
importantes. La tâche cruciale dont dépend tout le processus d’analyse des sentiments est celle
de la construction du lexique qui vise à collecter les expressions porteuses d’opinion. La
richesse du lexique et sa précision impacte directement la qualité de la catégorisation sans
oublier que les mots d'opinions peuvent changer d'orientation selon le domaine dans lequel ils
sont employés.

Nous abordons dans ce chapitre, les différentes approches et techniques utilisées pour la
construction du lexique. Dans un second lieu nous présentons les approches de catégorisation
des sentiments, les approches sont réparties en trois grandes familles : (1) celles basées sur
l'apprentissage automatique, (2) celles basées sur le lexique et enfin (3) les approches hybrides.
Pour chaque approche, nous présentons une synthèse des travaux les plus cités dans la
littérature. Nous terminons ce chapitre par la présentation des outils d’analyse de sentiments
existants avant de conclure.

34
Chapitre I : Généralités sur l’analyse de sentiments

I. Construction du vocabulaire
Le lexique est une base pour la détermination de la subjectivité du texte étudié. Nous présentons
ci-dessous les définitions des concepts liés à celui du vocabulaire.

I.1. Définitions
Il est à noter que dans la littérature, les termes vocabulaire et lexique sont utilisés
indifféremment pour désigner le même concept.

I.1.1. Lexique

Larousse de poche 2000 définit le lexique comme étant un Dictionnaire spécialisé et


généralement succinct concernant un domaine particulier de la connaissance.

En linguistique, le lexique d'une langue constitue l'ensemble de ses mots Corbin (1987).

I.1.2. Vocabulaire

Toujours dans le Larousse de poche 2000, un vocabulaire est défini comme un ensemble des
termes propres à une science, à une technique, à un groupe, à un milieu, à un auteur ou Ouvrage
comportant les termes spécifiques d'une discipline, d'une technique, le dictionnaire en ligne
l'internaute quant à lui le définit comme étant un ensemble des mots appartenant à un thème
particulier.

Dans ce mémoire nous utilisons les terme vocabulaires et lexique, notre objectif étant de
proposer un système d’analyse de sentiments qui traitant du dialecte.

Par ailleurs, la fouille d'opinions ne traite pas plusieurs domaines (dans la majorité des cas) et
les chercheurs ne s'intéressent généralement qu'aux mots qui expriment une opinion (ou un
sentiment) afin de pouvoir constituer le vocabulaire.

I.1.3. Corpus

Un corpus est un ensemble de messages collectés manuellement ou automatiquement à partir


d'une source donnée (journal, réseau social, site de critiques), dans un domaine précis et dans
une optique précise. Dans notre cas, il s'agit de faire de l’analyse de sentiments ; les corpus
prennent toutes leur importance dans les méthodes d'apprentissage automatique car ces derniers
représentent la matière première pour les classifieurs qui ont besoin d'un très grand nombre de
messages annotés pour construire le modèle de classification et prédire la classe de nouveaux

35
Chapitre II : Analyse de sentiments et construction du vocabulaire

messages. Plus la taille du corpus est grande plus le modèle construit à partir de l'apprentissage
sur le corpus est de meilleure qualité (P Denis, B Sagot 2013).

Pour la méthode apprentissage automatique le corpus est divisé en trois parties que nous allons
présenter dans ce qui suit.

I.1.3.1. Corpus d'entrainement

C'est avec ce corpus que le classifieur fera l'apprentissage sur les messages annotés pour
construire le modèle de classification. Il doit être de taille importante, de façon à bien modéliser
le modèle de classification qui traite le maximum de cas possibles. Ce corpus représente de 80%
à 90% du corpus total.

I.1.3.2. Corpus de développement

Ce corpus sert à ajuster les paramètres du modèle d'entrainement jusqu'à l'obtention des
performances optimales, cette phase peut être parfois ignorée si la taille du corpus n'est très
grande. Lorsque qu'il n'est pas ignoré ce corpus représente environ 10% du corpus total.

I.1.3.3. Corpus de test

Ce corpus sert à évaluer la qualité du modèle de classification construit dans la phase


d'entrainement avec des métriques d'évaluation, ce corpus représente de 10% à 20% du corpus
total.

I.2. Méthodes de construction


Pour la construction du vocabulaire, il existe trois méthodes (Figure 3) : (1) méthode manuelle,
(2) la méthode automatique et (3) la méthode hybride. Le choix de la méthode de construction
dépend de plusieurs paramètres comme le temps, les ressources matérielles, les ressources
humaines, le corpus etc. Nous allons citer dans ce qui suit les méthodes de construction de
vocabulaire inhérentes à l’analyse de sentiments (P Denis, B Sagot 2013).

36
Chapitre II : Analyse de sentiments et construction du vocabulaire

Figure 3 Classification des méthodes de construction du lexique de sentiments

I.2.1. Méthodes manuelles

La méthode de construction manuelle est une méthode évidente à première vue mais très peu
utilisée étant donné qu'elle nécessite des ressources humaines expertes et un temps important.
En effet, pour construire un vocabulaire manuellement, il est nécessaire de mobiliser des
experts en linguistique et en psychologie pour pouvoir identifier tous les termes d'opinion, tout
en synchronisant les travaux de chacun afin d'éviter les redondances et de vérifier que
l'ensemble des experts donnent une polarité à un mot qui doit être unique à un degré près par
rapport aux autres (C Quan, F Ren 2009).

I.2.2. Méthodes automatiques

Dans les méthodes automatiques, il existe trois manières de construction de vocabulaire : la


première est celle basée sur un corpus, la seconde est la méthode basée sur les dictionnaires et
la troisième est une hybridation des deux précédentes méthodes. Nous détaillons chacune de
ces méthodes ci-dessous.

I.2.2.1. Méthode basée corpus

Dans cette méthode, on suppose un ensemble de mots de départ appelés mots graines, qui sont
de polarité négative ou positive, ensuite il s’agit d’extraire les mots du corpus qui sont corrélés
aux mots présents dans l'ensemble de départ (Hu and Liu 2004).

L'extraction est basée sur des règles linguistiques, plusieurs chercheurs apportent leurs
contributions. Nous allons voir la méthode basique d'extraction, celle-ci exploite la
connectivité des adjectifs dans une phrase.

37
Chapitre II : Analyse de sentiments et construction du vocabulaire

A partir de notre ensemble de mot de départ, si nous trouvons un adjectif de l'ensemble de


départ (mot graine) connecté à un autre adjectif avec un :

➢ ET, nous rajoutons alors le mot dans la même classe que le mot graine.

➢ MAIS / CEPENDANT / PAR CONTRE, nous rajoutons alors le mot dans la classe
opposée du mot graine.

Par exemple, l’ensemble des mots de départ contient gentil comme un mot positif, et on a les
deux phrases suivantes : 1) il est gentil et sympa, 2) il est gentil mais vicieux.

Pour la 1ére phrase, le mot sympa est associé gentil, connecté avec un ET, donc il sera ajouté
dans la même classe que gentil, dans la 2éme phrase, MAIS est le connecteur entre gentil et
vicieux, donc il sera dans la classe opposée.
Avantages

➢ Les mots récupérés sont des mots du domaine d'étude étant donné qu'ils proviennent du
corpus.
Inconvénients

➢ Nécessite une vérification (risque d'avoir le même mot plusieurs fois, fautes
d'orthographe, abréviations etc.).

➢ Ensemble de mots acquis restreint.

➢ Le vocabulaire construit ne peut pas être appliqué à d'autres domaines.

I.2.2.2. Méthode basée sur un dictionnaire

Cette méthode consiste en l'utilisation d'un ensemble de mots d'opinions initial appelés mots
graines et de construire à travers ces mots un ensemble de mots plus grand à travers des
dictionnaires tels que SentiWordNet en cherchant les synonymes et antonymes des mots
graines. (Kamps et al. 2004).

Pour une construction plus avancée certains chercheurs utilisent la distance séparant les mots,
tel que la distance entre deux mots m1 et m2 est dé nit par la longueur du plus court chemin
reliant les deux mots dans SentiWordNet.

Il existe un bon nombre de dictionnaires utilisés dans ces méthodes tels que General inquirer3,
Dictionary of Affect of Language4, WordnetAffect5, WordNet6.

La méthode basée sur un dictionnaire présente certains avantages et inconvénients :

3 http://www.wjh.harvard.edu/~inquirer/
4 http://www.hdcus.com
5 http://wndomains.fbk.eu/wnaect.html
6 http://wordnetweb.princeton.edu/perl/webwn

38
Chapitre II : Analyse de sentiments et construction du vocabulaire

Avantages

➢ Ensemble large de mots acquis à travers les synonymes et antonymes et les mots
récupérés sont corrects (pas d'erreurs d'orthographe).

➢ Ne nécessite pas de vérification vue que la source est déjà validée par des experts
Inconvénients

➢ Les mots récupérés sont indépendants du domaine

I.2.2.3. Méthode hybride

La méthode hybride vient palier aux inconvénients des deux méthodes précédentes. En effet,
la méthode basée corpus offre un vocabulaire de domaine. Cependant la taille de dernier est
relativement réduite comparé à la méthode basée dictionnaire qui donne un ensemble plus
grand de mots mais qui ne sont pas nécessairement du domaine analysé, (Hu and Liu 2004).

La méthode hybride comporte les deux étapes suivantes :

a) Construire un vocabulaire initial à travers la méthode basée corpus pour avoir un


vocabulaire relatif au domaine

b) Enrichir ce vocabulaire avec la méthode basée dictionnaire en prenant comme ensemble


de mots graines le vocabulaire obtenu dans le point précédant

Ainsi, en combinant les deux méthodes précédentes, un vocabulaire riche et couvrant le


domaine de l’étude est construit.

I.3. Synthèse des travaux


De nombreux travaux ont été menés pour la construction du vocabulaire en suivant les
méthodes citées auparavant. Nous en citons les plus signifiants pour chacune des méthodes de
constructions de corpus.

a) Méthode basée dictionnaire


Le vocabulaire de mots d'opinion initial est d’abord construit ensuite il est enrichi à travers des
méthodes telle que PMI7. Une fois ces étapes achevée les messages peuvent être catégorisés en
classe positive, négative ou neutre. Cette catégorisation s’effectue en calculant pour chaque
message un score basé sur les mots d'opinions présents Ding et al. (2008).

Nous détaillons dans ce qui suit le détail de cette approche :

7L'information mutuelle PMI est dérivée de la théorie de l'information, et permet de mesurer la cooccurrence
entre chaque mot w et une classe i.

39
Chapitre II : Analyse de sentiments et construction du vocabulaire

_Une première technique consiste à extraire les synonymes/antonymes des mots graines tout
en affectant les synonymes d'un mot négatif à la classe négative et ses antonymes à la classe
positive Hu and Liu (2004).

_Une autre technique consiste à calculer la distance entre les mots d'opinion graines et un autre
mot donné, qui est généralement Bon ou Mauvais, pour déterminer la polarité de ce dernier.
La distance entre deux mots représente la longueur du chemin le plus court qui les relie dans
WordNet, Kamps et al. (2004).

_L'approche basée dictionnaire a l'avantage de donner rapidement plusieurs mots d'opinion,


mais possède un inconvénient majeur. En effet, cette approche donne beaucoup d'erreurs car
elle est indépendante du contexte et du domaine de la phrase où se trouve le mot, puisque nous
recherchons dans un dictionnaire, surtout que la polarité de certains mots dépend du contexte
de la phrase où il est employé Liu (2012) , donc une vérification manuelle est requise à la fin
du traitement ce qui peut prendre du temps lorsque le vocabulaire est assez grand (ce qui est
souvent le cas).

_Dans ce contexte, Kim and Hovy (2004) ont utilisé une approche probabiliste au lieu de la
vérification manuelle pour prendre ou ne pas prendre un synonyme d’un mot graine dans le
dictionnaire, et cela en calculant la probabilité d'apparition du synonyme dans la même classe
que le mot graine dans le corpus.

b) Méthode basée corpus

Dans la méthode basée corpus, l'ensemble de mots d'opinion initiale est enrichi en utilisant les
messages du corpus. Cette méthode vient corriger l'un des inconvénients de la méthode basée
dictionnaire, qui concerne la création du vocabulaire indépendamment du domaine
d'application, ainsi, en utilisant les mots d'opinion extrait du corpus, le problème du domaine
d'application n'a plus lieu d'être Liu (2012).

_Hatzivassiloglou and McKeown (1997) enrichissent l'ensemble des mots graines en exploitant
les règles linguistiques des phrases. Une des techniques est de chercher les mots du corpus
connectés dans la même phrase à un mot graine, exemple, un mot connecté à un mot graine par
une conjonction de coordination :
➢ ET, on rajoute alors le mot dans la même classe que le mot graine.

➢ MAIS, on rajoute alors le mot dans la classe opposée que le mot graine.

_Une autre technique consiste en la représentation de tous les mots d'opinion connectés sous
forme d'un graphe, ensuite un regroupement est effectué sur le graphe pour produire deux
ensembles de mots d'opinion positifs et négatifs.

40
Chapitre II : Analyse de sentiments et construction du vocabulaire

_Kanayama and Nasukawa (2006) ont enrichi la méthode ci-dessus en exploitant les règles
linguistiques dans une même phrase mais aussi entre les phrases connectées par une virgule
(même classe) ou par connecteur tel que CEPENDANT, PAR CONTRE (classe opposée).

_Turney (2002) propose une méthode statistique pour enrichir le vocabulaire. En effet plusieurs
études montrent que, si deux mots d'opinion apparaissent souvent ensemble dans un corpus, ils
sont susceptibles d'avoir la même polarité. Cette méthode consiste à calculer la corrélation
entre les mots du corpus et les mots graines positifs et négatifs en utilisant l'information
mutuelle PMI.

_Yu et Hatzivassiloglou (2003) proposent une méthode similaire à celle de (Turney, 2002),
mise à part qu’ils utilisent la probabilité qu’un mot non classé soit proche d’un mot classé afin
de mesurer la force de l’orientation du premier nommé.

_Fahrni and Klenner (2008) proposent d'utiliser des documents annotés et indexés, déjà
existants sur le web pour enrichir le vocabulaire, cela est fait en étudiant la corrélation entre
les mots du corpus et leurs apparitions dans les documents annotés positifs et négatifs dans le
web, cette technique est adoptée dans le cas où l'ensemble des mots graine positifs et négatifs
ne suffit pas à déterminer la polarité de certains mots du corpus. Dans leur travail, ils ont choisi
des critiques de restaurants déjà annotés allant de polarité allant de très négative a très positive,
et l'enrichissement du vocabulaire se fait en étudiant la corrélation entre les mots du corpus et
des mots bien et mauvais.

c) Méthode hybride

Abdaoui (2016) sont focalisés sur l’extraction de sentiments (polarité et émotion). Pour cela,
dans un premier temps, ils ont commencé par construire un lexique de sentiments et d’émotions
pour le Français qu’ils appellent FEEL (French Expanded Emotion Lexicon). Ce lexique est
construit de manière semi-automatique en traduisant et en étendant son homologue Anglais
NRC EmoLex, ils ont ensuite comparé FEEL avec les lexiques Français de la littérature sur
des benchmarks de référence. Les résultats ont montré que FEEL permet d’améliorer la
classification des textes Français selon leurs polarités et émotions.

II. Approches de catégorisation des messages


Dans cette section, nous présentons les différentes approches de catégorisation des messages
du corpus. Nous distinguons principalement trois approches de catégorisation :

1) Approche basée lexique : Hu and Liu (2004), Kamps et al. (2004), Ding et al. ,
Abdaoui (2016).
2) Approche basée apprentissage automatique : Lu et al. (2010), Taboada et al. (2011).

41
Chapitre II : Analyse de sentiments et construction du vocabulaire

3) Approche hybride : Narayanan et al. (2009), Li and Xu (2014), Narayanan et al.


(2009).

Figure 4: Approches de l’analyse de sentiments

42
Chapitre II : Analyse de sentiments et construction du vocabulaire

II.1. Catégorisation basée sur le lexique

II.1.1 Principe de l’approche

La catégorisation basée lexique repose sur le vocabulaire créé avec les méthodes basées
dictionnaire ou basées corpus. La polarité des messages est déterminée en appliquant une
fonction (généralement la somme) sur les mots d'opinions présents dans le message. Cette
fonction détermine un score d’opinion. Plus formellement, tous les mots d'opinion ont une
polarité connue depuis la phase de construction du vocabulaire. Par exemple : magnifique =+5,
aimer = +3, bon = +2, contrarié = -1, haine = -3, catastrophe = -5), la négation et
l'intensification peuvent aussi être prises en considération dans cette approche.
Soit un message M dont nous voulons connaitre la polarité, après prétraitement, le message M
est représenté comme suit : M = (w1, w2, ..., wm), chaque mot wi du vocabulaire est associé à
son score de polarité pi, la polarité du message M est calculé comme suit :
La négation et l'intensification sont prises en considération, si nous travaillons avec les n-
grammes, dans ce cas, c'est la force de polarité pi du n-gramme wi qui est affecté.

𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒 𝑠𝑖 𝑔(𝑡) > 0


𝑃𝑜𝑙𝑎𝑟𝑖𝑡𝑒(𝑡) { 𝑁𝑒𝑢𝑡𝑟𝑒 𝑠𝑖 𝑔(𝑡) = 0 𝑂𝑢 𝑔(𝑡) = ∑ 𝑂𝑟𝑖𝑒𝑛𝑡𝑎𝑡𝑖𝑜𝑛 (𝑤)
𝑤𝜖𝑡
𝑁𝑒𝑔𝑎𝑡𝑖𝑣𝑒 𝑠𝑖 𝑔(𝑡) < 0
Equation 1

Exemple : aimer = +2, ne pas aimer = -2 (négation), bon = +2, très bon = +4 (intensification).

Où g(t) est la somme des orientations du message M. L’orientation(w) est égale à 1 si positive,
-1 si négative et 0 si neutre.

Exemple : J'ai acheté un iPhone il y a quelques ²jours. (2) C'était un bon téléphone. (3) L'écran
tactile était vraiment cool. (4) La qualité de la voix était claire aussi. (5) Cependant, ma mère
était folle de moi comme je ne le lui avais pas dit avant que je l'achète. (6) Elle pensait aussi
que le (prix du) téléphone était trop cher et voulait que je le retourne au magasin.

2, 3 et 4 sont positives, 5 est neutre et 6 est négative.

g(t)= 1+1+1+0-1=2 d’où Polarité(t) est positive.

II.1.2. Synthèse des travaux

L’un des travaux les plus cité dans cette approche est celui de Liu et al. (2005). Les auteurs
décrivent un système, Opinion Observer, qui permet de comparer des produits concurrents en
utilisant les commentaires postés par les internautes. Pour ce faire, ils se basent sur une liste
prédéfinie de termes désignant des caractéristiques de produits. Lorsqu’une de ces

43
Chapitre II : Analyse de sentiments et construction du vocabulaire

caractéristiques est présente dans un texte (commentaire), le système extrait les adjectifs
proches dans la phrase. Ces adjectifs sont ensuite comparés aux adjectifs présents dans leur
dictionnaire d’opinion et ainsi, une polarité est attribuée à la caractéristique du produit.

Lu et al. (2010) ont calculé la force de polarité de critiques en sommant la force de polarité des
adjectifs et adverbes présents dans la phrase en prenant un vocabulaire d'adjectifs et d'adverbes,
la force d'un adjectif ou d'un adverbe varie entre +1 et -1.

Dans cette étude, les polarités des adjectifs et adverbes d'une phrase sont sommées, ce qui
permet d'obtenir sa force de polarité. Si cette dernière est positive, la critique est classée
positive sinon, elle est classée négative, cela a donné une exactitude de 71.65%.

Taboada et al. (2011) quant à eux, ils ont calculé la force de polarité de chaque mot du
vocabulaire essentiellement composé d'adjectifs en utilisant la technique d'agrégation et de
moyenne, ils ont aussi pris en compte l'intensification et la négation, le test a été fait sur
plusieurs corpus et le meilleur résultat signalé est de 90% d'exactitude.

Turney (2002) par contre, a utilisé un moteur de recherche pour classer des critiques dans
différents domaines. Il a choisi comme deux mots graines le mot excellent pour exprimer
l'opinion positive et le mot mauvais pour exprimer l'opinion négative. Il a ensuite effectué une
recherche avec le terme hits pour avoir la corrélation entre les phrases et le mot excellent et la
phrase et le mot mauvais en utilisant un moteur de recherche. Le mot hits dans le moteur de
recherche choisi par Turney qui est AltaVista, donne le nombre de fois où la phrase en entrée
est trouvée sur le web en compagnie du mot excellent et le divise par les fois où la même phrase
a été trouvée avec le mot mauvais tel que, SO désigne l'orientation de la phrase (Sentiment
Orientation). SO est donnée par la formule suivante :
𝐻𝑖𝑡𝑠 (𝑝ℎ𝑟𝑎𝑠𝑒 𝑁𝐸𝐴𝑅 𝑒𝑥𝑐𝑒𝑙𝑙𝑒𝑛𝑡)ℎ𝑖𝑡𝑠 (𝑝𝑜𝑜𝑟)
SO (phrase) = log2
ℎ𝑖𝑡𝑠 (𝑝ℎ𝑟𝑎𝑠𝑒 𝑁𝐸𝐴𝑅 𝑝𝑜𝑜𝑟)ℎ𝑖𝑡𝑠 (𝑒𝑥𝑐𝑒𝑙𝑙𝑒𝑛𝑡)

Si SO est positif alors la phrase est positive, sinon si SO est négatif la phrase est négative. Ce
modèle a donné une exactitude moyenne de 74.4%.

L'approche basée lexique a l'avantage de ne pas avoir besoin d'annotation manuelle, mais ne
donne pas toujours de très bons résultats surtout en termes de rappel, donc plusieurs messages
porteurs d'opinion positive ou négative sont détectés comme neutre, cela est dû à la simplicité
des algorithmes de catégorisation de cette approche et aux mots qui apparaissent dans les
messages du corpus exprimant une opinion positive ou négative et qui ne sont pas dans le
vocabulaire.

44
Chapitre II : Analyse de sentiments et construction du vocabulaire

II.2. Catégorisation basée sur l’apprentissage automatique

II.2.1. Principe de l’approche

La catégorisation des documents en fonction de la nature de l'opinion qui y est exprimée peut-
être résolue à l'aide d'une approche basée sur l'apprentissage automatique. Ce problème peut
être assimilé à une tâche de classification automatique en se basant sur des algorithmes
d'apprentissage automatique (Pang et al., 2002).

Ainsi, l'analyse de sentiments adopte une approche qui découle directement de la fouille de
texte. Cette dernière est très utilisée en raison de ses résultats satisfaisants.

La principale tâche est donc de déterminer si un texte donné appartient à la classe de documents
positifs, négatifs ou neutres grâce à des algorithmes de classification comme le Naïve Bayes
ou le SVM. Ces algorithmes sont entrainés sur un ensemble d'exemples de documents dont la
classe est connue au préalable dit corpus.

Nous allons présenter en détails toutes les étapes et techniques qui s'appliquent à l'apprentissage
automatique dans le domaine de l'analyse de sentiments. Cette section est expressément plus
longue que les deux autres étant donné l’importante des différentes étapes et le succès qu’ont
connu ces approches. Nous présentons dans cette section les différentes étapes qui composent
un tel système.

II.2.1.1. Prétraitement

Les textes contenus dans le corpus jusqu'à présent sont bruts, ils ont donc besoins de quelques
traitements additionnels avant de passer à la phase d'analyse, ces traitements rentrent dans le
cadre de la phase de prétraitement.

Définition

Haddi et al., (2013) définissent le prétraitement des données comme étant le processus de
nettoyage et de préparation du texte pour la classification. Ils affirment que les textes
disponibles en ligne contiennent beaucoup de bruit et de parties non informatives comme les
balises HTML ou les scripts. De plus, beaucoup des mots trouvés dans le textes n'ont aucun
impact sur l'orientation générale de ce dernier.

La phase fait appel à des techniques comme la suppression des mots vides ou encore la
lemmatisation, des techniques que nous détaillerons dans la suite du rapport.

La qualité de l'analyse est étroitement liée à l'efficacité du prétraitement appliqué.

45
Chapitre II : Analyse de sentiments et construction du vocabulaire

Techniques

La phase de prétraitement fait appel à des techniques qui peuvent modifier la forme d'un mot
ou l'éliminer complètement. Les techniques en question sont, à titre d'exemple, la suppression
des caractères spéciaux, les marques de ponctuation, la normalisation de la casse ou encore la
suppression des mots vides. On peut également appliquer des fonctions plus élaborées comme
la lemmatisation ou la racinisation.

Le choix des techniques et l'ordre de leur application est déterminé en fonction des besoins, du
contexte et du type de données. En effet, certaines techniques sont pertinentes pour un certain
type de textes tandis que d'autres ne le sont pas. Nous allons dans ce qui suit présenter les
méthodes de prétraitement les plus utilisées dans la fouille de textes.
➢ Tokenisation

La tokenisation est l'opération qui permet de partitionner une chaine de caractères en


ses composants, Il n'y a pas de méthode formelle et juste pour faire la tokenisation, la
technique dépend étroitement de son application.

Prenons comme exemple le texte suivant : "Oeredoo est superbe, j'adore :-)"

Résultat après tokenisation: "Ooredoo", "est”, "superbe”, "j", "adore", " :-)"

➢ Suppression des mots vides

Les mots qui sont les plus fréquemment utilisés dans le langage sont souvent inutiles et
sont vides de tout sens pour l'analyse de sentiments. Ces mots sont appelés "mots vides"
et ne sont que des mots outils tels que les pronoms ou les prépositions de conjonction.
Il faut donc supprimer ces mots vides, une étape qui a bien fait ses preuves dans les
rapports de (Xue and Zhou, 2009) qui ont démontré l'apport de cette suppression sur la
précision du système.

➢ Racinisation
La stemmatisation ou racinisation est le nom donné au procédé qui vise à transformer
les flexions8 en leur radical ou stemme en ôtant les suffixes et les préfixes grâce à des
algorithmes bien connus. Beaucoup d'algorithmes de racinisation ont été proposés
depuis les années 1960, nous citons celui de Porter qui est de loin le plus utilisé (Jivani
et al., 2011).

Pour illustrer le processus, la racinisation permet de réduire les mots "connecter" et


"connection" à une seule racine qui est "connect".

8 Les formes différentes que peut prendre un mot lorsqu'il est accordé, décliné ou conjugué

46
Chapitre II : Analyse de sentiments et construction du vocabulaire

➢ Lemmtisation

La lemmatisation désigne l'analyse lexicale du contenu d'un texte qui permet de


regrouper les mots d'une même famille. Chacun des mots se trouve ainsi réduit en une
entité appelée lemme (forme canonique). La lemmatisation regroupe les différentes
formes que peut prendre un mot, soit : le nom, le pluriel, le verbe à l'infinitif ou encore
sa conjugaison (Stanford, 2008).

On associe à chaque forme un seul lemme possible. En reprenant l'exemple présenté


plus haut, le lemmatiseur classerait les mots "connection", "connecter", "connectivité"
ou encore "connecterait" dans la même famille.

Autres techniques

En plus de ces techniques, le prétraitement peut inclure d'autres étapes comme la normalisation
de la casse ou encore la suppression des accents. Le contexte des réseaux sociaux lui aussi
implique un certain nombre de traitements particuliers, nous citions :

➢ La suppression des liens hypertexte : En général les URLs n'apportent aucune


information dans le cas d'analyse de sentiments dans du texte, bien au contraire elles
peuvent fausser la prédiction de la subjectivité et la polarité d'un texte donné. Prenons
pour exemple www.beau.dz, ce texte aurait eu le classe positive alors qu'il est totalement
neutre, cette mauvaise prédiction serait due à la présence d'un mot d'opinion dans l'URL.

➢ La suppression des lettres répétées : Les internautes ont tendance à utiliser une suite
de lettres répétées dans un même mot pour exprimer l'intensité du sens que porte ce
dernier. Cela dit, cette répétition des lettres génèrent des mots incorrects et absents des
dictionnaires c'est pourquoi il faut éliminer les lettres obsolètes.

➢ Substitution des hashtags : L’hashtag est un marqueur qui prend la forme d'un ou
plusieurs mots accolés précédés par un dièse (#). Cette manière d'écrire est couramment
utilisée dans les réseaux sociaux afin de marquer un contenu avec des mots clés dans le
but de mettre l'accent sur eux.

II.2.1.2. Annotation

Dans ce type d’approches, le corpus est divisé en deux partie, un corpus d’entrainement et un
corpus de test (voir section I.1.3).

L'annotation du corpus consiste en l'attribution d'une étiquette positive, négative ou neutre à


chaque message du corpus d'entrainement pour permettre au classifieur de s'entraîner dessus
afin de construire le modèle de classification.

47
Chapitre II : Analyse de sentiments et construction du vocabulaire

Le corpus de test est aussi annoté pour évaluer le modèle donné par le classifieur dans la phase
d'entrainement, en appliquant les métriques d'évaluation. Cette étiquette représentera la
véritable classe du message (CC Aggarwal, CX Zhai 2012).

Il existe deux méthodes d'annotation :

Annotation manuelle

L'annotation manuelle ou l'annotation humaine permet de façon sûre que tous les messages
auront la bonne étiquette, ce qui est parfait pour que le classifieur construit un bon modèle de
classification.
Son inconvénient : peut être difficile et très coûteux en temps à mettre en œuvre (CC
Aggarwal, CX Zhai 2012).

Annotation automatique

L'annotation automatique se fait avec une approche basée lexique, cette méthode vient
remédier au coût de temps de l'annotation manuelle mais ne donne pas toujours une très bonne
annotation et le taux d'erreur est souvent élevé, ce qui ne permet pas de construire un bon
modèle de classification (CC Aggarwal, CX Zhai 2012).

II.2.1.3. Représentation des messages

Les messages textuels peuvent être représentés de deux façons distinctes : (1) La première est
la représentation en sac de mots, dans laquelle un message est représenté comme un ensemble
de mots indépendants les uns des autres, avec leurs fréquences associées dans le message. (2)
La deuxième méthode consiste à représenter le message sous forme d'une séquence de mots du
message (des unités sémantiques qui peuvent être des bi-grammes ou des concepts).

On s'intéresse à la représentation en sac de mots qui est majoritairement utilisée par les
chercheurs en raison de sa simplicité pour le processus de classification (G Forman, 2003).
On représente les messages sous la forme de l'ensemble des mots du vocabulaire.

Chaque message i est représenté en un vecteur de dimension N où chaque mot du vocabulaire


est un paramètre auquel on associe une valeur v qui représente le poids du mot dans le message
i.

48
Chapitre II : Analyse de sentiments et construction du vocabulaire

Figure 5 la représentation de sac en mots

Inspiré des techniques de Recherche d’Information, Le poids peut être estimé de plusieurs
façons, nous citons dans ce qui suit les plus utilisées.

1. Représentation booléenne

Dans ce type de représentation, un vecteur dont la taille correspond à celle du vocabulaire


représente le texte. Ainsi à chaque terme du vocabulaire tj, le poids lui correspondant wij se
voit attribuer un 0 ou un 1 selon qu’il est présent dans le document ou pas comme il est montré
dans la formule :

1 𝑠𝑖 𝑙𝑒 𝑡𝑒𝑟𝑚𝑒 𝑡𝑗 𝑒𝑠𝑡 𝑝𝑟é𝑠𝑒𝑛𝑡 𝑑𝑎𝑛𝑠 𝑙𝑒 𝑑𝑜𝑐𝑢𝑚𝑒𝑛𝑡 𝑑𝑖


wij = f(tj ; di) = {
0 𝑠𝑖𝑛𝑜𝑛
Equation 2

Où le document di peut correspondre à un message, un ensemble de messages ou un article


selon le média considéré.

2. Représentation par les fréquences

Dans cette représentation, le poids wij (importance) d’un terme ti est estimé selon sa fréquence
d'apparition dans le document di ainsi le montre la formule suivante :

wij = f(tj ; di) = TF(tj ; di)


Equation 3

49
Chapitre II : Analyse de sentiments et construction du vocabulaire

Où TF (tj ; di) est le nombre d'apparitions de tj dans le document di. Cette représentation,
contrairement au modèle booléen, accorde de l'importance à la fréquence d'apparition du mot
dans le document en partant du principe que plus un mot est fréquent, plus il a de l'importance.

3. Représentation par TF-IDF

La motivation derrière la mise en place de cette mesure de pondération se résume en ces deux
points :

➢ Réduire l'importance des termes les plus fréquents dans le corpus et qui apparaissent
dans pratiquement tous les documents à l'image des mots outils,
➢ Accorder plus d'importance aux mots qui n'apparaissent que dans très peu de documents
du corpus.

La mesure TF-IDF est donnée par la formule générale suivante :


wij = f(tj ; di) = TF(tj ; di) _ IDF(tj)
Equation 4

Où :

➢ TF(tj ; di) reprend la même définition que dans la pondération en fonction des
fréquences.

➢ IDF(tj) représente la fréquence inverse de document, IDF(tj) = log (N.DF (tj)) avec : N
la taille du corpus.

➢ DF(tj) le nombre de document ou tj apparait dans tout le corpus.

4. Word Embedding

Le Word Embedding (WE) est une méthode se focalisant sur l'apprentissage d'une
représentation vectorielle et distributionnelle de mots. Plus spécifiquement, le WE permet de
représenter chaque mot d'un dictionnaire par un vecteur de nombres réels correspondant à ce
message. L’idée derrière les WE est que les mots apparaissant dans des contextes similaires
possèdent des vecteurs correspondants qui sont relativement proches. Par exemple, les mots
« chien » et « chat » peuvent être représentés par des vecteurs relativement peu distants dans
l'espace vectoriel où sont définis leurs vecteurs respectifs. Selon (Goldberg and Levy 2014), la
méthode WE peut être basée sur la prédiction des contextes des mots dans le sens où elles
fournissaient des probabilités de proximité Ainsi, le word embeddings est capable de trouver
que King - man + woman = Queen, sans avoir recours à une ressource sémantique ou à une
intervention humaine. L’une des mises en œuvre les plus connue des WE est le Word2vec
(Goldberg and Levy 2014). Ce dernier intègre deux techniques- CBOW (Continuous Bag Of
Words) et Skip-Gram Model qui sont des réseaux de neurones. Leur rôle est de mettre en

50
Chapitre II : Analyse de sentiments et construction du vocabulaire

correspondance un ou des mots avec une cible variable qui est également un mot. Ces deux
techniques apprennent des poids qui représentent des vecteurs de mots.

➢ CBOW (sac continu de mots)

La façon dont fonctionne le CBOW est de prédire la probabilité d'un mot donné dans un
contexte. Un contexte peut être un seul mot ou un groupe de mots.

Avantages du CBOW :

❖ Être probabiliste, il est censé être supérieur aux méthodes déterministes (en général).
❖ Léger sur la mémoire. Il n'a pas besoin d'avoir d'énormes RAM comme celle de la
matrice de cooccurrence où elle doit stocker trois énormes matrices.

Inconvénients du CBOW :
❖ CBOW prend la moyenne du contexte d'un mot Par exemple, Apple peut être à la
fois un fruit et une entreprise, mais CBOW prend en moyenne les deux contextes et
les place entre un cluster pour les fruits et les entreprises.

❖ La formation d'un CBOW à partir de rien peut prendre une éternité si elle n'est pas
correctement optimisée.

➢ Modèle Skip-Gram

Skip-gram suit la même topologie que le CBOW. Cela ne fait qu’inverser l'architecture de
CBOW. Le but de skip-gram est de prédire le contexte donné d’un mot.

Avoir une représentation vectorielle des mots permet d’utiliser ces vecteurs comme des
caractéristiques dans un grand nombre de tâches de base de traitement du langage comme
la classification de texte. On peut aussi alimenter un réseau de neurones avec nos vecteurs
caractéristiques des mots.

II.2.1.4. Algorithmes d’apprentissage automatique

L'apprentissage automatique est un sous-domaine de l'intelligence artificielle (IA). En général,


l'objectif de l'apprentissage automatique est de comprendre la structure des données et de les
intégrer dans des modèles qui peuvent être compris et utilisés après.

Bien que l'apprentissage automatique soit un domaine de l'informatique, il diffère des


approches informatiques traditionnelles. En effet dans cette dernière, les algorithmes sont des
ensembles d'instructions explicitement programmées utilisées par les ordinateurs pour calculer
ou résoudre des problèmes. Les algorithmes d'apprentissage automatique permettent aux

51
Chapitre II : Analyse de sentiments et construction du vocabulaire

ordinateurs de s'entraîner sur les entrées de données et utilisent l'analyse statistique pour
produire des valeurs qui se situent dans une plage spécifique. Pour cette raison, l'apprentissage
automatique facilite l'utilisation des ordinateurs dans la construction de modèles à partir de
données d'échantillonnage afin d'automatiser les processus de prise de décision en fonction des
données saisies, (Lu et al. 2010).

Il existe une variété d’algorithmes dans la littérature, parmi eux nous citons :

a) Les k-plus proche voisins

Le classifieur k-plus proche voisins (k-ppv) est le classifieur le plus simple. La classification
de chaque nouveau message s’effectue en déterminant, parmi les messages préalablement
classés (càd annotés), la classe majoritaire de ses k plus proche voisins. Le principe de base
consiste à calculer la distance entre les messages annotés et le nouveau message à classer, donc
il n'y pas de réelle phase d'apprentissage avec les k-plus proche voisins, (Lu et al. 2010).

b) Classifieur Naïve Bayes

Le classifieur Naïve Bayes est le classifieur le plus couramment utilisé dans le domaine de
l’analyse des sentiments Il s’agit d’un modèle de classification probabiliste permettant
d’associer un message à une classe donnée. Un message est représenté par la distribution de
ses mots. Elle est estimée par la probabilité à postériori d'une classe, (Agarwal, Xie,Vovsha,
Rambow, and Passonneau 2011).

Plus formellement, soit M un message que nous voulons classer. M est représenté par les mots
du vocabulaire M = (w1, w2, ..., wm) et la classe C appartient à {-1, +1} où -1 est négative, +1
est positive.

Le but étant de trouver la classe C du message M, nous calculons la probabilité conditionnelle

P (C|M), le classifieur est basé sur le théorème de Bayes défini comme suit :

P(C) . P(M|C)
𝑃(𝐶|𝑀) =
𝑃(𝑀)
Equation 5

➢ P (C) est la probabilité de la classe C indépendamment du message M.

➢ P (M) est la probabilité d'observer les mots de M indépendamment de la classe C.


|
➢ P(M|C) est la probabilité d'observer les mots de M sachant que la classe C est vérifiée.

La méthode Naïve Bayes suppose que les mots de M sont indépendants d'où :
𝑃(𝑀 |𝐶) = 𝑃(𝑤1 |𝐶). 𝑃(𝑤2 |𝐶) … 𝑃(𝑤𝑚 |𝐶)
Equation 6

52
Chapitre II : Analyse de sentiments et construction du vocabulaire

En Supposant d'indépendance des mots, l'équation peut être formulée comme suit :

𝑃(𝐶).𝑃(𝑤1 |𝐶 ).𝑃(𝑤2 |𝐶 )…𝑃(𝑤𝑚 |𝐶 ) 𝑃(𝐶).𝑃(𝑤1 |𝐶 ).𝑃(𝑤2 |𝐶 )…𝑃(𝑤𝑚 |𝐶 )


𝑃(𝑀 |𝐶) = =
𝑃(𝑀) ∑𝐶′ 𝑃(𝐶′)𝑃(𝑤1 |𝐶′).𝑃(𝑤2 |𝐶′)…𝑃(𝑤𝑚 |𝐶′)

Equation 7

Pour identifier la classe C du message M, nous retiendrons celle qui maximise :

P (C)P (w1|C) ·P (w2|C) .... · P (Wm|C) entre les deux classes positive et négative, soit Cˆ
estimée comme suit ainsi :
𝐶̂ = 𝑎𝑟𝑔𝑚𝑎𝑥 ( 𝑃(𝐶) 𝑃(𝑤1 |𝐶). 𝑃(𝑤2 |𝐶) … 𝑃(𝑤𝑚 |𝐶)
Equation 8

Les probabilité P (C) et P (wi| C) sont calculées à partir des statistiques du corpus
d'entrainement.
𝑁𝑊1𝐶 + 1
𝑃(𝑤𝑖 |𝐶) =
𝑁𝐶 + 2
Equation 9

c) Le Maximum d’Entropie

Le modèle maximum entropie est un classifieur probabiliste linéaire et discriminant, tout


comme le classifieur Naïve Bayes, le classifieur Maximum Entropie détermine la probabilité
d'une classe d'un message en fonction de sa distribution de mots, (Lu et al. 2010).

Considérons un message M que nous voulons classer, le message est représenté par les mots
du vocabulaire M = (w1, w2, ..., wm) et la classe C ∈ {−1, +1}.

La probabilité P (C|M) est calculée comme suit :


exp(∑𝑚𝑖=1 𝜆𝑤𝑖 𝑓𝑤𝑖(𝑀,𝐶) )
𝑃(𝐶|𝑀) =
∑𝐶′(exp(∑𝑚𝑗=1 𝜆𝑤𝑖 𝑓𝑤𝑖(𝑀,𝐶′) ))
Equation 10

La fonction fwi (M, C) est appelée la fonction caractéristique de wi, elle permet de définir les
contraintes du modèle, elle est dé ni comme suit :

1 𝑠𝑖 𝑊𝑖 > 0 𝑒𝑡 𝑀 𝑒𝑠𝑡 𝑎𝑛𝑛𝑜𝑡é 𝑐𝑜𝑚𝑚𝑒 𝐶


𝑓(𝑊1, 𝐶) = {
0 𝑠𝑖𝑛𝑜𝑛
Equation 11

λwi représente le poids du mot wi (force de polarité), les paramètres λwi sont définis
de façon à maximiser l'entropie tout en respectant les contrainte définis par fwi (M, C).

53
Chapitre II : Analyse de sentiments et construction du vocabulaire

Le classifieur maximum entropie ne fait aucune hypothèse d'indépendance entre les mots de M
contrairement à Naïve Bayes.

d) Les arbres de décision

Les arbres de décision représentent l'une des méthodes les plus connues et les plus utilisées en
classification, en particulier dans la fouille d'opinions, ils ont l'avantage d'être lisibles et très
faciles à comprendre et à interpréter ce qui est une des raisons de leurs succès.

Les arbres de décision fournissent une décomposition hiérarchique de l'espace du corpus


d'entrainement dans lequel une condition sur la valeur d'un mot est utilisée pour diviser le
corpus.

La méthode consiste à détecter les mots du vocabulaire qui permettent de répartir les messages
en classes positive et négative, nous commençons par choisir le mot qui discrimine le mieux
les messages de chaque classe, de façon à avoir des sous-corpus, que l'on appelle des nœuds,
contenant chacun le plus grand nombre possible de messages d'une seule classe, (Agarwal,
Xie,Vovsha, Rambow, and Passonneau 2011).

Puis nous réitérons la même opération sur chaque nœud obtenu jusqu'à ce que la discrimination
des messages ne soit plus possible ou plus souhaitable. Les nœuds terminaux (les feuilles) sont
constitués des messages d'une seule classe, un message est donc affecté à la classe de la feuille
s'il satisfait l'ensemble des règles permettant d'arriver à cette feuille, l'ensemble des règles
de toutes les feuilles constituent le modèle de classification.

e) SVM

Les SVM font partie des classifieurs linéaires, ils peuvent être définis comme un système qui
permet de construire un hyperplan. Les SVM séparent de manière optimale les messages en
deux classes tout en maximisant la marge qui sépare les deux classes et l'hyperplan, (Agarwal,
Xie,Vovsha, Rambow, and Passonneau 2011).
Soit E = {(xi, yi) ∈ Rm × {−1, +1}}1≤i≤n un ensemble de messages annotés, où xi est un
message représenté par m caractéristiques (mots du vocabulaire) et yi = {−1, +1} sont ses
annotations (classe) correspondantes, l'objectif étant de trouver H : w · x + b l'hyperplan
satisfaisant les conditions suivantes :
𝑊 ∗ 𝑋𝑖 + 𝑏 ≥ 0 si Yi = 1
{
𝑊 + 𝑋𝑖 + 𝑏 ≤ 0 si Yi = −1
Equation 12

De manière équivalente
Yi (w * xi + b) ≥ 0 ∀i = 1, ..., n
Equation 13

54
Chapitre II : Analyse de sentiments et construction du vocabulaire

Si un tel hyperplan existe pour les n messages, nous parlons alors de messages linéairement
séparables, dans le cas contraire nous parlons de messages non linéairement séparables.
Dans le cas de messages linéairement séparables, il existe une infinité d'hyperplans qui vérifie
les conditions citées plus haut, cependant le but est de trouver l'hyperplan optimal (maximisant
la marge) qui peut être obtenu par la résolution du problème d'optimisation suivant :
1
𝑚𝑖𝑛 𝑤 𝑇 𝑤
{ 2
𝑦𝑖 (𝑤. 𝑥𝑖 + 𝑏) ≥ 1 ∀𝑖 = 1, … , 𝑛
Equation 14

Nous cherchons le w∗ optimal et le b∗ optimal pour avoir l'hyperplan optimal.

Dans certains cas de messages non linéairement séparables, un séparateur linéaire donnerait
quand même de bons résultats, nous pouvons accepter que quelques messages franchissent la
marge ou qu'ils soient du mauvais côté de l'hyperplan, nous parlons dans ce cas de SVM à
marge poreuse.
Nous ajoutons une variable d'écart ξi qui renseigne à quel point le couple (xi, yi) viole la
contrainte :

yi (w · xi + b) ≥ 1 − ξi

Tel que :

➢ Si ξi = 0, le couple (xi, yi) respecte la contrainte.

➢ Si 0 < ξi < 1, le couple (xi, yi) franchit la marge.

➢ Si ξi > 1, le couple (xi, yi) est du mauvais côté de l'hyperplan.


𝑛
Nous souhaitons minimiser ∑ ξi , le problème d'optimisation devient :
𝑘=1

𝑛
1
𝑚𝑖𝑛 𝑤 𝑇 + 𝐶 ∑ 𝜉𝑖
2
𝑖+1
𝑦𝑖 (𝑤. 𝑥𝑖 + 𝑏) ≥ 𝜉𝑖 − 1, ∀𝑖 = 1, … , 𝑛

{𝜉𝑖 ≥ 0, ∀𝑖 = 1, … , 𝑛
Equation 15

Le paramètre C gère le relâchement de la contrainte, plus C est petit plus nous acceptons que
des messages violent la contrainte.

f) Réseaux de neurones

Les réseaux de neurones sont inspirés des neurones réels et du système nerveux humain.
Chaque neurone est interconnecté avec d'autres neurones pour former des couches (niveaux),
La couche d'entrée est responsable de la saisie des données au réseau. La couche de sortie

55
Chapitre II : Analyse de sentiments et construction du vocabulaire

permet de présenter les résultats calculés par le réseau sur le vecteur d'entrée fourni au réseau.
Entre l'entrée du réseau et sa sortie, des couches intermédiaires (aussi appelées couches cachées)
peuvent être utilisées.

Dans notre cas le réseau de neurones sera utilisé pour résoudre le problème de classification,
la couche d'entrée reçoit les messages annotés et la couche de sortie fournit la prédiction de la
classe du message saisi en entrée. Les couches intermédiaires ont le rôle de transformer les
données d'entrée, pendant l'apprentissage, pour construire le modèle.

Un neurone est caractérisé par :

➢ Signaux d'entrée n1, n2, ..., nk

➢ Poids de connexions p1, p2, ..., pk

➢ Fonction d'activation F (n, p)

➢ Fonction de transition f (F (n, p))

➢ Signal de sortie Sj = f (F (n, p))

Un neurone reçoit des signaux en entrée et renvoie une valeur en sortie. Une fonction
d'activation calcule une première valeur à partir des neurones connectés en entrée et des poids
des connexions. Il s'agit le plus souvent de la somme pondérée des valeurs des neurones en
entrée (F (n, p) = Σknipi où ni est la valeur du neurone i du niveau précédent et pi est le poids
associé à la connexion entre le neurone i et le neurone observé). Afin de déterminer une valeur
en sortie, une seconde fonction, appelée fonction de transition, est appliquée à cette valeur (f
(F (n, p))) qui donne le signal de sortie du neurone Sj.

Un réseau de neurones opère en deux phases consécutives : une phase de conception et une
phase d'utilisation. La première phase consiste à choisir l'architecture du réseau et de ses
paramètres à savoir le nombre de couches intermédiaires, le nombre de neurones dans chacune
de ces couches, le type de réseau (avec boucle ou sans boucle), les fonctions de transition, et
les poids initiaux dans le réseau de neurones. Une fois ces choix fixés, on peut entrainer le
réseau sur les messages annotés. Au cours de cette phase (apprentissage), la valeur renvoyée
par le neurone en sortie est comparée à la valeur réelle (l'annotation), et les poids des
connexions sont ajustés pour améliorer la prédiction. Le corpus d'entrainement est parcouru de
nombreuses fois (souvent plusieurs milliers). L'apprentissage s'achève lorsqu'une solution
optimale a été trouvée, que les poids ne sont plus modifiés significativement, ou lorsqu'un
nombre d'itérations fixé a été atteint.

56
Chapitre II : Analyse de sentiments et construction du vocabulaire

g) Modèles Word Embedding basés sur les réseaux de neurones


NNLM

Figure 6: la structure du modèle NNLM

Proposé par Bengio et al, (2003) NNLM (Neural Network Language Model) apprend
simultanément un modèle de Word Embedding et un modèle de langue. Ce dernier permet la
prédiction de la distribution d’un mot selon la séquence de mots qui le précède dans un texte.
Pour chaque échantillon du corpus, le modèle calcule le maximum de vraisemblance d’un mot
étant donné les mots qui le précède dans le texte. Par exemple, pour une séquence w1,
w2, . . .wn. On cherche à calculer le maximum de vraisemblance de p (wn|w1,..., wn-1) où wn
est le mot à prédire dans un corpus donné.Le modèle NNLM utilise comme intrant une
concaténation des Words Embedding des mots précédents : x =[e (w1),. . . e (wn-2), e (wn-1)]
où e(wi) est le Embedding du mot wi.

La structure du modèle est un réseau neuronal à rétroaction avec une couche cachée :
h = tanh (d + Hx) et y = b + Uh

Où U est une matrice de transformation, b et d sont des vecteurs de biais, tanh est la fonction
tangente hyperbolique. Enfin, il faut appliquer y sur une couche softmax9 pour obtenir la
probabilité du mot cible.

9Ou fonction exponentielle normalisée, est une généralisation de la fonction logistique qui prend en entrée un
vecteur de K nombres réels et qui en sort un vecteur de K nombres réels strictement positifs et de somme 1.

57
Chapitre II : Analyse de sentiments et construction du vocabulaire

Le modèle C&W

Figure 7: La structure du modèle C&W

(Collobert et Weston, 2007) ont proposé le modèle C&W qui n'entraîne que le Word
Embedding C’est à dire il ne prédit pas un mot mais il combine le « target word » ou le mot
cible et son contexte, puis leur attribue un score.
Le mot cible de ce modèle est le mot central dans une séquence de mots. L'entrée est la
concaténation de l'incorporation du mot cible avec des mots contextuels, c'est-à-dire la
concaténation de la séquence : e (w1) . . . e (wn).

La fonction qui donne le score est un réseau de neurones à une couche cachée. L'objectif de
l'entraînement est de maximiser le score d'une séquence de corpus tout en minimisant le score
d'une séquence de bruit.

Max (0,1 - s (w, c) + s (w’, c))

Où w est le mot cible, c est son contexte et s est la fonction score.

Dans la séquence de bruit, le mot cible w est remplacé par un mot aléatoire w’ du vocabulaire.

(Pang et al, 2002) ont expérimenté le modèle booléen contre la fréquence d'apparition et ont
finalement obtenu de meilleurs résultats avec le premier modèle.

II.2.2 Synthèse des travaux


Hypothèse : Dans cette approche il est nécessaire que tout le corpus soit annoté manuellement.

Dans cette approche, le problème est essentiellement un problème de classification. Il s'agit


alors de créer un modèle afin de classifier les messages en opinions positives, négatives ou
neutres.

Les chercheurs construisent alors le vocabulaire en utilisant l'extraction et la sélection des


caractéristiques, l'objectif est d'avoir un modèle de classification obtenu en entrainant le

58
Chapitre II : Analyse de sentiments et construction du vocabulaire

classifieur sur le corpus d'entrainement annoté par des méthodes d'apprentissage automatique
supervisé tel que Naïve Bayes, Maximum Entropy, SVM, Arbre de décision.

II.2.2.1 Construction du vocabulaire

Comme mentionnée précédemment, on part du principe que le corpus est annoté, le vocabulaire
de mots d'opinion est construit de façon complètement automatique, c'est à dire sans un
ensemble de mots d'opinion de départ, les chercheurs parlent dans ce cas de figure d'extraction
et de sélection des caractéristiques (features) du texte, Pang et al. (2008)

Les caractéristiques les plus couramment utilisés sont :


➢ La présence de termes et leurs fréquences : les termes présents dans le corpus sont
représentés en : représentation booléenne, fréquentiel, TF-IDF (voir Chapitre III section
5.3). Cette caractéristique représente le nombre de fois ou le terme apparait dans le
corpus Bermingham and Smeaton (2011).

➢ Part of speech (POS) : extraction des adjectifs (qui représentent le plus les opinions)
dans le corpus en utilisant des règles linguistiques Pak and Paroubek (2010).

➢ Les mots d'opinion et les phrases : construits avec une méthode basée lexique
(dictionnaire, corpus). Comme exemple Rilo et al. (2006) ont jugés que la position des
mots d'opinions dans la phrase avait un poids important sur la polarité.

➢ Les uni-grammes, bi-grammes, n-grammes : négation, intensification. Dans cette partie,


on s'intéresse aux problèmes que pose la combinaison de deux mots ou plus (ex. : beau
et pas beau, jolie et très jolie). La négation par exemple change la polarité Kennedy and
Inkpen (2006).

Sélection des caractéristiques : Pour la sélection des caractéristiques, les chercheurs


travaillent avec un sac de mots (Bag of Words (BoWs)) extraits directement des messages du
corpus après prétraitement (voir Chapitre III section 4) et représentation (voir Chapitre III
section 5), ensuite ils réduisent la taille de ce sac de mots, s’il est trop grand pour être exploité
par les classifieurs, en calculant la corrélation entre chaque mot du sac de mots et les messages
annotés positifs et les messages annotés négatifs en utilisant l'information mutuelle PMI ou le
test de khi2 Aggarwal and Zhai (2012) Medhat et al. (2014) et ne gardent que les mots les plus
corrélés à la classe positive et négative, et donc les mots qui n'influent pas à la classification
seront supprimés.

Abbasi et al. (2008) proposent une sélection de caractéristiques basée sur un algorithme
génétique pour la construction du vocabulaire dans deux langues (anglais et arabe), cela a
donné d'excellents résultats avec une exactitude de 91.7% en utilisant l'algorithme SVM pour
la classification.

59
Chapitre II : Analyse de sentiments et construction du vocabulaire

Dans Dang et al. (2010), les auteurs comparent plusieurs techniques de sélection des
caractéristiques (PMI, khi-2, GI) pour réduire le nombre de mots du vocabulaire sur des corpus
différents de petite taille et utilisent SVM pour la classification, la méthode Gain Information
(GI) donne les meilleurs résultats avec une précision de 84%. Les auteurs donnent, comme
perspective, de comparer les méthodes de sélection des caractéristiques sur des corpus de
grande taille.

II.2.2.2. Classification

Les méthodes de classification apprentissage automatique (machine learning) reposent sur un


ensemble de messages annotés au préalable positifs, négatifs ou neutres. Chaque message est
représenté par un vecteur de mots du vocabulaire qui a été construit par l'extraction et la
sélection des caractéristiques, cet ensemble de messages forme le corpus d'entrainement sur
lequel le classifieur s'entraine pour construire un modèle de classification, qui sera ensuite
utilisé pour prédire la classe du corpus de test et des nouveaux messages. Il existe plusieurs
classifieurs utilisés par les chercheurs dans le domaine de la fouille d'opinions, nous avons
détaillé tous les classifieurs dans la partie II.2.1.4.

Étant donné que les travaux utilisent dans la plupart des cas, plusieurs caractéristiques ainsi
que différents classifieurs, dans la suite nous allons classer les travaux en fonction des
domaines d'application et des sources de données du corpus.

Pang et al. (2002) utilisent les classifieurs Naïve Bayes, Maximum Entropy et SVM pour
l’analyse de sentiments sur des critiques de films, ils classent les critiques en deux classes,
positives ou négatives. Ils utilisent un sac de mots d'uni-grammes comme caractéristiques
(features) et comparent entre les trois classifieurs qui sont SVM, NB et ME. Le classifieur
SVM donne de meilleurs résultats avec une exactitude de 82.9% contre 81.5% pour Naïve
Bayes et 81% pour Maximum Entropy. Par la suite, les auteurs comparent aussi les résultats
obtenus en utilisant plusieurs caractéristiques qui sont les bi-grammes, POS et la représentation
booléenne et fréquentielles des termes comme caractéristiques (features). Contre toute attente,
la représentation booléenne et l'utilisation d'uni-grammes donne légèrement de meilleurs
résultats pour tous les classifieurs cités, ce qui peut sembler illogique car les uni-gramme ne
prennent pas en considération la négation et la pondération des mots.

Pang and Lee (2004) proposent un système de classification de critiques de films en deux
étapes :

La première étape est l'analyse de subjectivité des messages qui consiste à classifier les
messages en subjectifs et objectifs.

60
Chapitre II : Analyse de sentiments et construction du vocabulaire

La deuxième étape est de classifier les messages subjectifs en deux classes, soit dans la classe
positive ou la classe négative, en utilisant les méthodes Naïve Bayes et SVM. Cela à donner
une exactitude de 86.4% pour Naïve Bayes et 86.15% pour SVM.

Kennedy and Inkpen (2006) utilisent un algorithme d'apprentissage automatique, Support des
machines vectorielles. Ils commencent avec les caractéristiques Unigrams et puis ils ajoutent
des Bigrams qui se composent d'un ‘Valance Shifter’ et d'un autre mot. La précision de la
classification est très élevée, et les bigrams à Valance Shifter l’améliorent légèrement.

Boiy and Moens (2009) font une analyse de sentiments sur des documents extraits de différents
forums, blogs et critiques de produits dans les langues anglaise, allemande et française en
utilisant les classifieurs Naïve Bayes, Maximum Entropy et SVM, et font une comparaison
entre les langues. Les résultats donnent une exactitude de 83% pour l'anglais, 70% pour
l'allemand et 68% pour le français.

Saleh et al. (2011) effectuent plusieurs expériences en utilisant SVM pour comparer plusieurs
caractéristiques (uni-grammes, bi-grammes, tri-grammes), et aussi les représentations
(booléenne, fréquentielles, TF-IDF) avec plusieurs corpus différents extrait d'Amazon10 , la
meilleure exactitude signalée est de 91.51% en utilisant les bi-grammes comme caractéristiques
et la représentation TF-IDF.

Wang et al. (2014) comparent entre plusieurs classifieurs : Naïve Bayes, Maximum Entropy,
Arbre de décision, K-plus proche voisin, SVM, entre les représentations booléennes,
fréquentielles, TF-IDF, et entre les caractéristiques uni-grammes, bi-grammes et cela avec
plusieurs corpus, le meilleur résultat signalé est pour le Maximum Entropy avec 92.62%
d'exactitude en utilisant la représentation fréquentielle et les bi-grammes, et le meilleur résultat
moyen entre les différents corpus est pour SVM avec 79% d'exactitude en utilisant la
représentation TF-IDF et les uni-grammes.

Pak and Paroubek (2010) travaillent sur le réseau social Twitter et utilisant les Tweets comme
corpus, ils classifient les Tweets en trois classes, positive, négative ou neutre. Le système
classifie les Tweets en subjectifs et objectifs, ensuite classifie les Tweets subjectifs en positif
et négatif, tout cela en utilisant les émoticônes et POS comme caractéristiques et les classifieurs
Naïve Bayes et SVM.

Jiang et al. (2011) ont travaillé sur Twitter en collectant des corpus de 400 Tweets pour chaque
requête. L'information mutuelle PMI a été appliquée pour sélectionner les caractéristiques et
donc un vocabulaire pour chaque requête, puis les auteurs ont utilisé SVM pour la classification

10 Amazon.com, Inc. est une entreprise de commerce électronique américaine basée à Seattle. Sa spécialité initiale est
la vente de livres, mais elle s'est diversifiée dans d'autres produits, notamment dans la vente de tous types de
produits culturels : disques CD, musique en téléchargement, DVD, appareils photos numériques, informatique et
dans l'équipement de la maison, cloud, etc.

61
Chapitre II : Analyse de sentiments et construction du vocabulaire

selon la subjectivité, qui donne 68.2% de taux d'exactitude, contre la classification selon la
polarité qui donne une exactitude de 85.6%.

Zhang et al. (2011b) classifient les opinions de critiques des restaurants en utilisant les
classifieurs Naïve Bayes et SVM, les représentations booléennes et fréquentielles, les
caractéristiques uni-grammes, bi-grammes et tri-grammes, et en variant le nombre de mots du
vocabulaire pris entre 500 et 1600 mots lors de l'étape de sélection des caractéristiques, la
meilleure exactitude signalée est de 95.67% pour Naïve Bayes.

Kang et al. (2012) ont créé un vocabulaire pour un corpus de critiques de restaurants, en
utilisant les uni-grammes, bi-grammes, la négation et l'intensification comme caractéristiques,
et ont proposé deux méthodes Naïve Bayes améliorées pour classifier les messages en classe
positive et négative, le résultat donne une exactitude de 81.2%.

Cette approche est majoritairement utilisée par les chercheurs car elle donne de meilleurs
résultats mais possède l'inconvénient de la nécessité de l'annotation manuelle du corpus qui est
difficile à effectuer lorsque nous avons un ensemble conséquent de messages dans le corpus.

II.3. L’approche hybride

II.3.1. Principe de l’approche


Une première façon de faire est d’utiliser les dictionnaires afin de préparer le corpus avant de
classer les textes à l’aide d’outils d’apprentissage automatique. Wilson et al. (2004).

Une autre façon de combiner les méthodes est d’utiliser les techniques d’apprentissage
automatique dans le but de construire les dictionnaires d’opinion nécessaires à l’approche basée
lexique.

Hatzivassiloglou et McKeown (1997) présentent une méthode ayant pour objectif de définir
l’orientation sémantique des adjectifs pour la construction du dictionnaire d’opinion. Ils
extraient tout d’abord tous les adjectifs du corpus à l’aide d’un analyseur syntaxique, puis
utilisent un algorithme de clustering afin de classer les adjectifs selon leur polarité.
Une dernière façon d’utiliser conjointement les deux approches est de construire plusieurs
types de classifieurs et de combiner leurs résultats, soit par des systèmes de vote, soit par un
algorithme d’apprentissage (Dziczkowski et Wegrzyn-Wolska, 2008).

II.3.2. Synthèse des travaux


Cette approche combine entre l'approche basée lexique et l'approche basée apprentissage
automatique et tente de corriger l'inconvénient de l'approche basée lexique du faible rappel et
de l'approche basée apprentissage automatique de l'annotation manuelle.

62
Chapitre II : Analyse de sentiments et construction du vocabulaire

Wilson et al. (2004) préparent les données à l’aide d’outils de Traitement Automatique des
langues afin de sélectionner un vocabulaire d’opinion. Ces mots présélectionnés sont ensuite
utilisés comme vecteurs de représentation des textes pour les outils d’apprentissage supervisé.
Trois algorithmes d’apprentissage sont comparés : BoostTexter (Schapire et Singer, 2000),
Ripper (Cohen, 1996) et SVM light (Joachims, 1999a).

Nigam et Hurst (2006) utilisent des techniques provenant du Traitement Automatique des
Langues afin de détecter dans les textes les mots et expressions porteurs d’opinion et ajoutent
des marques dans le texte (+ ou – pour opinion positive et opinion négative). Ils utilisent ensuite
l’apprentissage automatique pour classer les textes selon leur opinion générale.

Narayanan et al. (2009) ont effectué une analyse de sentiments au niveau phrase, ils
déterminent la polarité des phrases par la méthode basée lexique en utilisant les mots d'opinions
positifs et négatifs, ensuite, ils appliquent SVM sur les phrases annotées automatiquement par
la méthode basée lexique, cela a donné une exactitude de 75.6%.

Xia et al. (2011) ont proposé deux méthodes d'annotation automatique de corpus
d'entrainement en prenant en considération la négation et l'intensification des mots d'opinion
et le POS, et en appliquant par la suite Naïve Bayes, Maximum Entropy et SVM, cela a donné
une exactitude de 87.7%.

Zhang et al. (2011a) ont travaillé sur un corpus de Tweets avec différentes requêtes, ils ont
annoté le corpus d'entrainement avec la méthode basée lexique en utilisant POS et les mots
d'opinions, ensuite, entrainent le classifieur sur ce corpus avec SVM. Cette méthode a donné
de bons résultats avec une exactitude de 85.4%.

Li and Xu (2014) ont recueilli une liste de mots d'émotions et de phrases courtes pour identifier
les opinions dans les Tweets, ils ont utilisé la sélection des caractéristiques avec les tests de
khi2 et l'algorithme SVR qui est un modèle de régression linaire utilisé pour la classification,
les résultats ont donnés une précision de 75.7%.

Seyed-Ali Bahrainian, Andreas Dengel (2013) : en se basant sur les résultats présentés dans
leur article ou ils ont testé les effets de la présence ou de l'absence d'émoticônes et de mots
d'arrêt dans le vecteur caractéristique unigram, ils considérent un classificateur SVM (Support
Vector Machine) formé sur une caractéristique de Bag-Of-Words unigram comme Baseline.
Ils comparent la performance de leur Baseline présumée à celle d'un algorithme inédit de
détection de polarité non supervisée (PD) ainsi qu'à celle d'une nouvelle méthode hybride dans
un benchmark. Leurs résultats expérimentaux indiquent que la méthode hybride surpasse toutes
les autres méthodes mentionnées en termes de précision de classification.

Le tableau deux présente une synthèse des travaux présentés précédemment.

63
Chapitre II : Analyse de sentiments et construction du vocabulaire

Table 2 Synthèse bibliographique

Articles Méthodes Corpus Résultats

Turney (2002) Basée Corpus, PMI Multi domaines Exactitude = 74.39%


Précision = 64%,
Hu and Liu (2004) Basée dictionnaire Critiques de produits Rappel = 69%,
Exactitude = 84%
Liu et al. (2005) Basée dictionnaire Critiques de produits Exactitude = 86.7%

Kanayama and Critiques de films et de


Basée Corpus Précision = 91.5%
Nasukawa (2006) produits
Précision = 93%,
Basée lexique : dictionnaire,
Ding et al. (2008) Critiques de produits Rappel = 76%,
Corpus
F-mesure = 83%
Exactitude =
Lu et al. (2010) Basée corpus, force de polarité Critiques de produits
71.65%
Taboada et al. Basée corpus, force de polarité,
Critiques de produits Exactitude = 90%
(2011) négation, intensification
Exactitude :
Naïve Bayes, Maximum SVM = 82.9%,
Pang et al. (2002) Critiques de films
Entropie, SVM NB = 81.5 %,
¨

ME = 81%
Exactitude :
Pang and Lee
Naïve Bayes, SVM Critiques de films NB = 86.4%,
(2004)
SVM = 86.15%
Abbasi et al.
AG, SVM Forums Exactitude = 91.7%
(2008)
Boiy and Moens Naïve Bayes, Maximum Forums, Blogs, Critiques
Exactitude = 83%
(2009) Entropie, SVM de produits
Dang et al. (2010) GI, PMI, khi-2, SVM Critiques de produits Exactitude = 84%
Pak and Paroubek
Naïve Bayes, SVM Twitter Précision = 89.3%
(2010)
Saleh et al. (2011) SVM Critiques de produits Exactitude = 91.51%

Jiang et al. (2011) PMI, SVM Twitter Exactitude = 85.6%


Zhang et al.
PMI, Naïve Bayes, SVM Critiques de restaurants Exactitude = 95.67%
(2011b)
Kang et al. (2012) Naïve Bayes Critiques de restaurants Exactitude = 81.2%
Exactitude :
SVM = 86%,
Naïve Bayes, Maximum
Critiques de produits, NB = 83%,
Wang et al. (2014) Entropie, Arbre de décision, k-
Forums ME = 92%,
ppv, SVM
AD = 81%,
k-ppv = 79%

64
Chapitre II : Analyse de sentiments et construction du vocabulaire

Narayanan et al.
Dictionnaire, SVM Multi domaines Exactitude = 75.6%
(2009)
Dictionnaire, Naïve Bayes,
Xia et al. (2011) Critiques de produits Exactitude = 87.7%
Maximum Entropie, SVM
Zhang et al.
Basée corpus, khi-2, SVM Twitter Exactitude = 85.4%
(2011a)
Li and Xu (2014) Basée corpus, khi-2, SVM Twitter Exactitude = 75.7%
Basée lexique : basée
Abdaoui (2016) Forums de santé Exactitude = 94.4%
dictionnaire
Seyed-Ali
Approche hybride Twitter Exactitude = 86.7%
Bahrainian (2016)
Kennedy and Apprentissage automatique :
Critiques de films Exactitude = 83.7%
Inkpen (2006) SVM
Wilson et al. (2004) Approche hybride Critiques de produits Exactitude = 82.65%
Nigam et Hurst Exactitude = 82%
Approche hybride Forums
(2006) Rappel = 78%

III. Outils d’analyse de sentiment sur les réseaux


sociaux
L'utilisation d'un outil d'analyse automatique des sentiments est un besoin primordial pour
l'entreprise afin de collecter, de filtrer et d'exploiter les opinions à partir de l'énorme volume
de données disponible sur les réseaux sociaux.

Il existe à ce jour plus de 200 plateformes de surveillance des médias sociaux proposant des
outils de gestion, des outils de veille, d’analyse ou les trois combinés, pour des comptes
individuels, petites entreprises ou grandes entreprises. La majorité de ces outils sont payants,
mais la majorité offre des périodes d’essais gratuites avec moins de fonctionnalités. De ce lot,
en voici quelques-uns devraient retenir l’attention pour leur polyvalence.

Les approches derrières des outils sont celles que nous avons décrit dans la section précédente.
Nous présentons les caractéristiques de chacun de ces outils dans ce qui suit.
Brand24 :

Brand2411 pour la richesse des fonctionnalités offertes pour la gestion, la veille et l’analyse
des opérations sociales. La plateforme offre entre autres :

➢ L’identification automatique du sentiment issu d’un commentaire ou réaction (positif,


neutre, négatif) de puis le corpus collecté.

➢ Un flux de mentions plus organisé pour interagir plus rapidement.

11 https://brand24.com/

65
Chapitre II : Analyse de sentiments et construction du vocabulaire

➢ Un tableau de bord sur le volume de discussion.

➢ Il permet de calculer un indice de notoriété calculé pour chaque participant à une


discussion par exemple

➢ Il permet aussi de calculer un indice de popularité des publications pour mesurer leurs
performances, le genre d’engagement d’elle offre et ceci sans avoir à la lire ou la
chercher

➢ Cependant cet outil ne traite que la langue anglaise.


Rival.IQ :

En matière de veille, notamment concurrentielle, Rival IQ 12 est un outil qui permet d’avoir
une vue sur la gestion de communauté d’une marque versus ses concurrents et ce, sur une
multitude de plateformes. Cette plateforme offre entre autres :

➢ Un tableau de bord qui permet de trier et d’afficher les contenus par goûts, les
commentaires, le type de publication et plus, afin d’analyser facilement les messages
les plus et les moins attrayants ;

➢ L’identification du type de contenu dans du marché qui obtient le plus d’engagements ;

➢ L’analyse de chaque message social issu du paysage concurrentiel filtré par hashtags,
mots-clés et même emojis, le type de canal de communication, le type de publication,
l’heure, etc.
Hootsuite :

Pour les agences, moyennes ou grandes entreprises, Hootsuite13 est la plateforme de gestion de
réseaux sociaux qui peut prendre en charge plus de 32 plateformes sociales, incluant Instagram.
Elle permet de :
➢ Cibler les contenus et rechercher des conversations par emplacement géographique et
par langue ;
➢ Accéder à toutes vos interactions avec un contact (à tous les échelons de votre
organisation) ;
➢ Suggérer automatiquement des contenus pertinents ;
➢ Présenter des schémas d’engagement et l’analyse de popularité des publications ;
➢ Localiser les leaders d’opinion ;
➢ Analyser l’opinion publique envers votre marque ;
➢ Organiser le flux de travail par équipe par région.

Azure sentiment analysis :

Une solution d’analyse de sentiments pour l’analyse des réseaux sociaux en intégrant des
événements Twitter dans Azure Event Hubs. Vous pouvez ensuite écrire une

12 https://www.rivaliq.com
13 https://hootsuite.com

66
Chapitre II : Analyse de sentiments et construction du vocabulaire

requête Azure Stream Analytics pour analyser les données, puis stocker les résultats pour une
utilisation ultérieure ou utiliser un tableau de bord et Power BI pour fournir des informations
en temps réel.

L’API14 renvoie un score numérique compris entre 0 et 1. Un score proche de 1 indique un


sentiment positif, et un score proche de 0 un sentiment négatif. Le score de sentiment est généré
à l’aide de techniques de classification. Les fonctionnalités d’entrée du classifieur incluent des
n-grammes, des fonctionnalités générées à partir de balises morphosyntaxiques et des
incorporations de mots. L’API prend en charge de nombreux langages.

Pour utiliser nos propres données dans MASA, nous pouvons :

➢ Télécharger par avance les données d’un fichier local sur votre disque dur pour créer
un module de jeu de données dans votre espace de travail.

➢ Accéder aux données à partir d’une des nombreuses sources de données en ligne.

➢ Utiliser les données d’une autre expérience Azure Machine Learning enregistrée en tant
que jeu de données.

➢ Utiliser les données depuis une base de données SQL Server locale.

Nous pouvons choisir les différents prétraitements de texte qu’offre MASA :

➢ Supprimer ou prédire les valeurs manquantes, dupliqués, caractères spéciaux, URL.

➢ Détecter la langue.

➢ Choisir la pondération : unigramme, bigrammes et N-grammes.

➢ Suppression des mots vides.

➢ Lemmatisation.

➢ Normalisation.

➢ Tokenisation.

MASA offre TF-IDF comme technique de représentation de texte, avec possibilité d’ajouter
nos techniques de représentation.
Nous avons aussi la possibilité de choisir l’algorithme de classification qui nous convient,
MASA nous propose les algorithmes suivants :

➢ SVM,

➢ NBM,

➢ La régression logistique

14 https://azure.microsoft.com/en-us/services/cognitive-services/text-analytics

67
Chapitre II : Analyse de sentiments et construction du vocabulaire

➢ Réseaux de neurones.

IV. Conclusion
Nous avons présenté les principaux travaux portant sur l’analyse de sentiments Nous avons
classé ces travaux en trois approches, 1) approche basée lexique Hu and Liu (2004), Kamps et
al. (2004), Ding et al. , Abdaoui (2016), 2) approche basée apprentissage automatique Lu et al.
(2010), Taboada et al. (2011) et 3) approche hybride Narayanan et al. (2009), Li and Xu (2014),
Narayanan et al. (2009). Certains travaux dans l'approche basée lexique travaillent avec un
dictionnaire et d'autres avec des corpus. L'avantage d'utiliser un dictionnaire est d'englober un
large vocabulaire mais le lexique ou vocabulaire présente l’inconvénient d'être indépendant du
domaine et du contexte du domaine étudié. L'approche basée corpus quant à elle a l'avantage
d'être dépendante du domaine de la fouille d'opinions mais n'englobe pas un large ensemble de
mots et peut ne pas détecter des mots d'opinions positif et négatif. Globalement, nous avons
remarqué dans les travaux existants dans l'approche basée lexique que les meilleurs résultats
sont obtenus quand une force de polarité est donnée aux mots du vocabulaire et quand la
négation et l'intensification sont considérées.

Dans l'approche basée apprentissage automatique, nous avons constaté que plusieurs travaux
comparent les classifieurs, les représentations, les choix des caractéristiques et les méthodes de
leurs sélections (vocabulaire). Ces travaux stipulent en général qu'il n'y pas de meilleur
classifieur, de meilleure représentation ou de meilleurs choix de caractéristiques car cela
dépend énormément du domaine d'application et de la langue. Globalement nous pouvons dire
que SVM, l'utilisation de bi-grammes et la représentation TF-IDF donnent dans certains cas
légèrement de meilleurs résultats, on a aussi remarqué que cette approche est moins efficace
dans la détection de subjectivité.

L'approche basée lexique est notamment plus facile à mettre en œuvre sur de grands corpus car
elle n'a pas besoin d'annotation manuelle de tous les messages, mais possède l'inconvénient
d'avoir un faible rappel, nous en déduisons que plusieurs messages subjectifs sont classés
comme objectifs, et ceci est dû aux mots qui apparaissent dans les messages et qui expriment
une opinion positive ou négative et qui ne sont pas dans le vocabulaire. Également, à cause de
la simplicité des algorithmes de catégorisation de cette approche.

L'approche basée apprentissage automatique donne d'excellents résultats grâce aux algorithmes
sophistiqués employés pour construire le modèle de classification, car elle s'adapte aux mots
employés dans le corpus. Cependant, son inconvénient majeur est la nécessité de l'annotation
manuelle, difficile à réaliser dans de grand corpus ce qui est très problématique car
théoriquement cette approche est plus efficace lorsqu'on traite un corpus contenant un nombre
considérable de messages.

68
Chapitre II : Analyse de sentiments et construction du vocabulaire

L'approche hybride quant à elle, vient palier aux inconvénients des deux premières approches,
cela dit, elle ne donne pas d'aussi bons résultats que l'approche apprentissage à cause de
l'annotation automatique des messages du corpus qui n'est pas tout le temps correct.

Nous avons terminé ce chapitre par une présentation de quelques outils permettant d’effectuer
l’analyse de sentiments, certains sont en accès libre et d’autres sont payants. Bien que riches
en fonctionnalités et allant au-delà de la simple analyse des sentiments, ces outils ne permettent
pas l’analyse du dialecte particulièrement algérien. Nous avons fait le même constat pour les
travaux de recherche que nous avons discutés dans ce chapitre. Néanmoins ces études nous ont
permis de poser les prémisses de notre système d’analyse de sentiments. Nous consacrons les
chapitres suivants à la description de notre projet ainsi que la conception et la réalisation de
l’approche d’analyse de sentiments que nous proposons.

69
Partie contribution : conception
réalisation et étude de cas

70
Chapitre III : Conception

Chapitre III : Conception


La problématique traitée dans le cadre de notre projet de fin d'études est la conception et la
réalisation d'un système d'analyse de sentiments sur les médias sociaux pour mesurer la
satisfaction client. De plus, ce dernier doit traiter les taches de la collecte des données ainsi que
l'affichage des résultats. Avant de poursuivre, il est important de souligner quelques points
déterminants pour la suite du projet. Ces points soulèvent des questions et requièrent des
décisions à prendre. Nous tenterons donc de répondre aux questions suivantes :

1. Quelle stratégie adopter pour la collecte des données textuelles à partir des réseaux sociaux
tout en maintenant la cohérence ?

2. Connaissant les particularités du langage utilisé sur les réseaux sociaux par les internautes,
comment faire pour mettre en place un système d'analyse de sentiments efficace ?

3. Quelle serait la meilleure façon de présenter les résultats du processus de façon à offrir une
vue synthétique et compréhensible par les utilisateurs ?

Nous allons présenter dans ce chapitre la conception des différentes parties de notre système.
Pour ce faire nous allons procéder comme suit :

➢ Pour commencer, nous allons présenter la méthodologie de travail pour la réalisation


de notre solution.

➢ Ensuite, nous allons présenter la solution globale de notre système que nous détaillerons
au fur et à mesure.

➢ Nous clôturerons ce chapitre avec l’aspect sécurité de notre système.

71
Chapitre III : Conception

I. Description du projet de référence


Notre approche a été déployée dans un contexte algérien, la langue utilisée est très souvent un
mélange d’arabe dialectal et de français voire de l’arabe écrit en lettres latines plus connu sous
le nom d’Arabizi. L’objectif de notre projet n’est pas de concevoir un système d’analyse de
sentiments uniquement, mais de mettre en place une solution globale permettant l’extraction,
la sauvegarde, l’analyse et la synthèse des sentiments relatifs au dialecte et aux données
textuelles issues des médias sociaux.

Afin d’illustrer notre travail, nous avons fait référence à un projet de réalisation d’un système
d'analyse de sentiment dans les réseaux sociaux. Les informations concernant ce projet nous
ont été délivrées par Ooredoo Algérie.

Ooredoo Algérie qui est le leader dans le secteur de la téléphonie mobile en Algérie, ne néglige
en aucun cas l'importance des opinions issues des réseaux sociaux en vue de l'importance et de
la croissance de ces plateformes en Algérie. Sur ces réseaux sociaux, plusieurs données peuvent
être extraites et exploitées pour mieux comprendre le comportement des clients. En effet, ces
données rajoutent une valeur très intéressante pour le management de l’expérience client,
notamment le suivi des promotions, et les avis des clients vis à vis des services et des produits
proposés par l’entreprise, rajoutons à cela, Ooredoo est le leader des opérateurs téléphoniques
sur les réseaux sociaux Facebook et Twitter en termes de fans et d’abonnés ce qui représente
une grande opportunité à saisir, pour exploiter les grands flux de données générées. Donc avoir
une présence solide sur les réseaux sociaux est une nécessité incontournable pour Ooredoo. Ce
projet va également permettre à l'entreprise de garder un œil sur les performances de ses
concurrents dans l'optique de veille concurrentielle.

Ooredoo veut donc disposer d'une solution qui va lui permettre d'analyser de manière efficace
les données des médias sociaux dans le but de se faire une idée sur l'opinion publique en ce qui
concerne ses produits et services. La solution doit également assurer une collecte automatique
des nouvelles publications et commentaires ainsi qu'une liaison directe des résultats obtenus
avec Tableau, le tableau de bord utilisé au sein de l’entreprise.

72
Chapitre III : Conception

II. Méthodologie de travail


Nous rappelons que notre système permettra à la fin de mesurer la satisfaction client et cela
grâce à l’analyse de sentiments. Comme nous l’avons expliqué durant le chapitre I, l’analyse
de sentiments est axée principalement sur des modèles de data mining, nous avons donc choisi
d’appliquer une démarche de conception data mining afin de mener à bien notre projet.

Il existe plusieurs méthodologies connues dans l’univers du data mining, les plus connues sont,
la méthode CRISP-DM (CrossIndustry Standard Process for Data Mining) et la méthode
SEMMA (Sample, Explore, Modify, Model, Assess).
Après une étude comparative entre ces deux méthodes -Annexe C-, notre choix s’est porté sur
la méthode CRISP-DM. Les six phases de CRISP-DM que nous détaillerons ci-dessous
s’aligne parfaitement avec notre processus d’analyse de sentiments.

II.1. Méthodologie CRISP-DM


La méthode CRISP a été au départ développé par IBM dans les années 60 pour réaliser les
projets Data mining et a été enrichie par trois pionniers dans le domaine du Data mining,
Chrysler et Benz (SPS, 2000).

La méthode CRISP-DM se décompose en 6 étapes, La compréhension du problème métier, La


compréhension des données, La préparation de données, La modélisation, L’évaluation et enfin
le déploiement. La méthode CRIPS-DM est une méthode agile et itérative, un retour en arrière
vers une étape antérieure est nécessaire.

La figure ci-dessous nous donne un aperçu global sur les six étapes de la méthode.

Figure 8 Méthode CRISP-DM (AGA, 2005)

73
Chapitre III : Conception

Nous décrivons les six étapes de CRISP-DM comme suit :

➢ Compréhension métier : Cette première étape consiste à la description et la


compréhension du contexte, les éléments métiers ainsi que la problématique. Elle
concerne aussi le recensement des ressources disponibles et nécessaires pour la
réalisation du projet.

➢ Compréhension des données : La compréhension des données concerne la


détermination, la description et l’exploration des données à analyser et leurs critères de
réussites. Cette partie concerne aussi l’identification, le contrôle de qualité de ces
données et la définition de leur valeur métier.

➢ Préparation des données : Cette partie vise à construire le Data HUB qui regroupe la
sélection des données nécessaires à l’étude, leur préparation, leur nettoyage, leur
classement en fonction de critères choisis et enfin le recodage de ces données afin de
les rendre compatibles avec les algorithmes qui seront utilisés.

➢ Modélisation : L’étape de la modélisation concerne les choix techniques et l’ensemble


des solutions pouvant répondre au mieux à la problématique. Elle comprend le choix,
le paramétrage et le test des différents algorithmes ainsi que leur enchaînement, qui
constituent un modèle pour choisir le meilleur.

➢ Évaluation : La cinquième phase consiste à appliquer le modèle choisi sur un


échantillon test pour vérifier le modèle, les résultats obtenus et s’assurer qu’ils
répondent aux critères fixés. L‘évaluation concerne alors la robustesse du modèle.

➢ Déploiement : Le déploiement est la partie finale, il s’agit de mettre en production le


projet. Cette phase vise à créer des règles de déploiement, analyser les résultats finaux
et ajouter des perspectives et des recommandations d’action aux utilisateurs.

III. Présentation de la solution


Il existe plusieurs outils d’analyse de sentiments sur les réseaux sociaux à l’exemple de Azure
Sentiment Analysis, Germin8, MoodRaker ou encore Trackur.

Malgré la richesse et la variété des fonctionnalités de ces outils telles que la possibilité de les
connectés directement à nos propres sources de données, et de personnaliser le Dashboard
facilement, ils posent plusieurs restrictions, nous citons dans ce qui suit les principales raisons
qui nous ont motivé à construire notre propre système d’analyse de sentiments :

➢ La non prise en compte du dialecte : La raison principale est que les outils
commerciaux disponibles sur le marché du logiciel ne prennent pas en compte les
dialectes, ce qui est un inconvénient vu l’importance du dialecte dans les médias
sociaux.

74
Chapitre III : Conception

➢ Solution complète jusqu’à la visualisation : La seconde raison n’est rien d’autre que
le manque des solutions qui proposent à la fois, la collecte de données, le prétraitement
de données, l’analyse de sentiments et aussi un tableau de bord pour la visualisation des
données.

➢ Extension, maintenance et flexibilité : Parmi les raisons qui nous ont motivés aussi,
on trouve la non possibilité de personnaliser le système (avoir accès aux
algorithmes…etc). Ces derniers sont souvent cachés aux utilisateurs pour des raisons
de concurrence.

Pour les raisons ci-dessus, nous avons choisi de concevoir un système d'analyse de sentiments
complet qui inclut les fonctions de collecte, d'analyse et de visualisation. L’inconvénient
majeur de ces outils est la non prise en compte des dialectes ainsi que la fermeture de ces
solutions sous forme de boite noir. De ce fait, nous avons également pris la décision de
développer notre propre système d'analyse de sentiments afin de pallier le manque des APIs
disponibles sur le marché que nous avons déjà cité ci-dessus. De ce fait, la solution que nous
proposons nous permet d'avoir un accès libre et complet à l'analyseur de sentiments pour
faciliter la maintenance, l’extension et apporter des améliorations s’il y a lieu d'en faire.

A l'issue de notre travail, nous devons fournir un système d’analyse de sentiments capable de :

➢ Collecter du contenu à partir de différentes sources telles que : les médias sociaux et
les bases de données,

➢ Structurer et traiter les données collectées à partir des différentes sources pour leur
utilisation future,

➢ Effectuer une analyse de sentiments sur le texte et déterminer sa classe de sentiments


afin de lui affecter la classe Adoration, Appréciation, Tristesse, Colère ou encore neutre
s'il y'a absence d'opinion,

➢ Fournir une interface de visualisation des résultats sous forme de statistiques et mesures
résumant la répartition des sentiments selon les sujets introduits par l'utilisateur et en
fonction des opérateurs.

IV. Hypothèses de départ


Le cœur de notre système réside dans le module de catégorisation, mais avant de passer à son
implémentation, nous devons prendre un certain nombre de décisions afin de poser des
hypothèses qui vont régir notre conception. Nous tenterons donc de répondre aux questions
suivantes :

➢ Quel type d'opinion serait-il plus judicieux de traiter ?


➢ A quel niveau allons-nous effectuer notre analyse de sentiments ?

75
Chapitre III : Conception

Nous exposons les différentes hypothèses que nous avons mis en place dans le but de répondre
aux questions posées plus haut. Nous commencerons donc par déterminer le type d'opinion que
notre système prendra en compte suivi du niveau d'analyse de sentiments à effectuer.
IV.1. Type d'opinions à traiter
En effet, la première décision est de choisir le type d'opinion que va traiter ce module qui se
résume en des opinions régulières. Cette décision a été principalement motivée par la
complexité de l'étude des opinions comparatives d'autant plus que ces dernières restent très
dépendantes de la structure des phrases et de la langue utilisée ce qui constitue un obstacle dans
notre cas. Rajoutant à cela qu’on a opté pour non seulement une classification binaire (positif
et négatif) mais pour une classification qui comporte cinq classes. Une analyse d’opinion
comparative pourrait bien sûr être intéressant, mais dans notre cas nous laissons ceci comme
perspective vu la complexité de l'étude sur un langage non structuré.
IV.2. Niveau de l'analyse de sentiments
Nous avons abordé dans la première partie du rapport un aspect très important de l'analyse de
sentiments et qui est le niveau d’analyse. Nous avons mis en avant trois différents niveaux que
nous citons en partant du plus général au plus précis, le niveau document, le niveau phrase et
le niveau aspect. Le choix du niveau dépend fortement de la structure et du type de la donnée
à traiter, donc du texte dans notre cas. Nous décidons donc d'effectuer notre analyse de
sentiments au niveau document et ce pour les raisons suivantes :

➢ Les commentaires sont des textes relativement courts,

➢ Très souvent un commentaire ne traite qu'un seul sujet

➢ La majorité des commentaires ne comportent qu'une seule opinion.

Ce qui nous envoi naturellement vers l'hypothèse qu'un document exprime une seule opinion.

V. Vue globale
Nous allons présenter dans cette section l'architecture globale du système d’analyse de
sentiments que nous proposons.

La figure 9 ci-dessous montre le processus général du système qui se déroule plusieurs étapes.
Chaque étape fait appel à des traitements particuliers.

➢ Collecte des données,

➢ Prétraitement,
➢ Annotation,

76
Chapitre III : Conception

➢ Analyse de sentiments,

➢ Visualisation.

Figure 9 Architecture globale

La phase de collecte parcourt la page de l’entreprise pour en extraire les posts et commentaires
postés, et cela grâce à l'API propre au réseau social.

Le résultat de la collecte passe par une étape de prétraitement qui permet de supprimer les
dupliqués et les spams (même auteur, même contenu, même post). Ensuite, dans cette même
étape on fait en sorte de préparer les données de façon qu’elles soient exploitables.

Une fois les données prétraitées, vient la phase d’annotation, qui permet de créer un dataset
d’apprentissage pour le système d’analyse de sentiments.

Le flux de texte issus des commentaires est envoyé par la suite à la catégorisation pour en
déterminer la classe de sentiments, qui à son tour utilise les données de la couche annotation
pour l’apprentissage.

Les résultats de la catégorisation sont sauvegardés avec le reste des métadonnées (date de
création, auteur ...etc) dans une couche de persistance. La phase de visualisation puise dans
cette dernière pour exposer les résultats à l'utilisateur en fonction des paramètres souhaités.
L'application finale prendra la forme d'un Dashboard qui présente les statistiques agrégées de
l'analyse. Nous présenterons dans ce qui suit une vue détaillée de notre système, où nous allons
présenter la conception de chaque phase que nous venons de présenter dans l'architecture
globale de la solution.

77
Chapitre III : Conception

VI. Vue détaillée


Maintenant que les hypothèses principales ont été mise en place, Il nous faut choisir une
approche parmi celles citées dans la synthèse bibliographique à savoir l'approche basée sur le
lexique et celle basée sur l'apprentissage automatique. Le choix s'est tourné vers une approche
basée sur l'apprentissage automatique après avoir pesé le pour et le contre de chaque méthode.
En effet, nous nous sommes appuyés sur le points suivants :

➢ Manque de ressources lexicales de mots d'opinion : l'approche basée sur le lexique


se base principalement sur des dictionnaires de mots d'opinion et la précision de la
prédiction et étroitement liée à la richesse de ces ressources lexicales. Cela dit, ces
ressources sont indisponibles dans un contexte ou le langage utilisé découle
majoritairement du dialecte.

➢ Manque de structure et de standards pour la langue : l'approche basée sur le lexique


se base également sur la structure des phrases et la nature grammaticale des mots à
l'image des adjectifs et des verbes pour déterminer l'orientation des mots et de ce fait le
sentiment global du document. Prenons à titre d'exemple la phrase suivante : " Le
produit est excellent", l'approche lexicale se baserait sur le pattern " nom-verbe-
adjectif" pour dire que la phrase porte une opinion en fonction de l'adjectif, qui dans
notre cas est positif, ce qui impliquerait une opinion positive. Notre cas d'étude ne
profite pas de cette particularité car il n'y a pas de formalisme nous permettant de
déduire la nature grammaticale d'un mot et encore moins d'étudier la structure d'une
phrase.

➢ Construction du corpus annoté : l'approche basée sur l'apprentissage automatique


donne des résultats très satisfaisant quand on a un grand corpus d’entrainement, d’où
l’intérêt de notre système d’annotation non supervisée.

➢ Excellentes performances avec des vecteurs de petites dimensions : Le deep


learning donne des résultats impressionnants et ceci avec des vecteurs de petites
dimensions (100-300), ce qui n’était pas le cas avec le Machine Learning où ils
utilisaient généralement la représentation One-Hot où le vecteur a une dimension égale
à la taille du vocabulaire utilisé.

Nous énumérons dans ce qui suit les principales tâches à réaliser dans le but de mettre en place
le système d'analyse de sentiments.

VI.1. Préparation des données


La collecte des données qui correspond à la phase trois de la méthodologie CRISP-DM est
une question problématique notamment sur Facebook, vu les différentes contraintes et
restrictions imposées par ce dernier.

78
Chapitre III : Conception

Nous présentons dans cette section notre solution pour assurer une collecte efficace de toutes
les données textuelles qui se rapportent à l'activité des internautes sur les pages officielles des
opérateurs mobiles en plus des dispositions prises pour leur sauvegarde. Nous introduirons
également les deux étapes de nettoyage et de structuration qui interviennent à la suite de la
collecte.

Figure 10 Processus de collecte et de préparation des données

L’étapes de nettoyage et de structuration vise à préparer les données pour les tâches d'analyses.
Les données, à savoir les posts et les commentaires, sont collectées à partir de Facebook en
deux phases :

➢ Phase 1 : Cette phase consiste à collecter les nouveaux posts mis en ligne depuis la
dernière exécution et les stocker.

➢ Phase 2 : La phase 2 est déclenchée par le signal de fin de la première phase. Durant
cette partie, les posts sont chargés et utilisés pour récupérer leurs commentaires. Une
fois les commentaires collectés ces derniers sont stockés dans des fichiers CSV. Les
commentaires doivent passer par une étape de nettoyage afin de supprimer les dupliqués
ainsi que les spams. La structuration de ces données est importante avant de les stocker
dans la couche de persistance. Ce processus est résumé par le diagramme d'activité
présenté sur la figure 10 ci-dessus.

VI.1.1. Collecte des données


La phase de collecte de données a pour but d’extraire les données à partir de différentes sources
telles que les bases de données, les fichiers et encore le web. Ces données collectées serviront

79
Chapitre III : Conception

ensuite pour alimenter notre système visant leur exploitation dans l’analyse de sentiment pour
mesurer la satisfaction client.

Les principales sources que nous considérons sont les médias sociaux, plus précisément
Facebook étant donné que c’est la plateforme la plus répandue dans le monde. De plus, Nous
nous intéressons principalement aux données textuelles constituant principalement les posts et
les commentaires publiés.

VI.1.1.1. Technique utilisée

Il existe différentes techniques de collecte de données à partir du web, précisément à partir des
réseaux sociaux à savoir le web crawling et l’utilisation des APIs. Nous nous sommes attardés
sur la plateformes Facebook en présentant les APIs fournies par la plateforme ainsi que leurs
restrictions, tout en présentant les autres techniques de collectes en -Annexe A-.

A travers cette étude, nous avons opté pour une technique basée sur les APIs pour extraire les
données à partir de Facebook. Cette technique reste meilleure comparée au Web Crawling
malgré les restrictions d'accès imposées par les APIs et ceci pour des raisons de maintenance
et de compatibilité (ajout de nouvelles fonctionnalités). De plus l'utilisation de l'API présente
un certain nombre d'avantages dont :

➢ Effectuer des requêtes avancées comme les projections, le tri, les filtres, la pagination
et les résumés,

➢ Les données récupérées sont sous un format JSON. Ce dernier facilite grandement la
manipulation des données,

Parmi les APIs proposées par les plateformes, nous utilisons Graph API de Facebook
puisqu'elle est publique et gratuite. De plus, elle permet d'accéder aux données textuelles des
posts et des commentaires sur lesquels nous allons appliquer l'analyse de sentiments,
contrairement aux APIs Marketing telles que : Atlas et Insights. Ces dernières ne fournissent
qu'une couche analytique sur les données sans donner l'information brute. Parmi les modes
d'accès présentés dans l'annexe, nous avons choisi d'accéder à l'API en tant qu'application afin
d'éviter les problèmes liés au contexte de l'utilisateur et d'avoir une vue neutre et globale sur
l'ensemble des pages surveillées.

VI.1.1.1.1. Collecte de données à partir de Facebook

Le processus de collecte se fait en deux phases durant lesquelles on extrait les posts et les
commentaires Facebook, autrement dit le contenu textuel des pages cibles. En plus du contenu
textuel, nous collectons aussi les métadonnées relatives au posts et aux commentaires des pages
officielles des opérateurs comme, date de publication, nature du poste : vidéo, image ou texte,
l’id utilisateur et le nombre de réactions.

80
Chapitre III : Conception

Le processus de collecte est exécuté à un intervalle de temps T et de manière itérative, c'est-à-


dire, un processus exécuté à l'instant t récupère toutes les données crées dans l'intervalle de
temps [t-T; t[. Dans le cas de la collecte initiale (démarrage à froid du système) une date initiale
t’ est spécifiée au système. Les données à récupérer sont celles crées dans l'intervalle de temps
[t’; t[. La première étape est la collecte des posts à partir des pages surveillées suivie de la
deuxième étape qui est la collecte de commentaires relatifs aux posts déjà récupérés. Nous
avons réalisé ce processus en trois couches logiques :

➢ Crawler facebook -FacebookCrawler- : Permet l'accès aux services fournis par l'API
Graph de Facebook.

➢ Couche d’extraction : Représente la logique de la collecte des posts et des


commentaires. Pour mieux comprendre le fonctionnement de ces deux phases, nous
donnons leurs pseudo-algorithmes ci-dessous.

❖ PostsCollector : Ce module se charge de récupérer les posts des pages cibles, et


cela en faisant appels au couches FacebookCrawler et Repository.

Pseudo algorithme PostsCollector

Entrée : Jeton (Token) d’accès Facebook.

PostsCollector (date, date1, token)


1. Connecte(token)
2. Pages = recupererListePages().
3. Pour chaque P dans Pages :
(a) posts = recupererPosts(P, date, date1)
(b)save(posts)
4.updateDate(date)

Connecte (token)
Se connecter à Graph API en utilisant le token d’accès.
recupererPosts (p, t’, t)
Récupérer les posts publiés dans la page p dans la période [t, t’[.

recupererListePages ()
Récupérer la liste des pages surveillées.

updateDate(date)
Mis à jour la date de la dernière exécution de la collecte
save(posts)
Sauvegarder posts dans un fichier CSV.

Sortie : Fichier CSV contenant les posts récupérés.

81
Chapitre III : Conception

❖ CommentsCollector : Ce module se charge de récupérer les commentaires


relatifs au posts récupérés en faisant appels au couches FacebookCrawler et
Repository.

Pseudo algorithme CommentsCollector

Entrée : Jeton (Token) d’accès Facebook.

CommentsCollector (token)
1. Connecte (token)
2. posts = recupererPosts()
2. Pour chaque p dans posts :
(a) comments = commentes + recupererComments(p)
3.save(comments).

Connecte (token)
Se connecter à Graph API en utilisant le token d’accès.
recupererPosts()
Récupérer les posts á partir d’un fichier CSV.

recupererComments (p)
Récupérer les commentaires publiés dans le post p.

save(comments)
Sauvegarder comments dans un fichier CSV.

Sortie : Fichier CSV contenant les commentaires récupérés.

➢ Repository : permet l'accès à la couche persistante pour effectuer les opérations de


lecture, écriture et mise à jour.
Pour la collecte des posts, l'utilisateur détermine la liste des pages à surveiller. Pour chaque
page surveillée, une requête est effectuée vers API Graph afin de récupérer les posts relatifs à
la page en question et cela dans un intervalle de temps spécifique. Les données sont paginées
par l'API, plusieurs appels sont donc nécessaires afin de récupérer l'intégralité des données. A
l'issue de cette opération, les posts récupérés sont temporairement stockés dans des fichiers
CSV (un fichier pour chaque page surveillé), en attendant l'étape de la structuration qui sera
présentée dans la suite du rapport. Le processus est expliqué à travers le diagramme de
séquence présenté dans la figure 11 ci-dessous.

82
Chapitre III : Conception

Figure 11 Diagramme de séquence de l'extraction des posts

En ce qui concerne la collecte des commentaires, pour chaque post récupéré, une requête est
envoyée vers l'API Graph afin de collecter les commentaires relatifs à ce dernier.
Contrairement aux posts, l'API ne permet pas d'effectuer une requête sur les commentaires en
utilisant un filtre temporel, donc nous jugeons que les commentaires qui viennent après une
certaine période T sont pas important (donnée non pertinente). Enfin, les données récupérées
sont stockées dans des fichiers CSV en attendant l'étape de la structuration. Le processus est
expliqué à travers le diagramme de séquence présenté dans la figure ci-dessous.

83
Chapitre III : Conception

Figure 12 Diagramme de séquence de l'extraction des commentaires

Figure 13 Exemple d’un fichier CSV contenant les commentaires utilisateurs

VI.1.2 Nettoyage des données


Une fois les commentaires récupérés, vient la phase de nettoyage qui permet d’avoir à la fin
que les données jugées utiles. En effet, le flux collecté peut parfois contenir des messages

84
Chapitre III : Conception

dupliqués en raison des API ou encore résultants de l'activité massive de certains internautes
qu'on pourra qualifier de spam.

➢ La suppression des dupliqués se fait en se basant sur l’Id des commentaires. En effet,
le flux collecté peut contenir des commentaires dupliqués avec le même Id.

➢ En plus des dupliqués générés par l'API, on peut parfois rencontrer des commentaires
redondants ou spams car ils comportent le même message mais des identifiants
différents. Ces duplications sont parfois dues à de mauvaises manœuvres ou de
mauvaises intentions de la part des utilisateurs qui postent plusieurs fois le même
message.

Ces commentaires seront supprimés en se basant sur les critères suivants :


❖ Même auteur,

❖ Même texte,

❖ Même post parent.

VI.1.3. Structuration des données


De Nos jours diverses plates-formes de média sociaux sont disponibles. Cette diversité résulte
une variété de données générées par les utilisateurs qui diffèrent en type et en nature en
changeant de plateforme ou de fonctionnalités. Pour y remédier à cela nous avons opté pour
une base de données documents, cette dernière est plus adaptée pour le stockage des données
complexes et hétérogènes via le NoSql, tout en essayant de transformées ces données en une
structure unifiée plus adaptée pour la phase de traitement tout en éliminant la redondance
d'information et les données inutiles.

Le schéma de notre base de données est présenté dans la figure 14.

85
Chapitre III : Conception

Figure 14 Schéma de la base de données

VI.2. Prétraitement
Une fois les commentaires sont récupérés et nettoyés afin de ne garder que les commentaires
jugés utiles, vient l’étape de prétraitement. Le flux collecté peut parfois contenir des messages
dupliqués (même contenu et même ID utilisateur) en raison de l’API ou encore résultants de
l’activité massive de certains internautes qu’on pourra qualifier de spam (identifiant diffèrent).
En effet, il ne faut garder que les informations les plus représentatives et importantes, pour cela
nous appliquons les traitements suivants : (1) tokenisation, (2) substitution des liens
hypertextes, (3) substitution des hashtags, (4) suppression des lettres répétées, (5) suppression
des mots vides, (6) traitement des émoticônes, (7) normalisation du texte, (6) construction du
dictionnaire des néographie.

86
Chapitre III : Conception

Figure 15 Schéma prétraitement de données

VI.2.1. Suppression du bruit


Comme le texte est la forme la moins structurée de toutes les données disponibles, divers types
de bruit y sont présents et les données ne sont pas facilement analysables sans prétraitement.

Tout texte qui n'est pas en rapport avec le contexte des données et la sortie finale peut être
identifié comme bruit. Par exemple : les URLs ou les liens, les entités de médias sociaux
(mentions, hashtags), la ponctuation et les expressions spécifiques à un secteur. Cette étape
concerne la suppression de tout type de bruit présents dans le texte.

VI.2.1.1. Tokenisation

Dans le but de découper chaque message en ses différents termes, nous avons utilisé une
fonction disponible dans la bibliothèque de traitement du langage naturel NLTK causant ainsi
la perte des smileys, qui sont très utiles pour déterminer le sentiment exprimé, pour remédier à
ça nous avons capturé ces objets en utilisant une expression régulière (donnée ci-dessous) avant
de faire passer le texte par l'outil de NLTK.

REGEX des émoticônes : [ := ;][oO'\-\^] ?[D\)\]\(\]/\\OpPp\*\$]|\^\^|\-_\-

Exemple :

Chaine : 'Che7al dir puce Ooredoo haya rpnd svp'


Liste des tokens : ['Che7al', 'dir', 'puce', 'OOredoo', 'haya', 'rpnd', 'svp']

87
Chapitre III : Conception

VI.2.1.2. Substitution des liens hypertextes

Dans cette étape, nous avons capturé les liens hypertextes grâce à une expression régulière
(donnée ci-dessous) et les remplacés par _LINK_ car ils ne donnent aucune information sur la
polarité des messages et ceci permettra d'éviter les erreurs de prédiction et de réduire encore
plus la dimension du vocabulaire utilisé.

REGEX des liens hypertextes : ((www?\.[^\s]+)|(http[s]?://[^\s]+))

Exemple :

Liste des tokens : ['Bonjour', 'Pour', 'participer', 'au', 'jeu', 'il', 'faut', 'répondre', 'sur', 'le'
post', 'suivant',
'https://web.facebook.com/OoredooDZ/photos/a.115193385201473.30839.108951559158989
/1307600195960780/?type=3&theater']

Liste des tokens après prétraitement : ['Bonjour', 'Pour', 'participer', 'au', 'jeu', 'il', 'faut',
'répondre', 'sur', 'le', 'post', 'suivant']

VI.2.1.3. Substitution des Hashtags

Les internautes ont tendances à utiliser le hashtag pour expliciter le sujet que traite le message.
Les hashtags peuvent également comporter des mots d'opinion utilisés pour déterminer la
polarité du texte en question, donc Il est très important de garder trace de ces mots au niveau
de la base de données, avant de supprimer les symboles '#’, ‘_' car ils apportent beaucoup
d'informations pour l'analyse de sentiments et la détection du sujet.

Exemple :

Liste des tokens : [‘nous’, ‘avons’, ‘adoré’, ‘notre’, ‘expérience’, ‘à’, ‘#Alger’]

Liste des tokens après prétraitement : [‘nous’, ‘avons’, ‘adoré’, ‘notre’, ‘expérience’, ‘à’,
‘Alger’]

VI.2.1.4. Suppression des lettres répétées


Nous supprimons aussi dans cette étape les lettres répétées plus de deux fois dans un mot en
les réduisant à une seule lettre. Cependant, nous avons deux problèmes à résoudre. Le premier,
nous pouvons donc avoir le mot 'lool' / 'faiible' dont l'origine est 'lol' / 'faible' qui ne sera pas
réduit, ce problème sera résolu dans l'étape du regroupement que nous détaillerons par la suite.
Le deuxième, nous avons jugé que les lettres répétées dans un mot d'opinion portent aussi un
sentiment, elles jouent le rôle d'un intensificateur de sentiment, par example: 'foooooooort' est
plus fort que 'fort', donc si on trouve un mot d'opinion qui contient des lettres répétées, le mot
devient :

rep-mot (sans les lettres répétées).

88
Chapitre III : Conception

Exemple :

Liste des tokens : [‘Ooredoo’, ‘Topppppppppp’]

Liste des tokens après prétraitement : [‘Ooredoo’, ‘rep_top’]

VI.2.1.5. Suppression des mots vides

En ce qui concerne la suppression des mots vides, nous avons besoin de ressources prêtes
comportant tous les mots outils des langues utilisées dans nos textes. A cet effet, pour des
langues comme l'anglais, le français ou l'arabe standard moderne, il existe des listes de mots
outils bien connues. Ces listes sont disponibles gratuitement sur internet ou via des outils
comme NLTK.
En ce qui concerne le dialecte transcrit en lettre latines ou arabes, nous ne disposons d'aucune
ressource regroupant les mots vides sont inutiles pour notre analyse.

Nous avons donc suivi une démarche présentée dans [Medhat et al., 2014b] et qui vise à créer
une liste des mots vides générale pour le dialecte et qui pourra être utiliser comme une source
fiable pour les futurs travaux sur un dialecte donné.

Ces listes de mots outils, comportent des mots de négation que nous ne devons en aucun cas
supprimer. Pour cette raison, nous avons enlevé ces mots et les mettre dans une liste blanche
qui comporte les expressions de négation des différentes langues.

Exemple :

Liste des tokens : ['Ooredoo', 'toujours', 'préféré', 'des', 'algériens']

Liste des tokens après prétraitement : ['ooredoo', 'toujours', 'préféré', 'algériens']

VI.2.2. Normalisation du lexique


Nous avons effectué une série de petits remplacements et traitements dans le but d'unifier le
texte, ces substituions sont résumées dans le diagramme d'activité ci-dessous

Figure 16 Étapes de normalisation

VI.2.2.1. Traitement des mots en majuscule

Ce qui est utilisé généralement c'est avant de traiter tout texte, ce dernier est réduit à la forme
minuscule de toutes ses lettres latines quelle que soit la position dans le document. De ce fait,
les mots "EXCELLENT" et "excellent" sont réduits à la même instance ce qui réduit
considérablement la dimension du vecteur de caractéristiques, mais dans notre cas, nous

89
Chapitre III : Conception

jugeons qu'il est très important de garder trace des mots majuscules car ils apportent beaucoup
d'informations pour l'analyse de sentiments, car les LETTRES CAPITALES sont utilisées pour
que les mots sonnent plus fort.

Exemple :

Liste des tokens : ['Comment', 'désactiver', 'l', 'option', 'heya', 'AIME', 'pas']

Liste des tokens après prétraitement : ['Comment', 'désactiver', 'l', 'option', 'heya', 'aime_maj',
'pas']

VI.2.2.2. Désaccentuation
De même que pour la casse, la substitution des lettres accentuées par leur équivalent non
accentué permet d'unifier différents termes et ainsi réduire le nombre d'instances dans le
vocabulaire.

Exemple :

Liste des tokens : ['Ooredoo', 'toujours', 'préféré', 'des', 'algériens']

Liste des tokens après prétraitement : ['ooredoo', 'toujours', 'prefere', 'algeriens']

VI.2.2.3. Suppression des lettres uniques isolées

Nous supprimons dans cette étape tous les mots d'une seule lettre car tous les mots d'une seule
lettre sont des mots vides, Elles n'apportaient aucune information utile à l'analyse de sentiments
ou la détection du sujet.

Exemple :

Liste des tokens : ['Comment', 'désactiver', 'l', 'option', 'heya', 'aime_rep', 'pas']

Liste des tokens après prétraitement :

['Comment', 'désactiver', 'option', 'heya', 'aime_rep', 'pas']

VI.2.2.4. Détection de la langue

Il existe certains traitements applicables uniquement aux langues structurées, et d’autres


traitements applicables seulement au dialecte, comme la racinisation et le traitement de langage
SMS (voir les points : IV.2.3 et IV.2.4) c’est pour cette raison que la tache de la détection de
la langue est nécessaire pour notre système.

Cette tâche est effectuée en utilisant une bibliothèque de détection de la langue basée sur
l’apprentissage automatique.

Principe de fonctionnement

0_ Nous prenons le corpus non prétraité.

90
Chapitre III : Conception

1_ Si le commentaire courant est en français ou en arabe, le commentaire prétraité passe par la


racinisation.

2_ S’il est détecté comme étant un commentaire dans une autre langue (espagnol, allemand,
anglais …),

3_ On vérifie La valeur renvoyée par langid, qui est une estimation de probabilité non
normalisée d’un texte d’appartenir à une langue donnée.

4_ Si elle est inférieure à 0.75 (pour prendre en compte une certaine marge d’erreur), on le
considère comme dialecte et il (le commentaire prétraité) passe par le traitement de dialecte.

Statistiques sur le corpus collecté

Nous avons effectué une étude quantitative sur les données du corpus collecté pour se faire une
idée sur la nature et le type de textes à traiter. Nous pouvons voir à travers le graphique ci-
dessous que les commentaires dont la langue est non identifiée dans l'arabe standard ou le
français restent de loin les plus nombreux. De plus, la tâche de détection de la langue à partir
du texte elle-même reste imprécise en comptabilisant une certaine marge d'erreur. Il est à noter
que le corpus en question comporte plus de 100,000 commentaires.
50
45
40 43.3
35
35.1
30
25
20
21.6
15
10
5
0
Autre Arabe Français

Autre Arabe Français

Figure 17: La répartition des langues dans le corpus

VI.2.3. Racinisation
Pour la racinisation nous avons utilisé le Snowball. Cet outil permet de faire de la racinisation,
en appliquant l'algorithme de Porter, sur des mots français/anglais pour ne garder que la racine
du mot appelée aussi "Stemm", pour ce qui est de l'arabe standard, nous avons utilisé une
extension de Snowball développée par Assem Chelli un étudiant de l'ESI intitulée
"ArabicStemmer" (Assem Chelli, 2015).

91
Chapitre III : Conception

Il n'existe pas de stemmer pour le dialecte et vu que les mots n'appartiennent à aucune langue
formelle connue et surtout disposant de règles syntaxiques et grammaticales permettant la
racinisation, nous l'avons ignoré pour le dialecte.

Exemple :
Liste des tokens : ['Bonjour', 'participer', 'jeu', 'faut', 'repondre', 'post', 'suivant']
Liste des tokens après prétraitement : ['Bonjour', 'particip', 'jeu', 'faut', 'repondre', 'post',
'suivant'].

VI.2.4. Traitement de langage SMS


Un « SMS » Short Message Service peut contenir de 140 à 160 caractères. Il a été créé pour
permettre une communication de service de l'opérateur téléphonique à l'usager. Étant donné la
longueur limitée d'un SMS, un langage SMS s'est mis peu à peu en place. Ce langage est
constitué de mécanismes d'écriture permettant d'abréger un texte. Actuellement, le langage
SMS n'est plus seulement présent sur nos téléphones mobiles mais il a envahi aussi les forums
de discussion sur Internet, les réseaux sociaux, la publicité, la littérature, etc.

Pour la langue par exemple, les échanges sur les réseaux sociaux et les SMS ont aussi introduit
l’utilisation des chiffres pour formuler certaines lettres arabes sans équivalent dans l’écriture
latine, comme par exemple la lettre ‫ ح‬H qui est translittérée en chiffre ‘7’, la lettre ‫ ’ع‬A’ qui
est translittérée en chiffre ‘3’.

Exemple : 2m1 -> demain, jv encor dvoir 10qt -> je vais encore devoir discuter, 2day ->
today.

Che7al -> chehal, pour dire combien.

Après avoir examiné les données collectées, nous avons observé qu’il y a plusieurs textes écrits
en langage SMS, donc nous avons jugé qu’il est indispensable de le traiter, dans le but de
réduire la taille du corpus et avoir des meilleurs résultats dans l’étape de l’analyse de sentiments.

L’étape de traitement de langage SMS fait appel aux deux techniques qui seront présentées ci-
dessous.

Une première technique consiste à effectuer une série de substitutions phonétisées, càd
remplacer un son par des caractères uniques (lettres ou chiffres).

Exemple : o (eau), 7 (cet), che7al (chehal).

Une deuxième technique consiste à utiliser les dictionnaires SMS qui existent sur internet
(dictionnaire-sms, sos-sms, deblok). En effet, pour un même mot il existe une vaste quantité
de variante dans le dictionnaire : exemple pour « demain » : 2m1, dmain, dmin, 2main, dem1,
2min, dems, 2m, d2m1, 2mains, dem’s, dms, dmai, dem.

92
Chapitre III : Conception

1-Nous commençons par faire la correspondance entre un élément du dictionnaire SMS et un


élément du corpus (token).

2-Si correspondance trouvée, nous remplaçons le mot dans le corpus par son équivalant dans
le dictionnaire.

Exemple :

Liste des tokens : ['Che7al', 'dir', 'puce', 'Ooredoo', 'haya', 'rpnd']

Liste des tokens après prétraitement : ['Chehal', 'dir', 'puce', 'Ooredoo', 'haya', 'repondez']

VI.2.5. Construction du dictionnaire des néographies.


Dans cette étape nous nous intéressons aux messages écrits en dialecte. Le problème dans le
dialecte est que c'est un langage sans règles orthographique, et donc plusieurs orthographes
peuvent être observées dans le corpus pour le même mot.

Exemple : nchallah, nchalah, nchlh, nchalh, nshallah, nshalah …etc.

Pour remédier à ce problème, nous proposons de faire :

➢ Un regroupement phonétique.

➢ Un regroupement par similarité des chaines de caractères

Nous nous sommes basés sur une idée d'un projet de fin d'étude qui a été réalisé sur le dialecte
algérien (Benkrid et al,2016). Ce que nous avons exploité c'est le fait d'utiliser le regroupement
phonétique et par similarité que nous avons mieux exploité et développé par rapport à son usage
et utilisation dans la catégorisation, donc le résultat de ce regroupement constituera une
ressource utilisée par la suite pour corriger les nouveaux textes, une ressource que nous
pourrons qualifier de dictionnaire des néographies (Benkrid et al.,2016).

Figure 18 Processus de traitement relatif au langage dialectal

La figure ci-dessus met en évidence le processus qui permet de construire le dictionnaire des
néographies, il s'étale sur deux étapes qui sont le regroupement phonétique et enfin le

93
Chapitre III : Conception

regroupement en fonction de la similarité des chaines de caractères. Le phase de prétraitement


fait appel aux techniques que nous avons présentées plus haut. L’étape suivante sera abordée
ci-dessous.

La première phase consiste à faire à un regroupement phonétique, nous regroupons tous les
mots qui partagent le même code phonétique. Nous nous sommes basés sur un algorithme de
Soundex qui permet d'indexer les mots par leur prononciation avec un même code. Nous aurons
donc en sortie des familles composées des mots qui sont identiques en prononciation malgré
des différences au niveau de leurs écritures respectives.

Exemple : NCHALLAH -> N24

Nous l'avons utilisé pour chaque mot dans le corpus en parcourant tous les messages prétraités
et nous avons regroupé tous les mots ayant le même code phonétique.

Exemple :

- N24 : ['nokloa', 'nchalh', 'nchlh', 'nchalah', 'nchallah', 'ngoul', 'nakle', 'nchallh', 'ngolo',
'naklo', 'nousalha', 'nqol', 'ngoulouha', 'nqolo', 'noklo', 'nchalahe', 'nqolh', 'nkhlio', 'nsl7o',
'nqool', 'nqolha', 'nsalho', 'nchlah', 'nkhliwha', 'nshallah', 'nshalah', 'nakol']

À la fin de cette étape nous avons un dictionnaire phonétique où nous associons chaque liste
de mots (ayant le même code phonétique) leur code phonétique correspondant.

Nous avons remarqué que le regroupement phonétique ne suffit pas car plusieurs mots qui ne
veulent pas dire la même chose sont regroupés ensemble. Il est donc nécessaire de faire un
second regroupement à l'intérieur de chaque groupe de mots dans le dictionnaire phonétique.

Donc la phase deux consiste à faire un regroupement par similarité orthographique en


utilisant la bibliothèque 'fuzzywuzzy' 15 qui calcule la similarité entre deux mots et donne un
pourcentage de similitude, cette bibliothèque utilise la distance de Levenshtein [Levenshtein,
1966] pour calculer la similarité entre deux mots. La distance de Levenshtein est égale au
nombre minimum de caractère à supprimer, insérer ou remplacer pour passer d'une chaine de
caractères à une autre.
max(𝑖, 𝑗) 𝑆𝑖 min(𝑖, 𝑗) = 0
𝐿𝑒𝑣𝑎,𝑏 (𝑖 − 1, 𝑗) + 1
𝐿𝑒𝑣𝑎,𝑏 (𝑖, 𝑗) =
𝑚𝑖𝑛 { 𝐿𝑒𝑣𝑎,𝑏 (𝑖, 𝑗 − 1) + 1 }
{ 𝐿𝑒𝑣𝑎,𝑏 (𝑖 − 1, 𝑗 − 1) + 1 }
Équation 1: WJ Heeringa, (2004)

Exemple :

15 https://github.com/seatgeek/fuzzywuzzy

94
Chapitre III : Conception

➢ Similarité (nchallah, nchalah) = 93 %

➢ Similarité (nchallah, nakol) = 40 %

Pour chaque liste de mots du dictionnaire donné dans l'étape du regroupement phonétique, nous
prenons le mot qui a apparu le plus dans le corpus parmi cette liste, et nous calculons sa
similarité avec tous les autres mots. Quand la similarité est supérieure à un certain seuil (que
nous avons fixé à 75% après avoir testé plusieurs exemples) les mots sont regroupés. Cela
donne une première liste qui représente le premier regroupement par similarité.

On refait la même chose pour le groupe de mots qui reste dans la liste jusqu'à que cette dernière
soit vide.

Exemple :

_ N24 : ['nokloa', 'nchalh', 'nchlh', 'nchalah', 'nchallah', 'ngoul', 'nakle', 'nchallh', 'ngolo',
'naklo', 'nousalha', 'nqol', 'ngoulouha', 'nqolo', 'noklo', 'nchalahe', 'nqolh', 'nkhlio', 'nsl7o',
'nqool', 'nqolha', 'nsalho', 'nchlah', 'nkhliwha', 'nshallah', 'nshalah', 'nakol ']

Dans cet exemple le mot le plus fréquent est : nchallah. Après regroupement par similarité le
résultat donne :

_ nchallah : ['nchalh', 'nchlh', 'nchalah', 'nchallah, 'nchallh', 'nchalahe', nchlah, nshallah,


nshalah ]

Et on refait la même chose pour ce qui reste dans la liste. Cela donne au final:

_ nchallah : nchalh, nchlh, nchalah, nchallah, nchallh, nchalahe, nchlah, nshallah, nshalah.

_ ngoul : ngoul, ngolo, nqolo, ngoulouha, nqool, nqolha, nqolo, nqolh.

_ nakol : naklo, nakle, noklo, nakol, nakloa.

_ nsalho : nsalho, nsl7o, nousalha.

_ nkhaliwha : nkhliwha, nkhlio.

Par la suite, ce dictionnaire sera utilisé pour substituer certains mots par leur forme la plus
courante dans le dictionnaire. Le choix de la substitution par la forme la plus courante est fondé
sur le fait que le langage utilisé (dialecte algérien) ne possède pas de règles.

Ce processus a été mis en place afin de réduire le bruit généré par la diversité des écritures pour
un même mot. Cette étape du prétraitement a permis de réduire considérablement le nombre
de mots que comporte le vocabulaire de tout le corpus. Les chiffres de la figure 19 ci-dessous
indiquent clairement cette amélioration en réduisant presque un tiers (36.70) de la taille du
corpus.

95
Chapitre III : Conception

30000

25000
25304
20000

15000
16018

10000

5000

0
Avant Après

Avant Après

Figure 19 Réduction du nombre de mots après prétraitement

VI.2.6. Prétraitement relatif à l’analyse de sentiments


Durant le cycle de vie d’un projet de traitement naturel du langage, plus de 50% de temps est
consacré au prétraitement, ce qui nous donne un aperçu de l’importance de cette étape. Nous
avons exposé un peu plus haut les différentes techniques appliquées au traitement du texte.
Cependant l’analyse de sentiment dans notre cas requiert des techniques plus spécifiques vu
qu’en plus de traiter des langues structurées comme le français et l’anglais, on traite aussi un
dialecte.

VI.2.6.1. Détection des émoticons

Lors de la phase d’observation, nous avons remarqué que sur les commentaires récoltés on
trouve une manière de communication semblable à celle qu’on utilise dans notre vie réelle les
expressions faciales particulières, les grimaces …etc. Ce qui nous a motivé à exploité ce qu’on
appelle les émoticônes. Il existe trois types d’émoticônes :
➢ Les smileys : représentent une expression faciale en utilisant des affiches
typographiques,

➢ Les emojis : sont des photos et images représentant des objets qu’on trouve dans notre
vie courante ou des émotions,

➢ Les autocollants : pareil que les emojis, mais ces derniers peuvent être animés.

96
Chapitre III : Conception

Figure 20 Exemple d'émoji

Figure 21 Exemple d'autocollants

L’intérêt qu’apporte les émoticônes au domaine d’analyse de sentiments ne peut être


négligeable. De ce fait, nous avons utilisé des méthodes pour détecter trace des émotions qui
sont véhiculées dans ces messages. Ces techniques sont :

➢ Détection des smileys : Sachant que ces derniers sont des représentations
typographiques, nous avons utilisé une expression régulière comportant les différents
caractères qui interviennent dans l’expression des émoticônes ainsi que leur
séquencement.

➢ Détection des émojis : En ce qui est des emojis, nous avons eu recours á des ressources
externes prêtent conçues pour détecter les emojis à partir du texte.

➢ Détection d’autocollant : Les autocollants quant à eux sont récupérer en utilisant


l’API de Facebook sous forme d’attachements.

VI.3. Annotation du corpus


Une phase importante de l’apprentissage automatique est la création d’un corpus
d’apprentissage. Afin de pouvoir classer un document d donné dans une classe c, notre système
requiert un ensemble de document dont la classe est déjà connue pour construire un modèle
qui pourra prédire la classe d’un document donné.

Dans notre cas, on a opté pour une solution non supervisée qui se base sur le clustering.

VI.3.1. Modèle de clustering


Le modèle à concevoir et à réaliser doit permettre d’avoir un partitionnement des documents
en k ensemble(s) par rapport aux métadonnées utilisateurs et commentaires que nous disposons.
Le diagramme d’activité ci-dessous, illustre les étapes du processus du modèle de clustering.
Les étapes de nettoyage et prétraitement ont été présenté dans les section VI.1 et VI.2
respectivement de ce chapitre. Nous pouvons à présent passer à la construction de notre modèle
de clustering.

97
Chapitre III : Conception

Figure 22 Diagramme d'activité qui illustre le processus de clustering

VI.3.1.1. Sélection des attributs

Après avoir étudier les besoins des analyses à effectuer, nous avons pu effectuer une sélection
des attributs disponibles au niveau de notre source de données pour pouvoir regrouper les
commentaires similaires dans un même cluster. Le tableau ci-dessous, présenté les attributs
sélectionnés pour chacune de nos deux analyses.

Table 3 Attributs sélectionnés pour le clustering

Attributs sélectionnés

Attributs utilisateur Attributs commentaire

Nb Représentation
Id Nb réactions Pages Nb Page Nb de
commentaires numérique du
utilisateur commentaires hôte réaction hôte réponse
publiés message

VI.3.1.2. Représentation des données pour le clustering

Les algorithmes de clustering prennent comment entrée que des données numériques, ce qui
n’est pas le cas de nos données. Pour y remédier à cela, nous utilisons une technique de
représentation de texte sous format numérique. La sortie de cette conversion est un vecteur
numérique auquel on rajoute les caractéristiques utilisateur ainsi que les métadonnées du
commentaire.

Figure 23 Vecteur d'entrée de clustering

VI.3.1.3. Choix des algorithmes

K-means

La méthode des k-means est une méthode de partitionnement de données introduite par
MacQueen en 1967, dont le but est de former des sous-ensembles des individus appelés
partitions tel que les individus formant chaque partition soit le plus proches possible.

98
Chapitre III : Conception

Pour comprendre le fonctionnement nous donnons le pseudo-algorithme de la méthode K-


means

Pseudo algorithme K-means

Entrées : D données à traiter, K nombre de clusters de sortie.

K-means (D, K)
1. Choisir K points centroïdes initiaux.

Tant que distance (points, centroides) != min(points, centroides)


(a) FormerClusters (points, centroides)

(b) Calculer les nouveaux centroïdes.


Min (Ps, Cs)
Retourner le min entre Ps et Cs

FormerClusters (Ps, Cs)

Retourne K clusters en affectant chaque point au cluster avec le centroide le plus


proche

disntance (Point, Point1)


Retourne la distance entre le point et le point1.
Retourner une artition des individus caractérisée par les K centroïdes
Sortie : K clusters.

DB-SCAN

DB-SCAN (density-based spatial clustering of applications with noise) est un algorithme de


partitionnement de données proposé en 1996 par Martin Ester, Hans-Peter Kriegel, Jörg Sander
et Xiaowei Xu.

Les avantages de DB-SCAN résident dans la simplicité de l'algorithme et le non besoin du


nombre de clusters en sortie.

99
Chapitre III : Conception

Pseudo algorithme DB-SCAN

Entrées : D données à traiter, esp distance d’acceptation, MinPts nombre minimum de


points dans un cluster

DBSCAN (D, eps, MinPts)

Pour chaque point P non visité des données D

Marquer P comme visité


PtsVoisins = epsilonVoisinage(D, P, eps)

Si tailleDe(PtsVoisins) < MinPts


Marquer P comme BRUIT

Sinon

C++
etendreCluster(D, P, PtsVoisins, C, eps, MinPts)

etendreCluster(D, P, PtsVoisins, C, eps, MinPts)


Ajouter P au cluster C

Pour chaque point P' de PtsVoisins

Si P' n'a pas été visité

Marquer P' comme visité

PtsVoisins' = epsilonVoisinage(D, P', eps)

Si tailleDe(PtsVoisins') >= MinPts

PtsVoisins = PtsVoisins U PtsVoisins'


Si P' n'est membre d'aucun cluster

Ajouter P' au cluster


epsilonVoisinage(D, P, eps)

Retourner tous les points de D qui sont à une distance inférieure à eps de P

Sortie : K clusters.

VI.3.2. Approche d’annotation non supervisée

Une fois les caractéristiques représentées sous forme de vecteur, on utilise un algorithme de
clustering pour regrouper les documents similaires dans un même cluster. Ensuite, on extrait

100
Chapitre III : Conception

les mots les plus fréquents et nous les comparons avec des listes de mots qui représentent nos
classes de sentiments à savoir, des listes de mots qui expriment l’adoration, l’appréciation, la
tristesse ainsi que la colère. Enfin, on annote les clusters selon l’appartenance de leurs mots les
plus fréquents aux listes des mots les plus fréquents.

Voici le diagramme d’activité qui résume l’approche expliquée ci-dessus :

Figure 24 Diagramme d’activité de l'annotation non supervisée

VI.4. Catégorisation
Après avoir terminé les étapes citées ci-dessus, nous procédons ensuite à une série de tests pour
déterminer la meilleure représentation pour le texte ainsi que l'algorithme qui donne les
meilleurs résultats en fonction de la combinaison choisie. Pour ce faire on a choisi quatre
techniques de représentation de texte qui sont, représentation binaire, IDF, TF-IDF et enfin
Word Embedding ainsi que quatre algorithmes d’apprentissage automatique qui sont, SVM,
NBM, CNN et enfin LSTM. En effet, il est difficile de prédire l'association qui donnera la plus
haute précision avant d'avoir essayé, car la qualité de la prédiction est très liée au corpus et à
la nature des textes. Ces étapes correspondent aux étapes 4 et 5 de la méthodologie CRISP-
DM.

VI.5. Visualisation
Nous exposons dans cette partie la méthodologie de conception du tableau de bord ainsi que la liste des
indicateurs de performance.

101
Chapitre III : Conception

VI.5.1. Méthodes de mise en œuvre des tableaux de bords


Pour garantir une analyse plus réelle et épurée, les tableaux de bord ont été orientés vers des stratégies
plus globales et complète où les indicateurs traditionnels de finances ne sont plus déterminants.

Les méthodes les plus utilisées dans la conception des tableaux de bord sont : la méthode GIMSI et la
méthode BSC. Une étude comparative présente en -annexe D- a été effectué afin de comparer ces deux
méthodes. Finalement, notre choix s’est porté sur la méthode Balanced Scorecard (BSC) qui est un
système de mesure de performance qui privilégie l'approche « Top – Down » qui est particulièrement
efficace pour garantir une mise en œuvre assez étroite de la stratégie. Selon les concepteurs de ce
système « Le tableau de bord prospectif (ou Balanced Scorecard) est un concept de management qui se
focalise sur la stratégie et la vision plutôt que sur le contrôle. Les raisons qui ont motivés notre choix
sont les suivantes :

➢ La méthode BSC s’accorde parfaitement avec les besoins et attentes des hauts dirigeants, ce
qui nous convient vu qu’on s’intéresse aux performances globales de l’entreprise, ce qui n’est
pas le cas avec l’approche GIMSI qui se focalise beaucoup plus sur les besoins et attentes
opérationnels.

➢ La démarche privilégiée dans notre cas est la démarche Top-down adoptée par la BSC qui
donne une vision claire et globale des données de l’entreprise contrairement la GISMI qui
favorise l’approche Botton-up. Ce qui s’accorde parfaitement avec notre projet dont l’objectif
est de répondre aux attentes et aux besoins des haut dirigeants.

➢ Le besoin des décideurs de se focaliser sur les indicateurs citriques de l’entreprise nous impose
d’avoir recours à la BSC vu sa structuration et sa vision concise sur la performance globale de
l’entreprise.

VI.5.3. Définitions des indicateurs de performances (KPI)


Il s'agit d'un ensemble de mesures représentées sur des graphiques donnant une image synthétique
et compréhensible de l'état d’une activité précise, dans notre cas c’est : l’état du sentiment d’une
catégorie de clients pendant une période donnée, par rapport à un opérateur précis, ces mesures
ou indicateurs sont regroupées en deux niveaux :

VI.5.3.1. Indicateurs globaux

Donnent une vue globale et comparative concernant nos sources de données. Comme nous
avons pris comme projet de référence l’entreprise Ooredoo Algérie, nous avons pris les quatre
opérateurs téléphoniques présents sur le marché algérien comme source de données.

102
Chapitre III : Conception

VI.5.3.2. Vues du système

Vue Administrateur

L’administrateur gère les comptes utilisateurs, les droits d’accès au tableau de bord et il alloue
les ressources aux groupes d’utilisateurs si nécessaires. La figure ci-dessous résume les cas
d’utilisation de l’administrateur.

Figure 25 Diagramme des cas d'utilisation - Vue administrateur-

Vue Utilisateur

L’utilisateur en plus du fait qu’il utilise le Dashboard pour visualiser les différents indicateurs,
il se charge de créer les indicateurs, les rapports, les filtres, les graphiques qui seront consulter
par la suite. La figure ci-dessous, résume les cas d’utilisations de l’utilisateur.

103
Chapitre III : Conception

Figure 26 Diagramme des cas d'utilisation - Vue utilisateur-

VI.5.3.2. Indicateurs détaillés

Ils donnent une vue plus détaillée par rapport à la vue comparative. Ils permettent de visualiser
les mesures de sentiment exprimés par une catégorie de clients, relatif à un opérateur sur une
période donnée. Ces mesures permettent de s'informer d'une manière plus détaillée à travers
les sentiments des clients sur les différentes pages Facebook surveillées, les types de clients,
les mentions ainsi que leur évolution. Pour les besoins opérationnels.

Nous exposons dans cette partie la liste des indicateurs avec leurs formules de calcul.

104
Chapitre III : Conception

Table 4 Présentation des différentes metriques


Nom de la Unité de
Objectif Formule de calcule Filtres
mesure mesure
Indique le nombre de commentaires
qui expriment l’appréciation par
Nombre de Toutes les
rapport à un produit où une nouvelle
commentaires qui pages,
offre, plus ce nombre est important Commentaire Nb_commentaire_Appreciaton
exprime concurrents,
plus nous disposons de données qui
l’appréciation label
nous permettent d'identifier les
points qui satisfont les clients.
Indique le nombre de commentaires
qui expriment l’adoration par
Nombre de Toutes les
rapport à un produit où une nouvelle
commentaires qui pages,
offre, plus ce nombre est important Commentaire Nb_commentaire_Adoration
exprime concurrents,
plus nous disposons de données qui
l’adoration label
nous permettent d'identifier les
points promoteurs de la marque.
Indique le nombre de commentaires
qui expriment de la colère que ce
soit envers une offre á prix exagéré,
un mauvais service, la couverture Toutes les
Nombre de
réseau ou la mauvaise connexion pages,
commentaires qui Commentaire Nb_commentaire_Colere
cellulaire, plus ce nombre est concurrents,
exprime la colère
important plus nous disposons de label
données qui nous permettent
d'identifier les points détracteurs de
la marque.
Indique le nombre de commentaires
qui expriment de la tristesse envers
Nombre de une annulation de la suppression ou Toutes les
commentaires qui changement d’une offre est pages,
Commentaire Nb_commentaire_Tristesse
exprime la important plus nous disposons de concurrents,
tristesse données qui nous permettent label
d'identifier les points détracteurs de
la marque.
Toutes les
Nombre de
Indique la quantité de bruits qui ne pages,
commentaires Commentaire Nb_commentaire_Neural
portent aucune opinion. concurrents,
Neutre
label
Fournit une valeur normalisée de
Taux de Toutes les
nombre de commentaires qui Nb_commentaire_Appreciation
commentaires qui pages,
expriment l’appréciation par rapport Pourcentage 100 ∗
exprime
au trafic généré. Il peut être utilisé Nb_total_commentaires concurrents,
l’appréciation label
pour se comparer aux concurrents.
Fournit une valeur normalisée de
Taux de Toutes les
nombre de commentaires qui Nb_commentaire_Adoration
commentaires qui pages,
expriment l’adoration par rapport au Pourcentage 100 ∗
exprime
trafic généré. Il peut être utilisé pour Nb_total_commentaires concurrents,
l’adoration label
se comparer aux concurrents.
Fournit une valeur normalisée de
Toutes les
Taux de nombre de commentaires qui Nb_commentaire_colere pages,
commentaires qui expriment de la colère par rapport au Pourcentage 100 ∗
exprime la colère trafic généré. Il peut être utilisé pour Nb_total_commentaires concurrents,
label
se comparer aux concurrents.

105
Chapitre III : Conception

Nom de la Unité de
Objectif Formule de calcule Filtres
mesure mesure
Fournit une valeur normalisée de
Toutes les
Taux de nombre de commentaires qui Nb_commentaire_colere pages,
commentaires qui expriment de la colère par rapport au Pourcentage 100 ∗
exprime la colère trafic généré. Il peut être utilisé pour Nb_total_commentaires concurrents,
label
se comparer aux concurrents.
Fournit une valeur normalisée de
Taux de Toutes les
nombre de commentaires qui Nb_commentaire_tristesse
commentaires qui pages,
expriment de la tristesse par rapport Pourcentage 100 ∗
exprime la
au trafic généré. Il peut être utilisé Nb_total_commentaires concurrents,
tristesse label
pour se comparer aux concurrents.
Toutes les
Taux de Fournit une valeur normalisée de Nb_commentaire_neural pages,
commentaires nombre de commentaires neutres par Pourcentage 100 ∗
neutres rapport au trafic généré. Nb_total_commentaires concurrents,
label
Représente un degré de satisfaction (Taux de commentaires qui exprime
globale sur les réseaux sociaux, une l’appréciation + Taux de commentaires qui Toutes les
valeur positive indique une tendance exprime l’adoration) –
Score de pages,
positive envers la marque sinon c'est Pourcentage
sentiments (Taux de commentaires qui exprime la concurrents,
l'opinion négative qui domine. Il est
colère + Taux de commentaires qui label
utilisé comme mesure de
comparaison avec les concurrents. exprime la tristesse)

Indique la part des commentaires


Toutes les
qui expriment l’appréciation à 100 ∗ Nb_commentaire_Appreciation
Part de pages,
l'ensemble des commentaires Pourcentage
l’appréciation Nb_commentaire_Appr. + Nb_commentaire_ador
concurrents,
expriment l’appréciation générés sur
label
toutes les pages surveillées.
Indique la part des commentaires
Toutes les
qui expriment l’adoration à 100 ∗ Nb_commentaire_love
Part de pages,
l'ensemble des commentaires Pourcentage
l’adoration Nb_commentaire_Appr. +Nb_commentaire_ador −
concurrents,
expriment l’adoration générés sur
label
toutes les pages surveillées.
Indique la part des commentaires
Toutes les
qui expriment de la colère à 100 ∗ Nb_commentaire_colere pages,
Part de la colère l'ensemble des commentaires Pourcentage
expriment de la colère générée sur Nb_commentaire_colere + Nb_commentaire_trist
concurrents,
label
toutes les pages surveillées.
Indique la part des commentaires
Toutes les
qui expriment de la tristesse à 100 ∗ Nb_commentaire_tristesse pages,
Part de la tristesse l'ensemble des commentaires Pourcentage
expriment de la tristesse générée sur Nb_commentaire_colere + Nb_commentaire_tris
concurrents,
label
toutes les pages surveillées.

VI.6. Sécurité du système


Dans cette partie nous allons expliquer comment notre solution prend en considération la
sécurité de son application qui repose sur trois composants majeurs que nous aborderons dans
la suite et qui sont :

1. Authentification

106
Chapitre III : Conception

2. Autorisation

3. Sécurité des données

Nous optons pour une solution qui sépare l’authentification du reste du système, un serveur
d’authentification est responsable de l’identification des utilisateurs et l’attribution des rôles.
Cette solution permet de :

➢ Centraliser la gestion des utilisateurs et des rôles dans notre système,

➢ Isoler les données confidentielles des utilisateurs du reste des ressources afin de limiter
le risque de défaillance de sécurité.

VI.6.1. Authentification
Avant d'accéder à une ressource, l'utilisateur doit d'abord s'authentifier à l'ouverture de session
en introduisant un couple (e-mail, mot de passe), le couple est envoyé au serveur
d'authentification à travers un canal sécurisé avec SSL16 afin d'être identifié dans la base de
données des utilisateurs.

L'authentification vérifie l'identité d'un utilisateur. Tous ceux qui doivent disposer d'un accès
à notre solution, que ce soit pour publier, naviguer ou administrer du contenu, doivent être
ajoutés en tant qu'utilisateurs dans la base de données des utilisateurs.

VI.6.2. Autorisation
A l'issue de l’étape d’authentification, le serveur d'authentification génère un Ticket de service
(Token en anglais), ce ticket contient les informations de base de l'utilisateur dont son
identifiant, les rôles ainsi que la date d'expiration du ticket autrement dit de la session.

L'autorisation inclut :

➢ Ce que les utilisateurs sont autorisés à faire avec le contenu hébergé sur notre solution.

➢ Ce que les utilisateurs sont autorisés à faire avec les sources de données gérées.

VI.6.2.1. Rôles sur le site

Les rôles définissent qui est un administrateur. Les administrateurs peuvent être désignés au
niveau du serveur authentification. Pour les non-administrateurs, les rôles sur le site indiquent
le niveau maximum d'accès dont un utilisateur peut disposer sur un site donné, soumis aux
autorisations définies sur les ressources de contenu. Par exemple, si le rôle sur le site Viewer
(Observateur) a été attribué à un utilisateur, et le rôle Creator à un autre.

16 Secure Sockets Layer, un protocole de sécurisation des échanges sur Internet

107
Chapitre III : Conception

VI.6.3. Sécurité des données


Après l’étape d’authentification et la récupération des autorisations, l’utilisateur peut
désormais demander une ressource à partir du serveur de ressources en utilisant le ticket
récupéré. Le serveur de ressource vérifie l'authenticité de l'utilisateur en décryptant le ticket
avec la clé publique du serveur d'authentification afin de garantir l'accès aux ressources
autorisées par les rôles de l'utilisateur.

La figure suivante représenté sur le diagramme de séquence du système de sécurité.

Figure 27 Diagramme de séquence du système de sécurité

108
Chapitre III : Conception

VI.7. Conclusion
Dans ce chapitre, nous avons présenté en premier la méthodologie que nous avons suivie pour
mener à bien la réalisation de notre projet, après cela nous avons présenté une vue globale de
notre solution. Après avoir présente notre architecture globale, nous avons détaillé chaque
étape du système à commencer par la logique de collecte et de sauvegarde des données à partir
des réseaux sociaux. Nous avons par la suite abordé les différentes techniques de prétraitement
que nous avons appliquées à notre corpus dans le but de le préparer pour les étapes d’annotation
et de catégorisation. Nous avons notamment accordé beaucoup d'attention au traitement des
particularités du langage employé sur les plateformes de réseaux sociaux pour apporter une
solution qui gère le dialecte en plus des langues structurée. Pour ce faire, nous avons exploité
les particularités phonétiques pour proposer une approche qui nous permet de regrouper les
différentes néographies des mots. Nous avons également discuté les différents paramètres qui
interviennent au niveau du module de catégorisation. Pour finir, nous avons présenté le module
de visualisation avec les différentes mesures et vues qui offrent une vue globale des résultats
aux utilisateurs en fonction des paramètres de temps et des opérateurs.

Dans le prochain chapitre, nous allons exposer les différentes technologies employées pour la
réalisation de notre projet. Nous aborderons également la phase de déploiement en présentant
notre architecture de déploiement, avant de finir par les différents scénarios de tests ainsi que
les résultats obtenus dans la phase évaluation.

109
Chapitre IV : Réalisation, Déploiement et Évaluation

Chapitre IV : Réalisation, Déploiement


et Évaluation
Une fois avoir opté pour une solution globale pour la problématique de notre projet, et après
avoir présenté notre vision et notre conception des différents modules de notre solution, vient
maintenant l’étape de réalisation, déploiement et d’évaluation. Durant cette étape nous allons
aborder dans un premier temps, l’architecture logicielle globale de notre système d’analyse de
sentiments, puis nous détaillerons chaque composant de l’architecture, en abordant
l’implémentation des couches logiques de chaque composant ainsi que les outils et
technologies utilisées. Ensuite, nous passerons à la phase de déploiement où nous présenterons
l’architecture de déploiement au sein de l’organisme d’accueil. Enfin, nous clôturerons ce
chapitre par la phase d’évaluation des performances de notre solution en expliquant la
démarche suivie en plus de commentaires pour une meilleure compréhension des résultats.

110
Chapitre IV : Réalisation, Déploiement et Évaluation

I. Environnement et technologies de
développement
Dans cette section nous allons nous attarder sur l'environnement ainsi que les technologies
utilisées pour la réalisation de notre projet. La figure ci-dessous résume les principales
technologies utilisées ainsi que le contexte et le module dans lequel elles interviennent.

Figure 28 Technologies utilisées

Les technologies utilisées supportent plusieurs langages de programmation, nous avons donc
choisi d’utiliser les langages de programmation que nous maitrisons pour exploiter la puissance
des différentes technologies. Voici un tableau qui résume les langages de programmation
utilisés ainsi que la partie dans laquelle on les a utilisé.

Table 5 Langages de programmation et emplacement

Langages Endroit

Python Kafka, Spark, Analyseur de sentiments

C# (ASP.Net) Application Web de l’annotation manuelle

111
Chapitre IV : Réalisation, Déploiement et Évaluation

I.1. Langages de programmations

I.1.1. Python

Python est un langage de script de haut niveau, structuré et open source. Il est multi-paradigme
et multiplateformes. Conçu pour être orienté objet, mais rien n'empêche de l'utiliser dans un
contexte de programmation fonctionnelle. En offrant des outils de haut niveau et une syntaxe
simple à utiliser, il permet d'optimiser considérablement la productivité́ des programmeurs.
Python est un langage qui peut être utilisé dans de nombreux contextes et s'adapter à tout type
d'utilisation grâce à des bibliothèques spécialisées. Il est particulièrement répandu dans le
monde scientifique, le traitement automatique du langage naturel et possède de nombreuses
extensions destinées aux applications numériques.
I.1.2. C#

C# est un langage de programmation orienté objet, fortement typé, dérivé́ de C et C++. C♯ est
destiné pour le développement sur la plateforme .NET, il est utilisé pour développer des
applications web et mobile, ainsi que des applications de bureau, des services web …etc.
I.2. Environnement

I.2.1. Nifi

NiFi est un logiciel libre de gestion de flux de données. Il permet de gérer et d'automatiser des
flux de données entre plusieurs systèmes informatiques, à partir d'une interface web et dans un
environnement distribué.
I.2.2 Kafka

Apache Kafka est un projet open-source d'agent de messages développé par l'Apache Software
Foundation et écrit en Scala. Le projet vise à fournir un système unifié, temps réel à latence
faible pour la manipulation de flux de données.
I.2.3. Spark

Apache Spark est un framework de traitements Big Data open source construit pour effectuer
des analyses sophistiquées et conçu pour la rapidité et la facilité d’utilisation.

D’abord, Spark propose un framework complet et unifié pour répondre aux besoins de
traitements Big Data pour divers jeux de données, divers par leur nature (texte, graphe, etc.)
aussi bien que par le type de source (batch ou flux temps-réel).

112
Chapitre IV : Réalisation, Déploiement et Évaluation

Ensuite, Spark permet à des applications sur clusters Hadoop d’être exécutées jusqu’à 100 fois
plus vite en mémoire, 10 fois plus vite sur disque. Il vous permet d’écrire rapidement des
applications en Java, Scala ou Python et inclut un jeu de plus de 80 opérateurs haut-niveau.
I.2.4. Hbase

HBase est un système de stockage distribué de map(s) triées, développé au-dessus du système
de fichier HDFS. Il permet un accès aléatoire en écriture/lecture en temps réel à un très grand
ensemble de données.

HBase est une base NoSQL distribuée orienté colonne, horizontalement scalable et tolérante
aux pannes où la charge de travail en termes de mémoire et de calculs (CPU) ainsi que le
stockage est distribué sur toutes les machines du cluster HBase.
I.3. Bibliothèques

I.3.1. NLTK (Natural Language Toolkit)

NLTK est une bibliothèque logicielle écrite en python contenant un ensemble de fonctions
destinées au traitement automatique du langage naturel. Elle permet la segmentation des
phrases, l'étiquetage des textes, la normalisation des mots ainsi que certains calculs statistiques.
Elle est plus adaptée pour être utilisée avec des textes en anglais comparé à d'autres langues.
I.3.2. SciKit-Learn

Scikit-learn est une bibliothèque Python dédiée pour l'apprentissage automatique. Elle propose
divers algorithmes de clustering et de régression. Elle est conçue pour fonctionner avec les
bibliothèques numériques et scientifiques Python telles que numpy17et SciPy18.
I.3.3. Keras

Keras est une librairie open source écrite en python et permettant d'interagir avec les
algorithmes de deeep learning et de machine learning, capable de fonctionner sur TensorFlow 19,
CNTK20 ou Theano21.
I.3.4 Gensim

Gensim est un outil robuste de modélisation de l’espace vectoriel open-source et de


modélisation de sujets implémenté en Python. Il utilise NumPy, SciPy et optionnellement

17 http://www.numpy.org/
18 https://www.scipy.org/
19 https://www.tensorflow.org/
20 https://www.microsoft.com/en-us/cognitive-toolkit/
21 https://github.com/Theano/Theano

113
Chapitre IV : Réalisation, Déploiement et Évaluation

Cython22 pour la performance. Il est spécialement conçu pour traiter de grandes collections de
textes, en utilisant des algorithmes de streaming de données et des algorithmes incrémentaux
efficaces, ce qui le différencie de la plupart des autres bibliothèques scientifiques qui ne ciblent
que le traitement par lots et en mémoire.

22 http://cython.org/

114
Chapitre IV : Réalisation, Déploiement et Évaluation

II. Réalisation
La figure ci-dessous représente notre architecture technique, ainsi que son découpage en
plusieurs modules sur lesquelles on va s’attarder un peu plus loin.

➢ Data Collection : Cette partie représente la phase de collection de données qui se


réalise en 3 étapes, authentification, récupération du token d’accès utilisateur et enfin
la connexion à graphe API.

➢ Data Processing : Cette partie représente les phases de prétraitement de nos données
textuelles qui comporte les étapes décrites dans le chapitre conception.

➢ Sentiment Analysis : Cette partie comporte notre système d’analyse de sentiments, qui
nous permettra de prédire les classes de nos documents.

➢ Data Vizualisation : Représente la partie Dashboard.

Figure 29 Architecture technique

II.1. Collecte de données – Data Collection-


Cette partie représente la phase de collection de données qui se réalise en 3 étapes principales,
authentification, récupération du token d’accès utilisateur et enfin la connexion à graphe API.

II.1.1. Authentification Facebook


En utilisant l’interface développeurs sur ( https://developers.facebook.com/apps/ ), nous avons
créé notre application « Analyse de sentiments Ooredoo »

115
Chapitre IV : Réalisation, Déploiement et Évaluation

Figure 30 Application AS Ooredoo sur Facebook Dev Platforme

II.1.2. Récupération du token d’accès

II.1.2.1. Token d’accès d’application


Ceci nous permettra d’avoir un accès durable sur les données de la page Ooredoo en lecture et
en écriture.

II.1.2.2. Token d’accès utilisateur

Ceci nous permettra d’avoir un accès durable sur les données publiques des pages concurrentes
tels que les postes et les commentaires.

II.2. Traitements de données - Data Processing -


Dans la phase de traitements de données, nous avons opté pour l'environnement Spark qui est
un Framework pour traiter de gros volumes de données de manière distribuée. Nous avons
exploité la puissance de Spark pour traiter nos données textuelles à travers des étapes de
prétraitement décrites dans le chapitre conception.

II.3. Stockage de données


Pour implementer le schéma de BDD présenté au niveau de la conception, on a opté pour le
choix d’une BDD NoSQL pour plusieurs raisons :

➢ Meilleures performances,

➢ Facilité d’implémentation du schéma de données,

➢ Modèle qui s’adapte bien avec les données non structurées.

Sur le marché, il existe plusieurs solutions tels que : MongoDB, Cassandra, HBase et d’autres
bases de données. Voici une petite comparaison entre les 3 bases de données les plus utilisées
dans un contexte Big Data :

116
Chapitre IV : Réalisation, Déploiement et Évaluation

Table 6 Comparaison entre Cassandra vs HBase vs MonogDB

Critère Cassandra HBase MongoDB

Modèle Orienté colonnes Orienté colonnes Orienté documents

License Open source Open source Open source

Types complexes
Oui Oui Oui
(Maps & Tableaux)

Parcours des types


Non Oui /
complexes

II.4. Représentation du vecteur texte


Une fois les données prétraités et stockés, vient l’étape d’analyse de sentiments. Pour cela nous
avons décrit les différentes techniques de représentation du texte dans les chapitres précédents.
Nous avons opté pour la technique du word embedding, vu les avantages qu’il apporte et les
résultats optimistes qu’il a donné dans les travaux déjà existants (Yoav Goldberg and Omer
Levy, 2014) et (dos Santos C, Gatti M., 2014).

D’abord nous avons réalisé un modèle de word embedding en utilisant la bibliothèque Gensim
qui nous permet de représenter chaque mot par un vecteur de n dimensions, dans notre cas nous
avons fixé n à 100, en se basant sur les recommandations sur le site officiel de Gensim 23.
Ensuite, nous utilisons celui-ci, pour calculer le vecteur moyen des vecteurscomposants chaque
document comme le montre la figure ci-dessous.

23 https://radimrehurek.com/gensim/

117
Chapitre IV : Réalisation, Déploiement et Évaluation

Figure 31 Architecture du système du Word Embedding

II.5. Annotation
II.5.1. Annotation non supervisée
Parmi les parties les plus importantes de notre solution, nous trouvons l’annotation non
supervisée, qui nous permettra de générer un dataset d’apprentissage consistant pour nos
algorithmes d’apprentissage automatique. Grâce à notre approche non supervisée, nous avons
pu annoter plus de 100.000 commentaires, ce qui nous a permis d’avoir des résultats
satisfaisants lors des tests de nos algorithmes de classification. L’annotation non supervisée de
corpus exploite la puissance des algorithmes de clustering. On utilise la technique du word
embedding pour l’extraction des caractéristiques tout en rajoutant les données relatives aux
utilisateurs au vecteurs résultant du Word Embedding (annotation du commentaire par les
utilisateurs, nombre de commentaire postés par l’utilisateur, nombre de réaction…etc).
Ensuite, on exploite la puissance des algorithmes de clustering pour regrouper les
commentaires similaires dans une même classe. L’étape suivante consiste à extraire les mots
les plus fréquents et les comparer avec des listes de mots qui représentent nos classes de
sentiments à savoir, des listes de mots qui expriment l’adoration, l’appréciation, la tristesse
ainsi que la colère. Enfin, on annote les classes selon l’appartenance aux listes des mots les
plus fréquents.

Voici un schéma qui résume l’approche expliquée ci-dessus :

Figure 32 Architecture de l'annotation non supervisée

118
Chapitre IV : Réalisation, Déploiement et Évaluation

II.5.2. Annotation manuelle


Pour ce qui est de l’annotation manuelle, nous avons conçu une application Web afin
d’accélérer et de faciliter la tâche de l’annotation manuelle du corpus. L’application permet
aux annotateurs de visualiser les messages, et ensuite de les classer en cliquant sur le bouton
de la classe qui correspond au message comme le montre la figure ci-dessous.

Figure 33 Application web pour l'annotation manuelle

Le processus d’annotation est visualisé sur le diagramme de séquence suivant :

Figure 34 Diagramme de séquence de l'annotation manuelle

119
Chapitre IV : Réalisation, Déploiement et Évaluation

II.6. Catégorisation
Pour implémenter notre système d’analyse de sentiments, nous avons opté pour le Framework
Keras pour les raisons suivantes :

➢ Framework Python, langage que nous maitrisons,

➢ Facilité d’utilisation par rapport aux autres Frameworks,

➢ Facilité d’implémentation des modèles de deep learning grâce au principe du layer-


oriented.

II.6.1. Définition des différents layers

II.6.1.2. Pooling1d

La couche Dropout est proposé par (Hinton et al, 2010) comme un régularisateur qui règle les
activations des couches de notre réseaux pendant l'entraînement et améliore ainsi la capacité
de généralisation et prévient en grande partie le sur-ajustement.

II.6.1.3. Dropout

Dropout consiste à régler au hasard un taux de fraction d'unités d'entrée à 0 à chaque mise à
jour pendant l'entraînement, ce qui permet d'éviter les sur-ajustements.

II.6.1.4. LSTM

Cette couche représente la couche LSTM (Long Short-Term Memory layer.

II.6.1.1. Conv1D

Cette couche représente la couche de convolution pour créer notre couche CNN (Conventional
Neural Network).

II.6.1.5. Dense

Permet de diviser le modèle entre les couches qui font l'extraction de caractéristiques et les
couches qui font la classification de ces caractéristiques

II.6.1.6. Flatten

Permet de diminuer (aplatir) les vecteurs multidimensionnels.

120
Chapitre IV : Réalisation, Déploiement et Évaluation

II.6.2. Architecture des algorithmes proposés


Dans l’étape d’analyse de sentiments on a proposé 3 différents algorithmes de Deep learning
pour les comparer aux algorithmes standard de classification, à savoir SVM et Naïve Baye.
Dans ce qui suit on présente les architectures des algorithmes de deep learning que nous avons
choisi en se basant sur les travaux existants.

II.6.2.1. Architecture du LSTM

Dans la figure ci-dessous, on présente l’architecture de notre algorithme de LSTM (Long Short
Term Memory). Nous avons opté pour cette architecture en se basant sur des travaux déjà
existant dans le domaine de classification du texte, ainsi que les recommandations sur le site
officiel du Framework Keras.

Figure 35 Architecture LSTM

II.6.2.2. Architecture du CNN

Notre algorithme de CNN est présenté dans la figure suivante, qui est l’implémentation de
l’algorithme présenté par (Kim Yoon et al,2014).

Figure 36 Architecture CNN

121
Chapitre IV : Réalisation, Déploiement et Évaluation

II.6.2.3. Architecture du CNN&LSTM

Après avoir implémenté les deux algorithmes précédents CNN et LSTM, on a décidé d’essayer
la combinaison de ces deux derniers, pour pouvoir exploiter les points forts de chaque
algorithme comme le montre la figure ci-dessous.

Figure 37 Architecture CNN & LSTM

II.7. Visualisation
Pour pouvoir montrer l’importance de ce travail et les données récoltées, nous avons mis en
place un Dashboard en utilisant l’utilitaire ‘Tableau’.

Ce Dashboard permet de faire plusieurs analyses à partir des données récoltées.

Dans ce qui suit nous allons monter quelques exemples de réalisation.

➢ Part d’un sentiment (adoration, appréciation, tristesse, colère, neutre) par


opérateur.

Figure 38 Part d'un sentiment par opérateur

122
Chapitre IV : Réalisation, Déploiement et Évaluation

➢ Part d’un sentiment par opérateur avec une possibilité de visualiser les messages
filtrés par opérateur ou sentiment.

Figure 39 Part d'un sentiment par opérateur avec aperçu sur les commentaires

➢ Nombre de commentaires par opérateur/sentiment dans le temps.

Figure 40 Nombre de commentaires par opérateur/sentiment

➢ Et enfin voici l’interface principale de notre Dashboard qui regroupe toutes les
vues présentées ci-dessus.

123
Chapitre IV : Réalisation, Déploiement et Évaluation

Figure 41 Vue principale du Dashboard

III. Déploiement
La figure ci-dessous présente l’architecture de déploiement des principaux composants de notre
système. Le système est déployé́ sur le cloud privé d’Ooredoo, sur une machine virtuelle
Ubuntu Linux de la manière suivante :

➢ Les serveurs Ambari, Nifi, Spark, Hadoop, Python Anaconda, Tableau serveur sont
déployés sur la machine virtuelle.

➢ Les données sont stockées dans une base de données HBase

➢ L’application principale est accessible à partir de Tableau Desktop ainsi que d’un
navigateur web via une adresse IP publique.

Figure 42 Architecture de déploiement

124
Chapitre IV : Réalisation, Déploiement et Évaluation

IV. Évaluation
L’objectif principale de notre projet est de concevoir un système qui permet de collecter,
prétraiter, sauvegarde ainsi que d’analyse les sentiments relatifs aux données textuelles issues
des réseaux sociaux et plus précisément Facebook dans notre cas. Cela dit, notre évaluation ne
concernera que le système d’analyse de sentiments à base de techniques d’apprentissage
automatique.

Après avoir utilisé et tester plusieurs combinaisons d’algorithme d’apprentissage automatique,


de techniques d’annotation ainsi que de techniques d’extraction de caractéristiques, il est
important d’évaluer et de quantifier les performances de chaque combinaison, pour pouvoir
choisir la meilleure solution pour la détermination de la classe adéquate au document. D’où
l’importance de la phase d’évaluation dans la validation du modèle de prédiction pour un
système d’analyse de sentiments.

Dans cette section nous expliquerons dans un premier temps la démarche suivie ainsi que les
scénarios réalisés pour effectuer cette évaluation, en abordant l’ensemble des paramètres qui
interviennent durant ce processus. Pour ce faire, nous avons collecté un jeu de données qui
dépasse les 100.000 documents issus des quatre classes Adoration, Appréciation, Neutre,
Tristesse et Colère. Notre jeu de données est divisé en deux ensembles, documents annotés
manuellement et documents annotés avec une approche non supervisée Tableau 7.

Table 7 Jeu de données

Jeu de données

95731

Colère Tristesse Appréciation Adoration Neutre

4324 6546 5064 5326 69164

Nous avons découpé ce jeu de données en ensemble d’apprentissage et ensemble de test avec
une part de 80% et 20% respectivement.

Il est à noter que nos tests ont été effectuer dans un environnement Linux Ubuntu avec un CPU
de 8 cœurs et 56 Go de RAM déployé sur le cloud Microsoft Azure.

125
Chapitre IV : Réalisation, Déploiement et Évaluation

IV.1. Démarche
Dans le but de valider nos modèles, Nous adoptions une démarche de test qui nous permet de
mesurer et de comparer les métriques suivantes :

➢ Exactitude,

➢ F-Mesure,

➢ Rappel.

Ces mesures seront calculées dans le but d’effectuer une comparaison entre les différentes
combinaisons d’algorithme d’apprentissage, de techniques d’extractions de caractéristiques
ainsi que de techniques d’annotations. Nous allons donc présenter dans ce qui suit les différents
paramètres qui interviennent dans les performances de notre système d’analyse de sentiments.

IV.1.1. Composantes du vecteur de caractéristiques


Dans le démarche de construction de notre vecteur descripteur pour chaque document, nous
avons jugé intéressant d’évaluer l’utilisation des caractéristiques suivantes, en se basant sur les
travaux déjà effectués dans ce domaine :

➢ Unigrammes : Les composantes du vecteur sont les mots du vocabulaire, que nous
désignerons par la lettre U.

➢ Bigrammes : Les composantes du vecteur sont les mots du vocabulaire ainsi que des
bigrammes qui seront composés par les mots qui se suivent régulièrement. Nous
désignerons ces composantes par la lettre B.

➢ Unigrammes ou bigrammes d’opinion : En plus de considérer les mots de


vocabulaires, nous allons capturer les bigrammes qui comportent un mot d’opinion et
un mot de négation en utilisant les ressources de (Benkrid et al. 2016). Autrement dit,
si un mot d’opinion et un mot de négation se suivent ils seront considérés comme étant
un bigramme et non comme un unigramme, le but de cela bien sûr est de capturer
l’opinion inverse. La figure 43 ci-dessous nous montre un exemple de représentation
Unigramme et Bigramme.

Figure 43 Exemple de représentation Unigramme et Bigramme

126
Chapitre IV : Réalisation, Déploiement et Évaluation

IV.1. 2. Techniques de représentation du vecteur de caractéristiques


En ce qui concerne les techniques de représentation du vecteur de caractéristiques, nous avons
opté pour le Word Embedding. Nous représentons donc nos documents comme suit :

➢ Word Embedding : Représentation similaire des mots ayant une signification


similaire.

IV.1.3. Algorithmes d’apprentissage automatique


En ce qui concerne les algorithmes d’apprentissage automatique, nous avons optés pour des
algorithmes de Deep Learning et ceci en se référant aux travaux existants et leurs performances
dans le domaine de l’analyse de sentiments (Pang et al., 2002), (Pang and Lee, 2004), (Pak and
Paroubek, 2010), (Kang et al., 2012), (Yoon Kim et al.,2014) , (Benkrid et al.,2016) et
(Abdaoui.,2017).

Les algorithmes utilisés sont les suivant :

➢ CNN : Convolutional Neural Networks,

➢ LSTM: Long Short-Term Memory,

➢ CNN + LSTM: Convolutional Neural Networks + Long Short-Term Memory,

➢ Naïve Bayes : Nous avons utilisé la variante qui est NBM pour multinomial Naïve
Bayes,

➢ SVM : Support Vector Machine.

IV.1.4. Approche d’évaluation


Le dernier paramètre à déterminer est la meilleure approche à suivre pour la classification des
documents. D’après certains travaux cités dans le chapitre état de l’art, une classification peut
être faites sur différents niveaux, ce qui nous a motivé à essayer deux types de classification
en fonction du nombre de niveaux du système.
➢ Un seul niveau : Dans cette approche nous allons entrainer un seul classificateur, pour
distinguer et prédire les 5 différentes classes de commentaires : Appréciation,
Adoration, Neutre, Tristesse et Colére.

➢ Deux niveaux : Cette approche est aussi appelée classification en cascade. Durant le
premier étage nous déterminerons si un commentaire est subjectif ou objectif et cela en
entrainant un classificateur spécifique pour ces deux classes. Si un commentaire est
prédit subjectif, il sera envoyé vers le niveau suivant.

127
Chapitre IV : Réalisation, Déploiement et Évaluation

Dans le deuxième niveau, un autre classificateur sera entrainé pour distinguer entre les
classes, Appréciation, Adoration, Tristesse et Colère. La figure ci-dessous montre le
processus global du système d’analyse de sentiments à deux niveaux.

Figure 44 Classification á deux niveaux

Dans le but de tester les approches proposées, nous avons donc entrainés trois différents
classificateurs différents :

➢ Classificateur entrainé sur les classes Appréciation, Adoration, Tristesse, Colère et


Neutre pour notre approche à un seul niveau.

➢ Classificateur de classes Subjective et Objectives qui sera le premier étage de notre


solution à deux niveaux.

➢ Classificateur entrainé sur les classes Appréciation, Adoration, Tristesse et Colère qui
fera office de deuxième étage dans notre solution à deux niveaux.

Pour chaque teste, nous sélectionnerons une seule technique de composition du vecteur texte,
une seule technique de représentation du vecteur de composantes, un seul dataset
d’entrainement et de test (Dataset manuel, dataset non supervisée ou la concaténation des deux
dataset) et un seul algorithme d’apprentissage automatique.

IV.1.5 Résultats des tests


Dance cette section nous avons décidé d’évaluer les deux approches, l’approche à un seul
niveau, qui utilise un seul classificateur pour prédire la classe du document, et l’approche à
deux niveaux qui utilise à son tour deux classificateur différents, dont l’un est entrainé à prédire
si un document ou un commentaire est subjectif ou objectif, alors que le deuxième
classificateur à son tour s’occupe de catégoriser les documents subjectifs.

128
Chapitre IV : Réalisation, Déploiement et Évaluation

Table 8 Taille du corpus d'entrainement et test pour l'approche à un niveau

Classificateur Sentiments

Classes Colère Tristesse Appréciation Adoration Neutre

Entrainement 3520 3928 4052 6390 55332

Test 864 1309 1012 1064 13832

Total 90424

Table 9 Taille du corpus d'entrainement et test pour l'approche à deux niveaux

Classificateur Subjectivité Sentiments

Classes Objectifs Subjectifs Colère Tristesse Appréciation Adoration

Entrainement 55332 17008 3520 3928 4052 6390

Test 13832 4252 864 1309 1012 1673

Total 100392 21261

Les trois classificateurs sont entrainés sur trois types de jeux données, en utilisant différents
techniques et algorithmes.

129
Chapitre IV : Réalisation, Déploiement et Évaluation

Table 10 Évaluation de la classification à un seul niveau

Pondération Exactitude Rappel F-Mesure

U 79.1% 78.8% 78.94%


NBM

B 77.3% 77.3% 77.3%


TF-IDF

BO 76% 76% 76%

U 76.7% 76.6% 76.67%


SVM

B 75.8% 75.8% 75.8%

BO 75.9% 75% 75%

U 87.06% 82.79% 86.36%


LSTM

B 84.33% 81.52% 80.05%

BO 84.01% 80.25% 81.78%


Word Embedding

U 91.02% 94.21% 87.9%


CNN

B 91% 91.37% 87.88%

BO 91% 93.34% 88.08%


CNN+LSTM

U 91.09% 94.58% 87.62%

B 83.94% 80.21% 82.11%

BO 81.9% 89.12% 79.06%

130
Chapitre IV : Réalisation, Déploiement et Évaluation

Table 11 Évaluation de la classification à un seul niveau avec annotation manuelle

Pondération Exactitude Rappel F-Mesure

U 75.10% 77.82% 77.71%


NBM

B 74.3% 75.6% 74.84%


TF-IDF

BO 74.13% 76.1% 75.16%

U 76.50% 75.30% 75.74%


SVM

B 75.16% 74.98% 75.03%

BO 74.91% 75.34% 75.56%

U 85.60% 81.32% 83.49%


LSTM

B 82.33% 81.52% 81.42%

BO 83.01% 79.75% 81.29%


Word Embedding

U 90.71% 93.29% 91.51%


CNN

B 89.76% 90.73% 90.31%

BO 90.01% 90.34% 89.96%


CNN+LSTM

U 87.11% 86.57% 89.62%

B 83.11% 81.47% 82.53%

BO 82.00% 85.69% 83.27%

131
Chapitre IV : Réalisation, Déploiement et Évaluation

Table 12 Évaluation de la classification des classes de sentiments de l'approche à deux niveaux

Pondération Exactitude Rappel F-Mesure

U 90.05% 89.99% 87.81%


LSTM

B 87.28% 85.39% 84.06%


BO 85.28% 90.61% 79.95%

U
94.78% 89.23%
CNN

B 94.29%
94.76% 89.67%
BO 94.65%
94.76% 89.45%
CNN+LSTM

U
88.06% 86.25% 83.11%
B
87.17% 84.95% 82.08%
BO
85.21% 90.75% 79.97%

Table 13 Évaluation de la classification sur les classes Objective-Subjective

Pondération Exactitude Rappel F-Mesure


LSTM

U 91.09% 94.58% 87.62%


B 91% 93.34% 88.08%
CNN

U 91.83% 95.26% 94.84%


B 87.06% 82.79% 86.36%
CNN+LSTM

U 90.62% 95.24% 93.28%


B 84.01% 80.25% 81.78%

132
Chapitre IV : Réalisation, Déploiement et Évaluation

Nous constatons à travers ces résultats les points suivants :

➢ Annotation non supervisée a permis d’améliorer notre modèle de classification :


L’annotation supervisée à base de clustering nous a permet d’annoter un nombre
important de commentaires, et ceci a sans aucun doute amélioré les performances de
notre système comme on peut le voir en comparant les résultats des tests avec
l’approche manuelle et l’approche non supervisée.

➢ Conventional Neural Network -CNN- donne les meilleurs résultats d’exactitude :


CNN est l’algorithme qui a surpassé dans tous les cas les autres algorithmes en
exactitude que ce soit les algorithmes de machine learning tel que SVM, NBM
(+10%)ou bien le LSTM (+3%) qui est un algorithme de deep learning. Ceci n’est pas
une surprise en vue des performances que les CNN ont donné dans le domaine
d’analyse de sentiments.

➢ Le Word Embedding surpasse TF-IDF : Le TF-IDF a très souvent été sollicité pour
ses résultats dans la catégorisation de texte car il prend en compte la fréquence des
termes à travers les documents grâce à IDF. Mais avec l’explosion du Deep Learning,
le word embedding a remarquablement apporté un plus et dépasse même la technique
TF-IDF comme le montre les résultats que nous avons obtenus.
➢ Les performances de la représentation U surpasse celles de B et BO : Dans les
résultats des tests, nous remarquons que l’utilisation des unigrammes surpasse
l’utilisation des bigrammes, ce qui est contraire à nous attentes sachant que les
bigrammes prennent en considération la négation et les mots d’opinions. Pour connaitre
la cause de ce résultat, nous avons analysé une partie des documents, et nous avons
détecté les anomalies détectées par (Benkrid et al 2015) qui sont

❖ Le patron utilisé pour extraire les bigrammes (négation, mot opinion) peut induire
le classificateur en erreur. En effet, il faut prendre en compte la ponctuation et les
conjonctions de coordination avant d'extraire un bigramme. Dans l'exemple suivant :

❖ "Je voudrais savoir si le storm avec la carte Dahabia est dispo ou non et merci ! ",
"et" est considéré comme un mot vide il sera donc perdu après la phase de
prétraitement, par conséquent (non merci) est pris comme bi-gramme au lieu de
prendre chaque mot comme unigramme.

❖ Conflit entre les mots du dialecte algérien et les mots de la langue française et
anglaise : par exemple le mot "ma" est souvent utilisé pour la négation dans le
dialecte algérien, alors qu’il est considéré comme un mot vide en français, exemple
"3end AT haja ma mli7a" deviendra après prétraitement, "3end AT haja mli7a", et
donc le document sera affecté à la classe adoration ou satisfaction, alors qu’il
exprime le sentiment contraire.

133
Chapitre IV : Réalisation, Déploiement et Évaluation

❖ Les bigrammes (négation, opinion) sont souvent utilisés pour inverser le sentiment
d'un mot, mais dans certains cas-là négation est utilisé afin d'exprimer une
interrogation, exemple "SVP y'a-t-il pas une super offre prévue pour l'été ? :p " ce
qui induit en erreur le classificateur.

➢ L’écart d’exactitude non négligeable atteint par les classificateurs de sentiments


des deux approches : En effet l’écart obtenu par les deux approches (un seul niveau,
deux niveaux) qui est supérieur à 3.5% est dû au bruit créé entre les différentes classes,
et donc en réduisant le nombre de classe en regroupant certaines classes similaires, le
taux d’erreur diminue aussi. Ainsi les documents qui ont été considéré comme faux
durant la classification à un seul niveau entre les quatre classes du fait qu’ils étaient
objectifs, ne seront pas considéré dans le deuxième étage de la deuxième approche, ce
qui implique la diminution du taux d’erreur. Pareil pour la suppression de la classe
neutre, les erreurs relatives à cette classe ainsi que les bruits qu’elle engendre seront
éliminé, par conséquent on aura une meilleure exactitude de classification.

Table 14 Évaluation sans Traitement des lettres répétées et des Majuscules.

Pondération Exactitude Rappel F-Mesure

U 84.79% 84.73% 84.75%


LSTM

B 81.52% 83.17% 83.33%

BO 81.78% 85.11% 83.41%

U 89.34% 91.36% 91.30%


CNN

B 88.04% 90.88% 90.37%

BO 88.1% 90.16% 90.08%


CNN+LSTM

U 88.60% 86.05% 87.30%

B 80.65% 81.39% 81.01%


BO 80.79% 81.56% 81.19%

➢ L’apport du traitement des lettres répétées et des Majuscules : En effet, comme le


résultat des tests le démontre, le traitement des lettres répétées à augmenter le taux
d’exactitude de notre système de plus de 1%, et ceci revient au fait que dans les réseaux
sociaux, les majuscules et les lettres répétées sont très utilisés pour exprimer un
sentiment fort pour exemple, "L’offre MAXY est TOOOOPPPPPP !!!".

134
Chapitre IV : Réalisation, Déploiement et Évaluation

IV.1.6. Synthèse des résultats


Après avoir testés toutes les combinaisons, nous en sommes arrivés à la conclusion que le CNN
surpasse les autres algorithmes. De même pour la représentation des caractéristiques, nous
constatons que la représentation unigramme donne de meilleurs résultats que bigramme dans
les trois modèles et pareil pour la technique de représentation du word embedding. Le tableau
suivant synthétise les meilleurs résultats des trois classificateurs :

Table 15 Synthèse des meilleurs résultats

F-
Classes Algo. Carac. Représentation Exactitude Rappel
Mesure

Colère
Tristesse
CNN &
Appréciation U WE 91.09% 94.58% 87.62%
LSTM
Adoration
Neutre

Subjective/
CNN U WE 94.78% 95.12% 89.23%
Objective

Colère
Tristesse
CNN U WE 91.83% 95.26% 94.84%
Appréciation
Adoration

Nous avons proposé deux approches comme approches d’évaluation. La première qui consiste
à utiliser un seul niveau de classification pour cinq classes (Colère Tristesse Appréciation
Adoration et Neutre). La deuxième est une approche à deux niveaux, le premier est un
classificateur binaire (Subjective/Objective) alors que le deuxième niveau est un classificateur
à quatre classes (Colère Tristesse Appréciation et Adoration). Afin d’évaluer ces deux
approches, nous avons fixés unigramme comme caractéristiques et une représentation Word
embedding. Après les tests, nous avons remarqués dans l’approche à deux niveaux que l’erreur
et le bruit du première étage ont un grand impact sur le deuxième étage, et que le classificateur
à un seul niveau est nettement supérieur comme le montre le tableau suivant :

135
Chapitre IV : Réalisation, Déploiement et Évaluation

Table 16 Approche un niveau Vs Approche deux niveaux

Exactitude Rappel F-Mesure

Approche à un niveau 91.09% 94.58% 87.62%

Approche à deux 87.03% 90.61% 84.62%


niveaux

Table 17 Microsoft Azure ML Vs Notre Système

Exactitude Rappel F-Mesure

Notre système 91.09% 94.58% 87.62%

Microsoft Azure for SA 77.70% 80.20% 78.20%

Nous avons comparé notre meilleure combinaison à savoir la combinaison CNN-WE à l’une
des solutions commerciales très connue que l'on a présenté dans la partie I à savoir Microsoft
Azure for sentiment analysis (MASA). Le tableau 29 montre que notre système surpasse
MASA de 14%.

V. Conclusion
Ce chapitre nous a permis de faire le point sur la réalisation de notre solution notamment à
travers l'architecture logicielle et les différentes technologies employées pour implémenter les
modules de notre solution. De plus, nous avons présenté l'architecture de déploiement adoptée
au sein de l'organisme d'accueil Ooredoo. Nous avons conclu le chapitre par le volet
d'évaluation du système d'analyse de sentiments en mettant l'accent sur les différentes
combinaisons et approches testées avant d'opter pour une solution finale que nous avons
comparé avec MASA qui est une solution commerciale développée par Microsoft.

En effet, nous avons testé différentes combinaisons de caractéristiques, de pondérations et


d'algorithmes d'apprentissage automatique que nous avons évaluées grâce aux mesures
d’exactitude, rappel et F-Mesure. Nous avons aussi proposé deux approches différentes dont
la première utilise un seul classifier pour catégoriser nos documents, alors que la deuxième est
une approche à deux niveaux qui commence d’abord par détecter les documents subjectifs.

136
Conclusion et perspectives
Dans ce rapport, nous avons présenté une solution de mesure de la satisfaction clients. La
solution consistait en un système d'analyse de sentiments sur les postes et commentaires des
utilisateurs sur Facebook. Pour ce faire, nous avons distingué ces principales tâches :

➢ La mise en place d'un système de collecte et de sauvegarde des données,

➢ La mise en place d'un système d'analyse de sentiments,

➢ La mise en place d'une interface de visualisation des métriques.

La réussite de tout le projet dépend de plusieurs paramètres dont la méthodologie. De ce fait,


nous avons entamé notre projet par une phase d'étude bibliographique qui nous a permis de
nous documenter sur le domaine de l'analyse de sentiments ainsi que les approches et
techniques adoptées. Quant à la deuxième partie, nous avons présenté notre conception dans
laquelle nous proposons une solution de collecte de données à partir du réseau social Facebook,
une technique de prétraitement de dialecte, une technique d’annotation de texte et un système
de catégorisation de sentiments. Pour finir, nous présentons les résultats synthétiques des
sentiments grâce à des mesures établies en se basant sur la méthodologie DBS. Parallèlement,
nous avons cherché les technologies les plus adaptées pour la réaliser.

Nous avons pu constater à travers les différentes parties de notre travail l'intérêt que portent les
industriels et différentes entreprises aux médias sociaux en raison d'une activité massive des
internautes dans la création de contenu. Un contenu varié mais très souvent porteur
d'informations très pertinentes à l'image des opinions partagées à travers du texte.

Nous avons atteint les objectifs dressés en tout début du projet en termes de réalisation et de
performances.

Au cours de ce PFE, plusieurs limites et orientations de recherche ont été identifiées et jugées
comme méritant une étude plus approfondie. Par exemple, nous suggérons d'analyser le
sentiment des clients au fil du temps (quand ?). Dans cette section, nous présentons quelques
pistes de recherche prometteuses pour l'avenir à long terme.

La fouille d'utilisateur en combinant des sources multiples

Les études sur les utilisateurs des médias sociaux ont attiré la recherche pour différentes
applications (Omidvar et al., 2014, Tagarelli et Interdonato, 2014, Li et al., 2015). La plupart
de ces études ne transfèrent pas les connaissances extraites sur chaque utilisateur entre
différents médias sociaux (Facebook, Twitter, Instagram, WhatsApp, Tumblr, Google+,
Snapchat, StackExchange, Reddit, etc. Il sera alors intéressant de combiner plusieurs sources
afin d'avoir une vision globale d'un même utilisateur sur différents médias sociaux.

137
L’analyse de sentiments multimodale dans les réseaux sociaux

La combinaison de la fouille de données et de l'analyse des liens sociaux permet une meilleure
compréhension des données sociales. Cependant, les médias sociaux d'aujourd'hui sont
beaucoup plus diversifiés. Il serait intéressant d'extraire non seulement des structures de réseau
et des messages textuels, mais aussi des images, des vidéos, des lieux, etc.

Améliorer l'analyse des sentiments

La recherche dans le domaine d’analyse de sentiments reste confrontée à de nombreux défis et


attire d'énormes applications (Mohammad, 2016). Premièrement, on s'intéresse de plus en plus
à la détection du langage gestuel, en particulier l'ironie et le sarcasme (Rosenthal et al., 2015).
En effet, le sarcasme et l'ironie sont très difficiles à identifier. Les résultats des modèles de
classification des sentiments soumis à SemEval24 2014 ont chuté d'environ 25 à 70 % lorsqu'ils
ont été appliqués à un ensemble de tests séparés impliquant des tweets sarcastiques (Rosenthal
et al., 2014).

Considérations éthiques dans l’analyse de sentiment dans les réseaux sociaux

La fouille des médias sociaux soulève des questions éthiques sur la façon dont les données
personnelles privées et publiques sont traitées. Certains médias sociaux comme Facebook
permettent à leurs utilisateurs de spécifier les personnes qui peuvent accéder à leurs
informations personnelles et au contenu publié (amis, amis d'amis, publique, etc.).

24 http://alt.qcri.org/semeval2014/

138
Références
• Abbasi, A., Chen, H., and Salem, A. (2008). Sentiment analysis in multiple languages:
Feature selection for opinion classification in web forums. ACM Transactions on
Information Systems (TOIS), 26(3):12.

• Boullier, D., & Lohard, A. (2012). Opinion mining et Sentiment analysis: Méthodes et
outils. OpenEdition Press.

• Aggarwal, C. C. and Zhai, C. (2012). A survey of text classification algorithms. In


Mining text data, pages 163 222. Springer.
• Bermingham, A. and Smeaton, A. F. (2011). On using twitter to monitor political
sentiment and predict election results.

• Bollen, J., Mao, H., and Zeng, X. (2011). Twitter mood predicts the stock market. Journal
of computational science, 2(1):1 8.

• Cambria, E. (2013). An introduction to concept-level sentiment analysis. In In Mexican


International Conference on Artificial Intelligence, pages 478-483. Springer.

• Dang, Y., Zhang, Y., and Chen, H. (2010). A lexicon-enhanced method for sentiment
classification: An experiment on online product reviews. IEEE Intelligent Systems,
25(4):46 53.

• Ding, X., Liu, B., and Yu, P. S. (2008). A holistic lexicon-based approach to opinion
mining. In Proceedings of the 2008 international conference on web search and data
mining, pages 231 240. ACM.

• Ekman, P. (1992). Are there basic emotions ?

• Fahrni, A. and Klenner, M. (2008). Old wine or warm beer: Target-specific sentiment
analysis of adjectives. In Proc. of the Symposium on Affective Language in Human
and Machine, AISB, pages 60 63.

• Groh, G. and Hau a, J. (2011). Characterizing social relations via nlp-based sentiment
analysis. In ICWSM.

• Harrat, S., Meftouh, K., Abbas, M., Jamoussi, S., Saad, M., and Smaili, K. (2015). Cross-
dialectal arabic processing. In International Conference on Intelligent Text Processing
and Computational Linguistics, pages 620 632. Springer.

• Hatzivassiloglou, V. and McKeown, K. R. (1997). Predicting the semantic orientation of


adjectives. In Proceedings of the eighth conference on European chapter of the
Association for Computational Linguistics, pages 174 181. Association for
Computational Linguistics.

139
• Hu, M. and Liu, B. (2004). Mining and summarizing customer reviews. In Proceedings of
the tenth ACM SIGKDD international conference on Knowledge discovery and data
mining, pages 168 177. ACM.

• Jiang, L., Yu, M., Zhou, M., Liu, X., and Zhao, T. (2011). Target-dependent twitter
sentiment classi - cation. In Proceedings of the 49th Annual Meeting of the Association
for Computational Linguistics: Human Language Technologies-Volume 1, pages 151
160. Association for Computational Linguistics.

• Jindal, N. and Liu, B. (2006). Mining comparative sentences and relations. In AAAI,
volume 22, pages 1331 1336.

• Joshi, M., Das, D., Gimpel, K., and Smith, N. A. (2010). Movie reviews and revenues:
An experiment in text regression. In Human Language Technologies: The 2010 Annual
Conference of the North American Chapter of the Association for Computational
Linguistics, pages 293 296. Association for Computational Linguistics.

• Kamps, J., Marx, M., Mokken, R. J., De Rijke, M., et al. (2004). Using wordnet to
measure semantic orientations of adjectives. In LREC, volume 4, pages 1115 1118.
Citeseer.

• Kanayama, H. and Nasukawa, T. (2006). Fully automatic lexicon expansion for domain-
oriented sentiment analysis. In Proceedings of the 2006 conference on empirical methods
in natural language processing, pages 355 363. Association for Computational
Linguistics.

• Kang, H., Yoo, S. J., and Han, D. (2012). Senti-lexicon and improved naïve bayes
algorithms for sentiment analysis of restaurant reviews. Expert Systems with
Applications, 39(5):6000 6010.

• Kennedy, A. and Inkpen, D. (2006). Sentiment classification of movie reviews using


contextual valence shifters. Computational intelligence, 22(2):110 125.

• Khan, A. Z., Atique, M., and Thakare, V. (2015). Combining lexicon-based and learning-
based me- thods for twitter sentiment analysis. International Journal of Electronics,
Communication and Soft Computing Science & Engineering (IJECSCSE), page 89.

• Kim, S.-M. and Hovy, E. (2004). Determining the sentiment of opinions. In Proceedings
of the 20th international conference on Computational Linguistics, page 1367.
Association for Computational Lin- guistics.

• Li, W. and Xu, H. (2014). Text-based emotion classification using emotion cause
extraction. Expert Systems with Applications, 41(4):1742 1749.

• Liu, B. (2007). Web data mining: exploring hyperlinks, contents, and usage data.
Springer Science & Business Media.

140
• Liu, B. (2012). Sentiment analysis and opinion mining. Synthesis lectures on human
language technologies, 5(1):1 167.

• Lövheim, H. (2012). A new three-dimensional model for emotions and monoamine


neurotransmitters. Medical hypotheses, 78(2):341 348.

• Lu, Y., Kong, X., Quan, X., Liu, W., and Xu, Y. (2010). Exploring the sentiment strength
of user reviews. In International Conference on Web-Age Information Management,
pages 471 482. Springer.

• Medhat, W., Hassan, A., and Korashy, H. (2014). Sentiment analysis algorithms and
applications: A survey. Ain Shams Engineering Journal, 5(4):1093 1113.

• Myers, D. G. (2004). Theories of emotion. Psychology: Seventh Edition, New York, NY:
Worth Publishers, 500.

• Narayanan, R., Liu, B., and Choudhary, A. (2009). Sentiment analysis of conditional
sentences. In Proceedings of the 2009 Conference on Empirical Methods in Natural
Language Processing: Volume 1-Volume 1, pages 180 189. Association for
Computational Linguistics.

• Pak, A. and Paroubek, P. (2010). Twitter as a corpus for sentiment analysis and opinion
mining. In LREc, volume 10.

• Pang, B. and Lee, L. (2004). A sentimental education: Sentiment analysis using


subjectivity sum- marization based on minimum cuts. In Proceedings of the 42nd annual
meeting on Association for Computational Linguistics, page 271. Association for
Computational Linguistics.

• Pang, B., Lee, L., et al. (2008). Opinion mining and sentiment analysis. Foundations and
Trends® in Information Retrieval, 2(1 2):1 135.

• Pang, B., Lee, L., and Vaithyanathan, S. (2002). Thumbs up? : Sentiment classi cation
using machine-learning techniques. In Proceedings of the ACL-02 conference on
Empirical methods in natural language processing-Volume 10, pages 79 86. Association
for Computational Linguistics.
• Plutchik, R. (1984). Emotions: A general psychoevolutionary theory. Approaches to
emotion, 1984 :197 219.

• Rilo , E., Patwardhan, S., and Wiebe, J. (2006). Feature subsumption for opinion analysis.
In Proceedings of the 2006 conference on empirical methods in natural language
processing, pages 440 448. Association for Computational Linguistics.

• Rosenberg, M. and Turner, R. H. (1990). Social psychology : Sociological perspectives.


Transaction Publishers.

141
• Russell, J. A. (1991). Culture and the categorization of emotions. Psychological bulletin,
110(3) :426. Sablonnière, B. (2015). La chimie des sentiments. Odile Jacob.

• Saleh, M. R., Martín-Valdivia, M. T., Montejo-Ráez, A., and Ureña-López, L. (2011).


Experiments with svm to classify opinions in di erent domains. Expert Systems with
Applications, 38(12) :14799 14804.

• Taboada, M., Brooke, J., To loski, M., Voll, K., and Stede, M. (2011). Lexicon-based
methods for sentiment analysis. Computational linguistics, 37(2) :267 307.

• Tumasjan, A., Sprenger, T. O., Sandner, P. G., and Welpe, I. M. (2010). Predicting
elections with twitter : What 140 characters reveal about political sentiment. ICWSM,
10(1) :178 185.
• Turney, P. D. (2002). Thumbs up or thumbs down ? : semantic orientation applied to
unsupervised classi cation of reviews. In Proceedings of the 40th annual meeting on
association for computational linguistics, pages 417 424. Association for Computational
Linguistics.

• Wan, X. (2009). Co-training for cross-lingual sentiment classi cation. In Proceedings of


the Joint Confe- rence of the 47th Annual Meeting of the ACL and the 4th International
Joint Conference on Natural Language Processing of the AFNLP : Volume 1-volume 1,
pages 235 243. Association for Computatio- nal Linguistics.

• Wang, G., Sun, J., Ma, J., Xu, K., and Gu, J. (2014). Sentiment classi cation : The
contribution of ensemble learning. Decision support systems, 57 :77 93.

• Wiebe, J. M., Bruce, R. F., and O'Hara, T. P. (1999). Development and use of a gold-
standard data set for subjectivity classi cations. In Proceedings of the 37th annual meeting
of the Association for Com- putational Linguistics on Computational Linguistics, pages
246 253. Association for Computational Linguistics.

• Xia, R., Zong, C., and Li, S. (2011). Ensemble of feature sets and classi cation algorithms
for sentiment classi cation. Information Sciences, 181(6) :1138 1152.

• Zhang, L., Ghosh, R., Dekhil, M., Hsu, M., and Liu, B. (2011a). Combining lexicon-
based and learning- based methods for twitter sentiment analysis.

• Zhang, Z., Ye, Q., Zhang, Z., and Li, Y. (2011b). Sentiment classi cation of internet
restaurant reviews written in cantonese. Expert Systems with Applications, 38(6) :7674
7682.

• Yoav Goldberg and Omer Levy. word2vec explained: deriving Mikolov et al.’s negative-
sampling wordembedding method. arXiv preprint arXiv:1402.3722, 2014.

142
• Aggarwal, Charu C., and ChengXiang Zhai, eds. Mining text data. Springer Science &
Business Media, 2012.

• Forman, George. "An extensive empirical study of feature selection metrics for text
classification." Journal of machine learning research 3.Mar (2003): 1289-1305.

• Denis, Pascal, and Benoît Sagot. "Exploitation d'une ressource lexicale pour la
construction d'un étiqueteur morphosyntaxique état-de-l'art du français." Traitement
Automatique des Langues Naturelles: TALN 2010. 2010.

• Quan, Changqin, and Fuji Ren. "Construction of a blog emotion corpus for Chinese
emotional expression analysis." Proceedings of the 2009 Conference on Empirical
Methods in Natural Language Processing: Volume 3-Volume 3. Association for
Computational Linguistics, 2009.

• Agarwal, Apoorv, et al. "Sentiment analysis of twitter data." Proceedings of the workshop
on languages in social media. Association for Computational Linguistics, 2011.

• Omidvar, A., Garakani, M., and Safarpour, H. R. (2014). Context based user ranking in
forums for expert finding using wordnet dictionary and social network analysis
information Technology and Management, 15(1):51–63.

• Tagarelli, A. and Interdonato, R. (2014). Lurking in social networks: topology-


basedanalysis and ranking methods. Social Network Analysis and Mining, 4(1):1–27.

• Li, B., Li, R.-H., King, I., Lyu, M. R., and Yu, J. X. (2015). A topic-biased user
reputation model in rating systems. Knowledge and Information Systems, 44(3):581–607.

• Korula, N. and Lattanzi, S. (2014). An efficient reconciliation algorithm for social


networks. Proceedings of the VLDB Endowment, 7(5):377–388.

• Goga, O., Loiseau, P., Sommer, R., Teixeira, R., and Gummadi, K. P. (2015). On the
reliability of profile matching across large online social networks. In Proceedings of the
21th ACM SIGKDD International Conference on Knowledge Discovery and Data
Mining, pages 1799–1808. ACM.
• Yue-Hei Ng, J., Hausknecht, M., Vijayanarasimhan, S., Vinyals, O., Monga, R., and
Toderici, G. (2015). Beyond short snippets: Deep networks for video classification. In
Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages
4694–4702.

• Park, W. J. and Yu, K. Y. (2015). Spatial clustering analysis based on text mining of
location-based social media data. Journal of Korean Society for Geospatial Information
System, 23(2):89–96.

143
• Mohammad, S. M. (2016). Sentiment analysis: Detecting valence, emotions, and other
affectual states from text. In Meiselman, H., editor, Emotion Measurement. Elsevier.

• Rosenthal, S., Nakov, P., Kiritchenko, S., Mohammad, S., Ritter, A., and Stoyanov, V.
(2015). Semeval-2015 task 10: Sentiment analysis in twitter. In Proceedings of the 9th
International Workshop on Semantic Evaluation (SemEval 2015), pages 451–463.

• Mohammad, S. M., Salameh, M., and Kiritchenko, S. (2015a). How translation alters
sentiment. Journal of Artificial Intelligence Research, 1:1–20.

• Grijalva, E., Newman, D. A., Tay, L., Donnellan, M. B., Harms, P. D., Robins, R. W.,
and Yan, T. (2015). Gender differences in narcissism: A meta-analytic review.
Psychological bulletin, 141(2):261–310.
• Eichstaedt, J. C., Schwartz, H. A., Kern, M. L., Park, G., Labarthe, D. R., Merchant, R.
M., Jha, S., Agrawal, M., Dziurzynski, L. A., Sap, M., et al. (2015). Psychological
language on twitter predicts county-level heart disease mortality. Psychological science,
26(2):159–169.

• Hutton, L. and Henderson, T. (2015). “i didn’t sign up for this!": Informed consent in
social network research. In Proceedings of the 9th International AAAI Conference on
Web and Social Media (ICWSM), pages 178–187.

• Liu, Q., Li, J., Wang, Y., Xing, G., and Ren, Y. (2014). Account matching across
heterogeneous networks. In Proceedings of the 5th International Conference on Game
Theory for Networks, pages 1–5. IEEE.

• Wilson, Barbara A., Janet Cockburn, and Peter W. Halligan. Behavioural inattention test.
École des sciences de la réadaptation, Sciences de la santé, Université d'Ottawa, 2004.

• Nigam, Kamal, and Matthew Hurst. "Towards a robust metric of polarity." Computing
Attitude and Affect in Text: Theory and Applications. Springer, Dordrecht, 2006. 265-
279.

• [AGA, 2005] AGA, B. (2005). Exploration des bases de données industrielles à l’aide du
Data Mining – Perspectives, 9ème colloque national AIP PRIMECA.
• dos Santos C, Gatti M. Deep convolutional neural networks for sentiment analysis of
short texts. InProceedings of COLING 2014, the 25th International Conference on
Computational Linguistics: Technical Papers 2014 (pp. 69-78).

• Kim Y. Convolutional neural networks for sentence classification. arXiv preprint


arXiv:1408.5882. 2014 Aug 25.

• Boullier, D., & Lohard, A. 2012. Opinion mining et Sentiment analysis : Méthodes et
outils. OpenEdition Press. doi :10.4000/books.oep.198.

144
Annexe

145
Annexe A

I. Collecte de données à partir de Facebook


I.1.Techniques d'extraction des données à partir des réseaux
sociaux
L'extraction des données à partir des réseaux sociaux diffère d'une plateforme à une autre selon
la disponibilité́ des données et les fonctionnalités qu'elles proposent. Nous distinguons deux
principales techniques d'extraction :

➢ Les services web et APIs : dans ce cas, la plateforme fournit des interfaces web pour
accéder aux données. L'accès reste limité et règlementé́ par un système de gouvernance
qui assure la protection de la vie privée des utilisateurs. Parmi ces APIs nous citons :
Graph API et Insights API de Facebook, Twitter API, Linkdin API et Google+ API.
➢ Web scraping : est une technique de collecte du contenu de sites Web, via un script ou
un programme dans le but de le transformer pour permettre son utilisation dans un autre
contexte. Un programme de Web Scraping va interagir avec les sites Web de la même
manière qu'un navigateur Web mais au lieu d'afficher les données desservies par le site
Web à l'écran, il enregistre les données. Cette technique est principalement utilisée avec
les blogs et les forums, où les plateformes ne fournissent pas d'APIs pour accéder aux
données. L'utilisation du Web Scraping n'est possible que si la source ne l'interdit pas
en utilisant un système de sécurité́ qui bloque ce genre de programmes.

I.2. Facebook APIs


Facebook fournit un ensemble de services web pour accéder aux données stockées sur leur base
de données, les principales APIs sont :

➢ API Pages : utilisée pour l'administration des pages sur Facebook et permet aux
gestionnaires de se renseigner sur l'interaction et l'activité́ des utilisateurs sur
leur page.
➢ API Marketing et API Atlas : pour la gestion des compagnes publicitaires.
➢ API Public Feed : elle offre un fil de mises à jour de statuts d'utilisateurs et de
pages à mesure qu'ils sont publiés sur Facebook.
➢ API Insight : elle fournit des mesures concernant une page, par exemple la
répartition des fans par pays, le nombre de personnes qui ont partagé́ des
actualités .. etc.
➢ API Keyword : elle offre une couche analytique sur l'ensemble des publications
Facebook sous forme de statistiques anonymes sur les personnes mentionnant
un terme en particulier.
➢ API Graph : est l'interface principale par laquelle les applications peuvent lire
et écrire sur le graphe social de Facebook. Plusieurs versions ont été diffusées,
La dernière version en date est la version 2.6(12/04/2016).

146
I.3. Autorisation et restriction d'accès
Facebook règlementé l'accès à leur base de données publiques à travers l'API Graph en utilisant
un système d'autorisation basé sur les tickets (access token), il fournit trois modes d'accès aux
applications. Nous nous intéresserons aux opérations de lecture uniquement dans cette section
qui peuvent se faire à travers les modes suivants :

➢ En tant qu'utilisateur : l'application est identifiée en tant qu'utilisateur Face-


book. Ce mode permet d'accéder à un sous-ensemble d'éléments qui font
partie du profil public d'une personne (Identifiant, nom, prénom, sexe,
tranche d'âge, liste d'amis, posts etc) ;
➢ En tant que Page : l'application est identifiée en tant que page Facebook. Ce
mode permet d'accéder au mur de la page, les évènements, les notifications
et aux informations publiques des personnes, des pages et des groupes,
➢ En tant qu'application : ce mode est associé à un compte développeur, il per- met
l'accès aux informations publiques des personnes, des pages et des groupes.
Chaque mode garantit un nombre d'autorisations, où chaque autorisation possède
ses propres exigences et ses propres scenarios d'utilisation. Certaines autorisations
ne nécessitent aucune certification, contrairement à d'autres qui doivent être
approuvées par les équipes de Facebook.

147
Annexe B

I. Cas d’utilisation de la partie visualisation


I.1. Vue Utilisateur
L’utilisateur du service gestion de la performance doit préparer le terrain pour les décideurs. Il
se charge de créer les indicateurs, les rapports, les filtres, les graphiques que les décideurs
pourront consulter par la suite.

➢ Cas d’utilisation : Ajouter un indicateur


CU : Ajouter un indicateur
ID : 01
Description brève : Ajouter un nouvel indicateur
Acteurs primaires : Administrateur, Utilisateur
Acteurs secondaires : Serveur d’application
Pré condition : Utilisateur est déjà connecté
Enchainement principal :
Ce cas commence lorsqu’un utilisateur souhaite ajouter un nouvel indicateur.
1- L’utilisateur importe les données.
2- Puis, il choisit les champs sur lesquels il souhaite effectuer son calcul.
3- Il attribue un nom à l’indicateur avant d’insérer la formule de calcul
4- Il choisit le type de graphique qu’il souhaite afficher.
5- Et enfin, il valide sa création.
Post conditions : Le nouvel indicateur est ajouté, et fait partie de la liste des indicateurs
composants le tableau de bord.
Enchainement alternatif : E1 : L’indicateur n’est pas ajouté.

➢ Cas d’utilisation : Créer un rapport


CU : Créer un rapport
ID : 02
Description brève : Créer un nouveau rapport
Acteurs primaires : Administrateur, Utilisateur
Acteurs secondaires : Serveur d’application
Pré condition : Utilisateur est déjà connecté
Enchainement principal :
Ce cas commence lorsqu’un utilisateur souhaite créer un nouveau rapport.
1- L’utilisateur accède aux données.
2- Il sélectionne les dimensions qu’il souhaite afficher.
3- Puis, il choisit le type du graphique (tableaux, graphe…).
4- En enfin, il exporte le rapport.
Le rapport est exporté.
Enchainement alternatif : /

148
I.2. Vue Administrateur
L’administrateur gère les comptes utilisateurs, les droits d’accès au tableau de bord et il alloue
les ressources aux groupes d’utilisateurs si nécessaire. La figure ci-dessous résume les cas
d’utilisation de l’administrateur.

➢ Cas d’utilisation : Gestion des utilisateurs


CU : Gestion des utilisateurs
ID : 03
Description brève : Ajouter un nouvel utilisateur
Acteurs primaires : Administrateur
Acteurs secondaires : Serveur d’application
Pré condition : L’administrateur doit être connecté au serveur et il doit s’authentifier
Enchainement principal :
Ce cas commence lorsqu’un utilisateur souhaite ajouter un nouvel utilisateur.
1- Il choisit l’option : gestion des utilisateurs.
2- Il clique sur ajouter un utilisateur.
3- Il saisit les informations de ce nouvel utilisateur.
4- Il attribue le nouvel utilisateur à un groupe.
5- Il valide ses choix
Post conditions : Un nouvel utilisateur est créé

➢ Cas d’utilisation : Gestion des ressources


CU : Gestion des ressources
ID : 04
Description brève : Attribuer des ressources à un groupe d’utilisateurs
Acteurs primaires : Administrateur
Acteurs secondaires : Serveur d’application
Pré condition : L’administrateur doit être connecté au serveur et il doit s’authentifier
Enchainement principal :
Ce cas commence lorsque l’administrateur souhaite attribuer des ressources à un groupe
d’utilisateurs.
1- L’administrateur choisit un groupe d’utilisateurs.
2- Il sélectionne les ressources qu’il souhaite attribuer.
3- Puis, il attribue les ressources.
4- En enfin, il valide son choix.
Post conditions : Les ressources ont été attribuées à un groupe d’utilisateurs.

149
Annexe C
I. SEMMA
SEMMA divise la fouille de données en cinq étapes représentées pas l’acronyme SEMMA.
« Sample, Explore, Modify, Model, Asses ». Cette méthodologie facilite pour les analystes de
données la manière d’appliquer des techniques d’exploration statistique et de visualisation des
données, de sélection et de transformation des variables prédictives les plus importantes, de
modélisation des variables pour prédire les résultats et de confirmation de la précision du model
(Cristina OPREAN, 2010).

III.1. Sample (Echantillon des données) :


Extrait des échantillons d’un vaste ensemble de données, en nombre suffisamment grand pour
contenir l’information importante, mais assez petit pour être manipulé rapidement.

III.2. Explore (Exploitation des données) :


Cette étape consiste dans l’exploration des données en recherchant les tendances et les
anomalies imprévues afin de mieux comprendre les données.

III.3. Modify (Modifier) :


Modifie les données en créant, en sélectionnant et en transformant les variables afin de s’axer
sur le processus de sélection de modèles.

III.4. Model (Modélisation) :


Modèlise les données en permettant au logiciel de rechercher automatiquement une
combinaison des données qui prédit de façon fiable le résultat souhaité. Il y a plusieurs
techniques de modélisation : les réseaux de neurones, arbres de décision, modèles statistiques
- l’analyse en composantes principales, l’analyse de séries temporelles, etc.

III.5. Assess (Evaluer) :


Evalue l’utilité et la fiabilité des résultats du processus de Data Mining et estime comment il
va s’exécuter.

En évaluant les résultats obtenus à chaque étape du processus de SEMMA, nous pouvons
déterminer la façon de modéliser les nouveaux problèmes déterminés par les résultats
précédents, et donc de refaire la phase d’exploration supplémentaire pour le raffinement des
données.

150
II. Comparaison entre CRISP-DM et SEMMA :
Premièrement, SEMMA a été développé avec un progiciel de fouille de données spécifique à
(Enterprise Miner), plutôt que d'être conçu pour s'appliquer à une gamme plus large d'outils
d'exploration de données et à l'environnement commercial général.

Comme elle est axé sur le logiciel SAS Enterprise Miner et plus particulièrement sur le
développement de modèles, SEMMA met moins l'accent sur la phase de planification initiale
couvertes dans CRISP-DM (Business Understanding and Data Understanding phases) et omet
entièrement la phase de déploiement.

Cela dit, il y a aussi des similitudes. Les étapes Sample et Explore de SEMMA correspondent
à peu près à la phase de compréhension des données de CRISP-DM ; Modify se traduit par la
phase de préparation des données ; Model est évidemment la phase de modélisation, et Assess
est parallèle à la phase d'évaluation de CRISP-DM. De plus, les deux modèles sont conçus pour
être cycliques plutôt que linéaires. Le modèle SEMMA recommande de revenir à l'étape
d'exploration en réponse aux nouvelles informations qui seront révélées à des étapes ultérieures
et qui pourraient nécessiter des changements aux données. Le modèle CRISP-DM met
également l'accent sur l'exploration de données en tant qu’un processus non linéaire et adaptatif.

151
Annexe D

I. La méthode GIMSI
La méthode GIMSI est structurée en 10 étapes bien identifiées et regroupées en 4 phases
thématiques : 1) Identification, le contexte et les axes stratégiques, 2) Conception, Que faut-il
faire, 3) Réalisation, Comment le faire, 4) Suivi dans la durée.

1. Identification Etape 1 : Environnement de l'entreprise


Quel est le contexte? Analyse de l'environnement économique et de la stratégie de
l'entreprise afin de définir le périmètre et la portée du projet
Réalité de l'environnement concurrentiel,
forces et faiblesses de l'organisation, Etape 2 : Identification de l'entreprise
identification concrète des axes Analyse des structures de l'entreprise pour identifier les
stratégiques et des points d'intervention. processus, activités et acteurs concernés

2. Conception Etape 3 : Définition des objectifs


Que faut-il faire ? Sélection des objectifs tactiques de chaque équipe en fonction
de la stratégie générale
Une démarche centrée sur le décideur de
terrain en situation, point central du Etape 4 : Construction du tableau de bord
processus de décision et par conséquent Définition du tableau de bord de chaque équipe
du système de pilotage de la performance Etape 5 : Choix des indicateurs
Choix des indicateurs en fonction des objectifs choisis, du
contexte et des acteurs concernés

Etape 6 : Collecte des informations


Identification des informations nécessaires à la construction
des indicateurs

Etape 7 : Le système de tableau de bord


Construction du système de tableau de bord, contrôle de la
cohérence globale

3. Mise en oeuvre Etape 8 : Le choix des progiciels


Comment le faire ? Elaboration de la grille de sélection pour le choix des
progiciels adéquats

152
La technologie est au service des Etape 9 : Intégration et déploiement
utilisateurs de terrain Implantation des progiciels, déploiement à l'entreprise

4. Amélioration permanente Etape 10 : Audit


Le système correspond-il toujours aux Suivi permanent du système
attentes ?

II.La méthode BSC


Le Balanced Scorecard n'est pas un simple instrument de mesure. C'est, selon les auteurs
Robert Kaplan et David Norton, un système global de clarification et de formalisation de la
stratégie des organisations afin de la déployer et de la mettre en oeuvre plus efficacement. Le
tableau de bord prospectif définit un cadre de conception de la stratégie selon 4 perspectives
équilibrées, afin de pouvoir la décliner efficacement, la transformer en action.

Finance : avec en ligne de mire la performance financière - Comment satisfaire les


actionnaires ?

Client : pour la prise en compte de la satisfaction et des besoins de la clientèle. Quels apports
pour les clients ?

Processus internes : en recherche de l'efficience, source d'avantages concurrentiels. Comment


améliorer les processus clés en lien avec les clients et actionnaires ?

Effets d'apprentissage et développement : la performance de l'organisation et le management


des femmes et des hommes . Comment piloter l'organisation, le changement, pour plus de
performance ?

Les BSC et les tableaux de bord de pilotage de nouvelle génération tels ceux conçus avec la
méthode Gimsi n'adoptent pas la même philosophie de conception. Les deux méthodes
diffèrent fondamentalement. Gimsi s'inscrit dans une démarche coopérative et propose une
approche conceptuellement fondée sur les besoins précis du décideur en situation. Elle propose
une démarche bottom up en complément de l'approche Top Down plus traditionnel.

153
Annexe E

Choix des plateformes techniques


I. Pourquoi Hadoop ?
Au début de ce millénaire, plusieurs moteurs de recherche sont apparus, la nécessité d’un
espace de stockage est devenue un besoin urgent, les indexes de recherche sont devenus
également très volumineux pour faire une recherche rapide et précise sans consommer trop de
ressources. Doug Cutting et Mike Cafarella sont venus donc avec le projet Nutch qui est un
projet visant à procéder les données Web explorées (via des crawlers) à une grande échelle, ils
avaient besoin donc d’un modèle scalable et solide qui permet de stocker cette quantité de
données (qui était déjà relativement importante à l’époque) et la traiter en un temps raisonnable.

En 2003 et 2004, Google a publié deux papiers de recherches, l’un sur son système de fichiers
Google File System (Ghemawat et al. 2003) et l’autre sur un modèle de programmation
distribué qui s’appelle MapReduce (Dean & Ghemawat 2004) , Cutting and Cafarella ont
intégré ces deux concepts dans leur projet et éventuellement Hadoop est ainsi né. Yahoo! a
commencé à utiliser Hadoop comme système de base de son moteur de recherche et rapidement
se propagent vers plusieurs autres organisations. Actuellement, Hadoop est la solution
prédominante dans le marché, il existe plusieurs ressources qui expliquent Hadoop et son
architecture en détail. Dans ce qui suit, nous allons détailler les parties les plus importantes de
cet écosystème.

Il est important de noter que Hadoop ne désigne pas uniquement son noyau (HDFS &
MapReduce) mais plutôt tous les composants importants pour une architecture fonctionnelle.
Hadoop est donc composé de trois ressources principales :
➢ Hadoop Distributed File System (HDFS).

➢ La plateforme de programmation MapReduce.

➢ L'écosystème Hadoop, qui est l’ensemble de solutions et d’outils qui se


basent sur le noyau de Hadoop (HDFS & MapReduce) et viennent pour
élargir les fonctionnalités de base de Hadoop.

Hadoop est ainsi rapproché à un modèle composé de quatre couches principales :


Stockage de données (Data Storage) : c’est là où les données sont stockées d’une manière
distribuée. Il consiste en HDFS (le système de fichiers de Hadoop) et les bases de données
NoSQL (HBase, Cassandra, GraphX, MongoDB, etc).

154
Traitement de données (Data Processing) : c’est là où la planification et l’allocation des
ressources liées aux clusters, ce traitement peut se réaliser en Batch ou en Streaming.
Access aux données (Data Access) : c’est la couche responsable sur l’accès aux données
stockées sur la couche de stockage avec éventuellement une coordination avec la couche de
gestion, Hive est un bon exemple de solution dans cette couche.
Gestion et monitoring : c’est la couche responsable sur la gestion et le monitoring sur les autres
couches. La coordination entre les applications qui s’exécutent dans l’écosystème Hadoop sont
prise en compte.
Hadoop a de loin prouvé son utilité et il est devenu la solution classée numéro 1 dans le marché
et cela pour plusieurs raisons :
Pour sa robustesse : Hadoop est basé sur des modèles algorithmiques publiés par Google et
qui sont actuellement utilisés pour supporter l’infrastructure de traitement des plus grandes
firmes : Amazon, Google, Facebook, Twitter, Quora, etc (Anon s. d.). L’architecture de
Hadoop permet la tolérance aux pannes, et garantit l’accès aux données.

Pour son évolutivité (scalabilité) : Hadoop peut s’exécuter sur n’importe quel nombre de
machines reliées entre elles, le plus grand cluster qui a été supporté est de l’ordre de 45k nouds
(Yahoo!) (Anon s. d.).

Pour sa maturité : Hadoop est supporté par une large communauté de développeurs et de
conseillers, chaque projet doit passer par une phase d’incubation pour prouver son aptitude à
supporter les opérations de vaste impacte sous Hadoop.

Compte tenu de la prédominance actuelle de la solution Hadoop sur le marché des solutions
Big Data, nous avons opté pour cette technologie étant donné tous ces avantages expliqués
précédemment.

II. Pourquoi NiFi


Apache NiFi est un projet open source permettant l’automatisation des flux de données entre
différents systèmes. Basé sur le flow-based programming, il fournit une interface web pour
définir et contrôler en temps réel des flux de données de manière simple et sécurisé tout
en garantissant l’acheminement des données.

II.1. 80 CONNECTEURS À DES SOURCES DE DONNÉES


DIVERSES
Apache NiFi est un hub d’intégration Big Data permettant de collecter en temps réel des
données issues de plus de 80 sources : bases de données, messages, fichiers, flux Twitter.

155
II.2 SIMPLE, SÉCURISÉ, GARANTISSANT
L’ACHEMINEMENT DES DONNÉES
Son interface graphique permet de définir et contrôler en temps réel des flux de données de
manière simple et sécurisée. Basé sur le flow-based programming, Apache NiFi garantit le
bon acheminement des données.

II.3. CONÇU POUR PERFORMER


Apache NiFi est conçu pour être déployé sur des clusters assurant la scalabilité et la gestion
de gros volumes de données en temps réel.

III. Pourquoi Spark


Spark est un projet open source de la fondation Apache Softwarequi fournit des
fonctionnalités de calcul haute performance distribué. Spark se démarque par sa simplicité
d’utilisation, sa vaste communauté d’utilisateurs et de contributeurs actifs. L’exhaustivité des
bases de données et des systèmes de gestion de clusters (tel que Apache Hadoop) compatibles
Spark en fait l’outil parfait pour vos projets impliquant du temps réel ou du machine
learning sur de gros volumes donnés.

III.1. Spark fonctionne en mémoire


Ceux qui ont déjà travaillé sur Hadoop ont noté le temps de réponse relativement long des
traitements sous Pig ou Hive relativement à ce que nous connaissons avec une base de données.
C’est le paradoxe de ce type de plateforme conçue pour être avant tout performante sur de gros
volumes de données (certains savent aussi que les bases de données ne renvoient pas toujours
des résultats quand la volumétrie est extrême). Quoi qu’il en soit, cette première prise de
contact peut en décourager certains. Ce n’est pas le cas avec Spark.

La solution s’appuie sur les mêmes concepts qu’Hadoop (calcul distribué, Map Reduce) mais
ici les données sont montées en mémoire et les traitements sont de fait jusqu’à 100 fois plus
rapide que sur Hadoop.

III.2. Spark s’intègre à votre architecture Hadoop


Spark peut fonctionner de manière autonome et en mode distribué car l’outil dispose de son
propre mécanisme de clusterisation. Mais l’intérêt est de pouvoir bien entendu l’intégrer à un
cluster Hadoop. Or, cela se fait très simplement. Yarn continue de centraliser les besoins et

156
gérer le pilotage des ressources entre des traitements Spark et d’autres traitements de type Map
Reduce

III.3. Spark s’appuie sur un langage riche : Scala


On peut travailler sous Spark avec plusieurs langages comme Java ou Python. Mais Spark
devient vraiment intéressant avec son langage natif Scala.

III.4. Spark est paresseux


Lorsque Spark charge les données sur son cluster, les données deviennent de type RDD
(Resilient Distributed Datasets). Deux types de méthodes sont disponibles pour travailler avec
ces RDD. Les méthodes de type « transformation » modifient les données, opèrent des calculs
mais elles ne sont pas exécutées tout de suite. Elles sont stockées dans une pile d’instructions
dans l’attente de l’appel d’une méthode de type « action » qui va déclencher l’exécution de
l’ensemble des instructions en mémoire.

III.5. Spark intègre tous les outils du data scientist : Streaming,


SQL, Machine Learning et Graphes
Spark dispose de nombreuses librairies avancées. L’objectif recherché par les inventeurs de
Spark est d’offrir différentes vues et moyens d’accéder aux données sans devoir changer d’outil.
La dernière librairie disponible est SparkR qui va permettre aux habitués du langage R de
travailler nativement sur un cluster distribué

157
Annexe F
I. Gestion de projet
Avant de commencer le projet il fallait choisir la méthode de gestion de projet qui va nous
encadrer tout au long de la période de la réalisation. Deux approches principales sont utilisées
dans le domaine de l'informatique : l'approche classique ou traditionnelle et l'approche agile.
Une approche traditionnelle de type cycle en V ou en cascade attend généralement du client
une expression détaillée et validée au début du projet, laissant peu de place au changement. La
réalisation dure le temps estimé sans que le client n’ait une idée sur son produit. Souvent, des
spécifications mal détaillées, un planning mal géré ou encore des risques non étudiés au début
du projet risquent de le mettre en échec.

L'approche Agile propose au contraire de réduire considérablement l'absence du client pendant


la période de réalisation en donnant davantage de visibilité, en impliquant le client du début à
la fin du projet. Les méthodes agiles adoptent un processus itératif et incrémental et elles
doivent respecter quatre valeurs fondamentales représentées par le manifeste agile (Beck et al.,
2001) :

➢ Individus et interactions au lieu de processus et outils,

➢ Logiciel fonctionnel au lieu de documentation consistante,

➢ Collaboration du client au lieu de la négociation de contrats,

➢ Répondre au changement au lieu de suivre un plan.

I.1. Approche adoptée


En étudiant le contexte et l'environnement de notre projet, nous avons constaté qu'une approche
agile est le meilleur choix dans notre cas. Parmi les raisons qui nous ont motivés à faire ce
choix nous citons :

➢ Le changement de besoins : le client n'a pas fourni un cahier de charges avec des
spécifications détaillées sur le produit final, il a une vue globale du projet qui risque de
changer durant la période du projet.

➢ L'étude de risques : nous n'avons pas été en mesure d'identifier les risques relatifs au
projet car ce dernier représente notre première expérience avec un projet de cette taille.

158
➢ Espace de travail informatif : le projet est réalisé dans les locaux d'Ooredoo donc nous
sommes en interaction continue avec le client.

Les méthodes agiles sont plusieurs, la plus connue étant la méthode Scrum que nous avons
adopté. Scrum est une méthode très simple et très efficace adoptée par les géants du marché :
Microsoft, Google, Nokia..., elle est caractérisée par des sprints (itérations courtes) de (2) à (4)
semaines avec un feedback continu en collaboration avec les clients. Ce qui est notre cas pour
ce projet puisque le système est dédié au service gestion de la performance qui joue le rôle du
client. La figure xx illustre le schéma global de cette méthode.

Figure 45 Schéma globale de la méthode Scrum

I.2. Planning prévisionnel


Le planning prévisionnel ci-dessous, a été défini et validé au début du projet en collaboration
avec nos encadreurs et notre promoteur dans le but d’avoir une vision approximative du
déroulement du projet.

159
Figure 46 Planning prévisionne

160

Vous aimerez peut-être aussi