0% ont trouvé ce document utile (0 vote)
9 vues187 pages

Mémoire de Projet de Fin D'étude: Option: Systèmes D'informations Et Technologies (SIT)

Transféré par

derouich360
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
9 vues187 pages

Mémoire de Projet de Fin D'étude: Option: Systèmes D'informations Et Technologies (SIT)

Transféré par

derouich360
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Mémoire de projet de fin d’étude

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

Option : Systèmes d’Informations et Technologies (SIT)

Conception et réalisation d’un système de traitement des


données issues des médias sociaux.

Réalisé par : Encadré par :

M. Bilel MOSTEFA-CHEBRA Mme Safia BOURAI (ESI)

M. Mohamed Lamine DEROUAZ M. Samir BELLIK (GEN-42)

Promotion : 2019/2020
Dédicaces

Je dédie ce modeste travail,

À mes anges gardiens, ma mère Zoulikha et mon père Djilali qui sont la source
de mon bonheur au quotidien, je suis immensément fier d’être votre fils et je ferai de
mon mieux pour que vous ressentiez la même chose. Vos encouragements, vos mo-
tivations, votre aide et vos efforts sont au-delà de toute description, vous êtes les
meilleurs parents du monde.

À mon frère Adel et ma sœur Leila qui ont toujours été si aimants et encoura-
geants et toujours à la recherche de mes meilleurs intérêts, je vous souhaite à la fois
la meilleure des chances et le bonheur dans vos vies, pour vous et vos familles.

À mon binôme Amine avec qui j’ai partagé les cinq années les plus mémorables
de ma vie, tu as été exemplaire, je te remercie et je suis fier de toi mon ami.
À mes amis proches Alaeddine et Fatima Zahra, nous avons commencé ce parcours
ensemble il y a sept ans, je vous remercie d’être ma famille.
À ma chère amie Sirine qui m’a encouragé et soutenu de tout son cœur.

À tous mes chers amis de l’ESI qui n’ont cessé d’être pour moi des exemples de
persévérance, de courage et de générosité.
Aux ’Boys’ et à mes chers amis de Chlef.

Bilel Mostefa

I
Dédicaces

Je dédie ce travail,

À Ma famille géniale qui a toujours continué à me soutenir tout au long de ma


carrière universitaire. qui, tous les jours, m’ont fait sentir qu’ils sont si fiers de moi.
et cela m’a donné beaucoup de motivation et de courage pour faire quoi que ce soit.

À mon binôme et meilleur ami Bilel Mostefa-Chebra avec qui j’ai passé 5 fières
années.

À tous les amis que j’ai rencontrés au cours de mes années chez ESI. Et un merci
spécial à tous mes proches qui m’ont soutenu.

Amine Derouaz

II
Remerciements

Nous remercions tout d’abord notre encadrante Mme BOURAI Safia pour ses
précieux conseils, son orientation, sa correction continue et sa disponibilité durant
toute l’année, elle a rendu les choses difficiles paraître faciles ; et pour elle, nous se-
rons toujours reconnaissants.

Nous tenons à remercier également Mme AIT ALI YAHIA Dahbia pour sa dis-
ponibilité et l’effort incroyable consenti dans l’orientation, et pour toujours mettre
notre meilleur intérêt en premier.
Nous tenons à remercier Mme ZAKARIA Chahnez qui a trouvé le temps et nous
a accueillis pour partager son expertise et ses conseils.

Nous souhaitons remercier aussi l’organisme d’accueil de GEN-42, Mr. BELLIK


Samir (Directeur et fondateur) et Mr. MOUHOUN Said (Responsable technique),
qui nous ont fait confiance, fourni tous les moyens nécessaires pour bien accomplir
notre travail, et qui malgré leurs agendas chargés étaient toujours présents pour nous,
ils nous ont beaucoup encouragés, et ont mis leur collaboration et leurs engagement
pour la réussite de ce travail.

Sans oublier, l’ensemble de l’équipe GEN-42 qui nous ont accordés un peu de leurs
précieux temps pour répondre à toutes nos questions, et avec lesquels nous avons passé
une agréable année.
Enfin, nous adressons nos plus sincères remerciements à tous ceux qui ont participé
de près et de loin à la réalisation de ce modeste travail.
Merci à toutes et à tous.

III
Résumé

Dans un monde où les réseaux sociaux sont devenus de plus en plus relatifs, com-
prendre ce que les gens pensent et veulent à travers eux est devenu vital pour de
nombreuses entreprises.

Des études et des recherches ont été faites et toujours, dans le but de comprendre ce
que les gens expriment à travers leurs flux et messages, ce qu’ils veulent, de quoi se
plaignent-ils.

Le marketing deviendrait beaucoup plus facile s’il pouvait analyser automatiquement


les sentiments des gens à travers leurs messages, il est possible d’embaucher des gens
pour le faire, mais cela prendrait du temps et au moment où ces personnes auraient
analysé 10 messages, ils en auraient reçu 1000 de plus.

L’idée de comprendre la polarité des sentiments à travers une machine et de les éti-
queter s’appelle l’analyse des sentiments. Elle engage de nombreuses approches dont
l’une est une branche de l’intelligence artificielle : l’apprentissage automatique.

Ce travail est fait sous le cadre d’un projet de fin d’étude proposé par la direction de
GEN-42 intitulé ’La conception et la réalisation d’un système de traitement de don-
nées issues des média sociaux’. Il s’agit de la mise en place d’un système d’analyse
de sentiment permettant de prédire automatiquement la polarité et la catégorie des
commentaires en dialecte Algérien des pages Facebook des clients de l’entreprise. Le
système à développer collecte les données, classifie les commentaires selon sa polarité
et sa catégorie en suivant certaines phases inspirées des travaux antérieurs, affiche les
résultats de la classification en statistiques et en chiffres via des tableaux de bord.
Le but de cette classification est d’identifier le contenu qui est aimé et celui qui est
détesté par les consommateurs, nous pouvons donc adapter la meilleure stratégie de
publication de contenu en conséquence.

Mots-clés

Analyse des sentiments, Apprentissage automatique, dialecte Algérien, Collecte


de données, Réseaux sociaux, Classification, Tableaux de bord.

IV
Abstract

In a world where social media has become more and more relative, understanding
what people think and want through it has become vital for many businesses.

Studies and researches has been made and still, for the purpose of understanding
what are people expressing through their feeds and messages, what is that they want,
what do they complain about.

Marketing would become much easier if it could analyse automatically people sen-
timents through their messages, it is possible to hire people to do it, but it would
consume time and by the time these people have analysed 10 messages, they would
have recieved 1000 more.

The idea of understanding the polarity of feelings through a machine and classify
them is called sentiment analysis, and it hires many approaches one of them is a
branch of the aritifical intelligence : machine-learning.

This work was done as part of a graduation project proposed by the management
of GEN-42 entitled ’The design and construction of a system for processing data
from social media’. This is the implementation of a sentiment analysis system to
automatically predict the polarity and category of comments in Algerian dialect of
Facebook pages of the company’s customers. The system to be developed collects the
data, classify the comments according to its polarity and category following certain
phases inspired by previous works, displays the results of the classification in statistics
and figures via dashboards.
The goal of this classification is to identify the content that is liked and the one that is
hated by the consumers, therefore we can adapt the best content publishing strategy
accordingly.

Keywords

Sentiment analysis, Machine learning, Algerian dialect, Data collecting, Social


media, Classification, Dashboards.

V

‘jÊÓ

AÓ Ñê¯ iJ.“ @ éJ ÓñJË@ AJKAJm'. A£AJ.KP@ Q» A¯ Q» @ ú«AÒJk. B@ ɓ@ñJË@ ÉKAƒð éJ¯ Ij
 . “ @ ÕËA« ú¯
 „Ë@ áÓ YK YªÊË AK ñJk @QÓ @ éËCg áÓ éKðYK QK AÓð €AJË@ éJ¯ Qº®K
. HA¿Qå
 g ÈCg áÓ €AJË@ éJ« Q.ªK AÓ Ñê¯ QªË , È@QK Bð HñjJ
ÑîEA“C  P YË@ Z@Qk. @ Õç'
 . Ë@ð HAƒ@
. éJÓ àñº‚ ø YË@ AÓð , éKðYK QK ø YË@ AÓ , ÑêÊKAƒPð

, ÑêÊKAƒP ÈCg áÓ AJKA®Ê K Am B@ Q«A‚Ó ÉJÊm' éKA¾ÓAK. àA¿ @ X@ QJºK. ÉîD @ ‡K ñ‚Ë@
 iJ’ƒ
.
 
      
ZBñë éJ¯ ÉÊg ø YË@ I ¯ñË@ ÈñÊm'. ð AJ¯ð †QªJ‚ƒ éJºËð , ½Ë YK. ÐAJ®ÊË Am @ ­J£ñK áºÒÖÏ @ áÔ¯
 ­Ë @ @ñ®Ê K Y¯ àñKñºJƒ , ÉKAƒP èQå„« Am B@
.øQk @ éËAƒP

áÓ YK YªË@ Qk. AJ‚ð , Q«A‚Ö Ï @ ÉJÊjJK. Aê®J’ð éË @ ÈCg áÓ Q«A‚Ö Ï @ éJ J.¢¯ Ñê¯ èQº¯ ú«YK
  
.úÍ B@ ÕΪJË @ / éË B@ ÕΪK : ú«AJ¢“B@ ZA¿YË@ áÓ ¨Q¯ ñë AëYg @ , I.JËAƒ B@

ÐA¢ ZAJK. ð ÕæÒ’ @ à@ñJªK. ák. é»Qå   èP@X@ éJkQ¯@ ø YË@ h QjJË@ ¨ðQå„Ó áÓ ZQm» QjJÓ ÉÒªË@ @ Yë
. . .
AJKA®Ê K ñJJÊË Q«A‚Ö Ï @ ÉJÊjJË ÐA¢ ZA‚ @ ½Ë X áҒJK . ú«AÒJk B@ ɓ@ñJË@ ÉKAƒð áÓ HA  KAJJ.Ë@ ém .Ì 'AªÖÏ
. .
èQK ñ¢ X@QÖÏ @ ÐA¢JË@ Ðñ®K . é»Qå  „Ë@ ZCÔ« ¼ñJ‚¯ HAj
.  ®’Ë éK QK@Qm.Ì '@ éj
 êÊËAK HA    
. .  ®JʪJË@ éJ¯ð éJJ.¢®K.

. HAÓñ滅 
Ï @ HAgñË Q.« ÐA¯P B@ð HAJ
 KA’kB @ ú¯ ­J’JË@ l. ' AJK Q«ð HA
 KAJJ.Ë@ ©Òm.'.

éJ kAJ®ÖÏ @ HAÒʾË@




 êÊË@ , úÍ B@ ÕΪJË @ , Q«A‚Ö Ï @ ÉJÊm'


 KAJJ.Ë@ ©Ôg. , éK QK@Qm.Ì '@ éj
, ú«AÒJk. B@ ɓ@ñJË@ ÉKAƒð , HA .

. HAÓñ滅 
Ï @ HAgñË , ­J’JË@

ESI VI
Table des matières

Dédicaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I
Remerciements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . III
Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IV
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V
Table des matières . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VII
Table des figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XI
Table des tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XV
Liste des abréviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XVII

Introduction générale 1

I Étude bibliographique 4
Introduction 5

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


1.1 Notions de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.1 Sentiment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.2 Émotion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.3 Différence entre opinion et avis . . . . . . . . . . . . . . . . . 7
1.2 L’Analyse des sentiments . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.1 Définition de l’analyse de sentiment . . . . . . . . . . . . . . . 7
1.2.2 Niveaux de classification des sentiments . . . . . . . . . . . . . 7
1.2.3 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.4 Défis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.5 Le Processus de l’analyse de sentiment . . . . . . . . . . . . . 11
1.2.6 Les Approches d’analyse des sentiments . . . . . . . . . . . . . 17
1.2.7 Outils d’analyse des sentiments . . . . . . . . . . . . . . . . . 20

2 Généralités sur l’apprentissage automatique 22


2.1 Définition de l’apprentissage Automatique (Machine Learning) . . . . 22
2.2 Les différents domaines d’application de l’apprentissage automatique . 23
2.2.1 Prédiction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.2 Reconnaissance d’image . . . . . . . . . . . . . . . . . . . . . 23
2.2.3 Reconnaissance vocale . . . . . . . . . . . . . . . . . . . . . . 23
2.2.4 Diagnostics médicaux . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.5 Secteur financier et commerce . . . . . . . . . . . . . . . . . . 23
2.3 Les différents procédés d’apprentissage . . . . . . . . . . . . . . . . . 24
2.3.1 Apprentissage Supervisé . . . . . . . . . . . . . . . . . . . . . 24
2.3.2 L’apprentissage Non Supervisé . . . . . . . . . . . . . . . . . . 24

VII
TABLE DES MATIÈRES

2.3.3 L’apprentissage semi-supervisé . . . . . . . . . . . . . . . . . . 24


2.3.4 L’apprentissage par renforcement . . . . . . . . . . . . . . . . 25
2.4 Les différents Algorithmes d’apprentissage automatique . . . . . . . . 25
2.4.1 Algorithmes d’apprentissage supervisé . . . . . . . . . . . . . 26
2.4.2 Algorithmes d’apprentissage non-supervisé . . . . . . . . . . . 28
2.5 Évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.5.1 Matrice de confusion . . . . . . . . . . . . . . . . . . . . . . . 30
2.5.2 Mesures d’évaluation . . . . . . . . . . . . . . . . . . . . . . . 32
2.5.3 Démarche d’évaluation . . . . . . . . . . . . . . . . . . . . . . 33
2.5.4 Diagnostique biais / variance . . . . . . . . . . . . . . . . . . 33

3 Analyse de sentiment avec l’approche apprentissage automatique 35


3.1 Étapes de l’approche d’apprentissage automatique lors de l’analyse des
sentiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2 Phase : Annotation de données . . . . . . . . . . . . . . . . . . . . . 36
3.2.1 Type d’annotation . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3 Phase : Prétraitement de données . . . . . . . . . . . . . . . . . . . . 37
3.3.1 Annexe des définitions . . . . . . . . . . . . . . . . . . . . . . 37
3.4 Phase : Representation de données . . . . . . . . . . . . . . . . . . . 39
3.4.1 Bag of words (BOW) . . . . . . . . . . . . . . . . . . . . . . . 39
3.4.2 Modèle n-gram . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.5 Les algorithmes utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.5.1 Dans les travaux qui traitent la classification de texte . . . . . 42
3.5.2 Synthèse des algorithmes : Avantages et inconvénients . . . . . 43
3.5.3 Synthèse des travaux existants . . . . . . . . . . . . . . . . . . 44
3.6 Phase : Choix de modèle . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.6.1 Annexe des définitions . . . . . . . . . . . . . . . . . . . . . . 45
3.6.2 Étapes du choix du modèle le plus adéquat (dans cette approche) 46
3.7 Synthèse des travaux traitant la langue arabe . . . . . . . . . . . . . 46
3.7.1 Difficulté rencontré avec l’arabe . . . . . . . . . . . . . . . . . 46
3.7.2 Exemples de travaux existants traitant le dialecte Algérien . . 47

Conclusion 49

II Développement du système 50
Introduction 51

4 Etat des lieux et identification des besoins 52


4.1 Organisme d’accueil GEN-42 . . . . . . . . . . . . . . . . . . . . . . . 52
4.2 Missions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.2.1 Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.2.2 Exemples de réalisations . . . . . . . . . . . . . . . . . . . . . 54
4.3 Développement de GEN-42 . . . . . . . . . . . . . . . . . . . . . . . . 55
4.3.1 Développement important du numérique . . . . . . . . . . . . 55
4.3.2 Les difficultés rencontrées . . . . . . . . . . . . . . . . . . . . 55
4.4 GEN-42 : Organisation . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.4.1 Organisation du personnel . . . . . . . . . . . . . . . . . . . . 56
4.5 Projet global de GEN-42 (2019-2022) . . . . . . . . . . . . . . . . . . 58

ESI VIII
TABLE DES MATIÈRES

4.5.1 Reporting and statistics module . . . . . . . . . . . . . . . . . 59


4.5.2 Data Tagging Module . . . . . . . . . . . . . . . . . . . . . . 60
4.5.3 Enchère en temps reel (real-time bidding - RTB) . . . . . . . . 60
4.6 Identification des objectifs du système projeté . . . . . . . . . . . . . 61
4.7 Identification des acteurs du système . . . . . . . . . . . . . . . . . . 61
4.8 Spécifications fonctionnelles . . . . . . . . . . . . . . . . . . . . . . . 62
4.9 Spécifications techniques . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.10 Diagramme des cas d’utilisation . . . . . . . . . . . . . . . . . . . . . 65
4.11 Documentation du diagramme des cas d’utilisation . . . . . . . . . . 66

5 Conception 69
5.1 Architecture globale d’analyse de sentiment . . . . . . . . . . . . . . 69
5.2 Récupération des données . . . . . . . . . . . . . . . . . . . . . . . . 70
5.2.1 Objectif et nature des données . . . . . . . . . . . . . . . . . . 70
5.2.2 La source de données : Facebook . . . . . . . . . . . . . . . . 70
5.2.3 Nos données sur Facebook . . . . . . . . . . . . . . . . . . . . 71
5.2.4 Hiérarchie globale et premières étapes de récupération . . . . . 71
5.2.5 Récupération des commentaires d’une page . . . . . . . . . . . 72
5.2.6 Tableau récapitulatif des données récupérées . . . . . . . . . . 75
5.2.7 Un schéma récapitulatif pour la phase de récupération des données 76
5.3 Annotation des données . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.3.1 Sources de données à annoter . . . . . . . . . . . . . . . . . . 77
5.3.2 Un schéma global pour la phase d’Annotation des données . . 81
5.4 Prétraitement (Preprocessing) . . . . . . . . . . . . . . . . . . . . . . 81
5.4.1 Pré-tokenisation . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.4.2 Tokenisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.4.3 Après-Tokenisation . . . . . . . . . . . . . . . . . . . . . . . . 83
5.4.4 Un exemple de déroulement complet de la phase de prétraitement 89
5.4.5 Un schéma récapitulatif pour la phase de Prétraitement des
données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.5 Représentation de données . . . . . . . . . . . . . . . . . . . . . . . . 92
5.6 Classification et tests . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.7 Schéma de la base de données . . . . . . . . . . . . . . . . . . . . . . 93
5.7.1 Diagramme Entité/Association . . . . . . . . . . . . . . . . . 93
5.7.2 Description des entités . . . . . . . . . . . . . . . . . . . . . . 94

6 Realisation 101
6.1 Architecture logicielle de l’application . . . . . . . . . . . . . . . . . . 101
6.1.1 Frontend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.1.2 Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.2 Architecture globale de la solution . . . . . . . . . . . . . . . . . . . . 103
6.3 Environnement et technologies de développement . . . . . . . . . . . 104
6.3.1 Technologies utilisées . . . . . . . . . . . . . . . . . . . . . . . 105
6.3.2 Bibliothèques utilisées . . . . . . . . . . . . . . . . . . . . . . 107
6.4 Présentation sommaire de l’outil logiciel réalisé . . . . . . . . . . . . . 109

7 Tests et résultats 123


7.1 Description des données . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.1.1 Recensement des données annotées collectées . . . . . . . . . . 123
7.1.2 Construction d’ensemble de jeux de donnés . . . . . . . . . . . 124

ESI IX
TABLE DES MATIÈRES

7.1.3 Statistiques sur le nombre de mots . . . . . . . . . . . . . . . 126


7.1.4 Les mots les plus fréquents à trouver . . . . . . . . . . . . . . 129
7.2 Plan de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
7.3 Difficultés rencontrées . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.4 Les résultats obtenus . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
7.4.1 Cas de test 01 : D1 – 2200 . . . . . . . . . . . . . . . . . . . . 133
7.4.2 Cas de test 02 : D2 – 5500 . . . . . . . . . . . . . . . . . . . . 135
7.4.3 Cas de test 03 : D3 – 3212 . . . . . . . . . . . . . . . . . . . . 136
7.4.4 Cas de test 04 : D4 – 3900 . . . . . . . . . . . . . . . . . . . . 137
7.4.5 Cas de test 05 : D5 – 7721 . . . . . . . . . . . . . . . . . . . . 139
7.4.6 Cas de test 06 : G1 – 1415 . . . . . . . . . . . . . . . . . . . . 140
7.4.7 Cas de test 07 : G2 – 2964 . . . . . . . . . . . . . . . . . . . . 141
7.4.8 Cas de test 08 : G3 – 4382 . . . . . . . . . . . . . . . . . . . . 143
7.4.9 Meilleures résultats et synthése . . . . . . . . . . . . . . . . . 144
7.4.10 Cas de test pratique : Corpus C3 . . . . . . . . . . . . . . . . 145

Conclusion 148

Conclusion générale et perspectives 149

Bibliographie 151

III Annexe 155


Annexe A : Méthodologie de travail . . . . . . . . . . . . . . . . . . . . . . 156
Annexe B : Documents utilisés pour le briefing d’avancement . . . . . . . . 159
Annexe C : Organisation des fichiers liés à la classification . . . . . . . . . 162
Annexe D : Clients GEN-42 sur Facebook . . . . . . . . . . . . . . . . . . 166
Annexe E : Conception de l’interface graphique . . . . . . . . . . . . . . . 167
Annexe F : Planning prévisionnel du projet . . . . . . . . . . . . . . . . . 169

ESI X
Table des figures

1 Exemple d’application de l’analyse des sentiments sur les Titres des


actualités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2 Le processus ML de l’analyse du sentiment de la phrase, Shoukry and
Rafea (2012) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3 Etapes de l’analyse des sentiments Dans le travail de Barretto (2017) 14
4 Etapes du processus proposé pour l’analyse des sentiments selon Elouar-
dighi et al. (2018) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5 Etapes du processus proposé selon le travail de Chader et al. (2019) . 15
6 Etapes du processus proposé selon la recherche de Magliani et al. (2016) 16
7 Techniques de classification des sentiments . . . . . . . . . . . . . . . 17

8 Schéma des algorithmes de l’apprentissage automatique, Kaur (2019) 25


9 Un problème de discrimination à deux classes, avec deux exemples de
séparatrices selon la distribution des données . . . . . . . . . . . . . . 26
10 Un problème de discrimination à deux classes, avec deux exemples de
séparatrices selon la distribution des données, Wang (2020) . . . . . . 27
11 Réseau neuronal artificiel, Mylavarapu (2018) . . . . . . . . . . . . . 28
12 Formules de support, de confiance et de portance pour la règle d’asso-
ciation X-> Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
13 étapes de l’algorithme K-means. . . . . . . . . . . . . . . . . . . . . . 29
14 Les 3 variables originales (gènes) sont réduites à 2 nouvelles variables
appelées composants principaux (CP) . . . . . . . . . . . . . . . . . . 30
15 Matrice de confusion - Exemple général . . . . . . . . . . . . . . . . . 31
16 Simplification du contenu de la matrice de confusion, (exemple de 2
classes) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

17 Différentes étapes de l’approche d’apprentissage automatique lors de


l’analyse des sentiments . . . . . . . . . . . . . . . . . . . . . . . . . 36
18 Image qui simplifie à l’excès le concept de BOW . . . . . . . . . . . . 39

19 Logo de GEN-42 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
20 Schéma d’organisation du personnel . . . . . . . . . . . . . . . . . . . 56
21 Projet global 2019-2022 . . . . . . . . . . . . . . . . . . . . . . . . . . 59
22 Diagramme des cas d’utilisation de système . . . . . . . . . . . . . . 65

23 Un schéma détaillé qui montre les différentes interactions entre les don-
nées et les phases de notre système. . . . . . . . . . . . . . . . . . . . 70
24 Capture d’écran d’une utilisation de l’API Graph Facebook . . . . . . 71
25 Captures d’écran tirées de json-Viewer . . . . . . . . . . . . . . . . . 73
26 Captures d’écran d’éléments récupéré pour chaque page – outil : json
Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

XI
TABLE DES FIGURES

27 Les posts d’une page récupérés dans un seul fichier, capture prise de
l’outil : Json-Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
28 Captures d’écran d’éléments récupéré pour chaque post – outil : json
Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
29 Captures d’écran d’éléments récupéré pour chaque commentaire – ou-
til : json Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
30 Récapitulatif des données récupérées à partir de facebook pour cet
exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
31 Schéma récapitulatif de la phase de récupération de données . . . . . 76
32 Exemple d’un fichier csv contenant les commentaires de Dataset GEN-42 77
33 Exemple d’un fichier excel contenant les commentaires de Dataset
GEN-42 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
34 Exemple de commentaires annotés dans un fichier Excel de Dataset
GEN-42 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
35 Capture d’écran montre l’utilisation de l’outil TagTog . . . . . . . . . 79
36 Exemple des commentaires annotés dans Tagtog est exporté puis ex-
ploités dans Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
37 Le processus complet de l’annotation de nos Datasets . . . . . . . . . 81
38 Le dictionnaire créé pour le regroupement phonétique, capture d’écran
de json-viewer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
39 Phase de prétraitement (PreProcessing) des données illustrées par une
architecture pipline . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
40 Les méthodes de représentation (vectorisation) utilisées dans notre so-
lution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
41 Regroupement des différentes variations sur lesquelles nous baserons la
phase de classification et de test . . . . . . . . . . . . . . . . . . . . . 92
42 Diagramme Entité / Association . . . . . . . . . . . . . . . . . . . . . 93

43 Schéma de l’architecture logicielle de notre système . . . . . . . . . . 101


44 Schéma de l’architecture globale du système . . . . . . . . . . . . . . 103
45 Logo de python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
46 Logo de Django . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
47 Logos de HTML et CSS . . . . . . . . . . . . . . . . . . . . . . . . . 105
48 Logos de JavaScript, React JS et Redux. . . . . . . . . . . . . . . . . 106
49 Capture d’écran de l’authentification . . . . . . . . . . . . . . . . . . 109
50 Capture d’écran du tableau de bord principal . . . . . . . . . . . . . 110
51 capture d’écran détaillée de la courbe . . . . . . . . . . . . . . . . . . 111
52 Capture d’écran de visualisation des pages . . . . . . . . . . . . . . . 112
53 Capture d’écran de visualisation des posts . . . . . . . . . . . . . . . 113
54 Capture d’écran de visualisation des commentaires . . . . . . . . . . . 114
55 Capture d’écran pour pour l’opération de tag des commentaires . . . 114
56 un commentaire avec l’autorisation/permission de répondre . . . . . 115
57 Capture d’écran de la fenêtre ouverte lors de la réponse . . . . . . . . 115
58 Capture d’écran de la fenêtre ouverte lors du choix de l’utilisateur
destinataire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
59 Capture d’écran de la fenêtre ouverte lors du transfert . . . . . . . . . 116
60 Capture d’écran du menu de notification reçues . . . . . . . . . . . . 117
61 Capture d’écran de la fenêtre lors de gnération du rapport . . . . . . 117
62 Capture d’écran de la fenêtre aprés la génération du rapport . . . . . 117
63 Contenu du rapport Excel . . . . . . . . . . . . . . . . . . . . . . . . 118

ESI XII
TABLE DES FIGURES

64 Dropdown Menu d’un utilisateur . . . . . . . . . . . . . . . . . . . . 118


65 Page profil d’un utilisateur du système . . . . . . . . . . . . . . . . . 119
66 Page de l’historique d’activités d’un utilisateur . . . . . . . . . . . . . 119
67 Page de gestion des utilisateurs . . . . . . . . . . . . . . . . . . . . . 120
68 Page de classement des contributions des utilisateurs . . . . . . . . . 120
69 Fenêtre d’ajouter un utilisateur . . . . . . . . . . . . . . . . . . . . . 121
70 Page de l’historique d’activité consulté par le Super-Admin . . . . . . 121
71 Page de paramètres d’un utilisateurs du perspective du Super-Admin 122

72 Diagramme en secteurs qui montrent les pourcentages d’étiquettes pour


chaque jeu de données (Polarité) construit. . . . . . . . . . . . . . . . 125
73 Diagramme en secteurs qui montrent les pourcentages d’étiquettes pour
chaque jeu de données (Categories) construit. . . . . . . . . . . . . . 126
74 Graphique qui montre l’évolution du nombre total de mots en fonction
des phases de prétraitement. . . . . . . . . . . . . . . . . . . . . . . . 127
75 Graphique qui montre l’évolution du nombre de mots uniques en fonc-
tion des phases de prétraitement . . . . . . . . . . . . . . . . . . . . . 127
76 Graphique en barres qui montre les mots les plus fréquents dans l’en-
semble de données 7721 avant tout prétraitement effectué. . . . . . . 129
77 Graphique en barres qui montre les mots les plus fréquents dans l’en-
semble de données 7721 après 13 phases de prétraitement. . . . . . . 129
78 L’erreur rencontrée lors de la tentative de classification de 31 000 com-
mentaires à la fois avec SVM. . . . . . . . . . . . . . . . . . . . . . . 132
79 L’erreur rencontrée lors de la tentative de classification de 57 000 com-
mentaires à la fois avec SVM. . . . . . . . . . . . . . . . . . . . . . . 132
80 propriétés de la mémoire RAM du serveur interne de GEN-42 . . . . 132
81 Une capture d’écran montrant le temps d’exécution de 2 heures et 24
minutes résultat du test de l’algorithme de régression logistique sur
2200 documents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
82 Résultats de classification pour trois phases différentes et trois mé-
thodes différentes sur tous les algorithmes sur D1 . . . . . . . . . . . 134
83 Graphique à barres pour récapituler les résultats de la métrique de
l’exactitude sur D1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
84 Résultats de classification pour trois phases différentes et trois mé-
thodes différentes sur tous les algorithmes sur D2 . . . . . . . . . . . 135
85 Graphique à barres pour récapituler les résultats de la métrique de
l’exactitude sur D2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
86 Résultats de classification pour trois phases différentes et trois mé-
thodes différentes sur tous les algorithmes sur D3 . . . . . . . . . . . 136
87 Graphique à barres pour récapituler les résultats de la métrique de
l’exactitude sur D3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
88 Résultats de classification pour trois phases différentes et trois mé-
thodes différentes sur tous les algorithmes sur D4 . . . . . . . . . . . 138
89 Graphique à barres pour récapituler les résultats de la métrique de
l’exactitude sur D4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
90 Résultats de classification pour trois phases différentes et trois mé-
thodes différentes sur tous les algorithmes sur D5 . . . . . . . . . . . 139
91 Graphique à barres pour récapituler les résultats de la métrique de
l’exactitude sur D5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

ESI XIII
TABLE DES FIGURES

92 Résultats de classification pour trois phases différentes et trois mé-


thodes différentes sur tous les algorithmes sur G1 . . . . . . . . . . . 140
93 Graphique à barres pour récapituler les résultats de la métrique de
l’exactitude sur G1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
94 Résultats de classification pour trois phases différentes et trois mé-
thodes différentes sur tous les algorithmes sur G2 . . . . . . . . . . . 142
95 Graphique à barres pour récapituler les résultats de la métrique de
l’exactitude sur G2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
96 Résultats de classification pour trois phases différentes et trois mé-
thodes différentes sur tous les algorithmes sur G3 . . . . . . . . . . . 143
97 Graphique à barres pour récapituler les résultats de la métrique de
l’exactitude sur G3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
98 Capture d’écran du fichier Excel initial avant modifications. . . . . . 145
99 Capture d’écran pour le fichier Excel après avoir inséré les résultats. . 146
100 Capture d’écran pour les cellules de résultats du fichier Excel. . . . . 147
101 Le canevas Machine Learning de notre projet . . . . . . . . . . . . . . 156
102 Les étapes de la méthode CRISP . . . . . . . . . . . . . . . . . . . . 158
103 Capture d’écran sur un mini-rapport, page 1 . . . . . . . . . . . . . . 160
104 Capture d’écran sur un mini-rapport, page 2 . . . . . . . . . . . . . . 161
105 Modèle d’un PV de réunion faite avec l’équipe de GEN-42 . . . . . . 162
106 Une capture d’écran du dossier contenant les différents fichiers de jeux
de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
107 Les différents dossiers représentant chacun un jeu de données. . . . . 164
108 Les différents fichiers contiennent chacun le résultat du test pour cette
combinaison particulière. . . . . . . . . . . . . . . . . . . . . . . . . . 164
109 Les résultats pour un test particulier avec les 4 métriques sur les 13
phases de prétraitement. . . . . . . . . . . . . . . . . . . . . . . . . . 165
110 Le fichier d’instructions que nous avons créé et que les Community
Managers du GEN-42 ont suivi pour annoter le corpus C2. . . . . . . 165
111 Le fichier Excel qui contient tous les résultats détaillés des tests, cap-
ture d’écran de Microsoft Excel. . . . . . . . . . . . . . . . . . . . . . 166
112 schéma des interactions de l’interface graphique . . . . . . . . . . . . 168
113 Planning prévisionnel de notre projet de fin d’études . . . . . . . . . 169

ESI XIV
Liste des tableaux

1 Tableau qui synthétise les applications d’analyse de sentiment les plus


générales D’Andrea et al. (2015) . . . . . . . . . . . . . . . . . . . . . 9
2 Tableau des définitions des differentes étapes du processus de l’AS uti-
lisées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3 Étapes du processus de l’AS dans quelques travaux, Partie 01 . . . . 16
4 Étapes du processus de l’AS dans quelques travaux, Partie 02 . . . . 16
5 Résumé des approches de classification des sentiments, selon D’Andrea
et al. (2015) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

6 Annexe des définitions des termes / phases de prétraitement utilisés


dans cette synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
7 Bag-of-words représentation de ’docs’ . . . . . . . . . . . . . . . . . . 41
8 Bag-of-words représentation avec TF appliquée . . . . . . . . . . . . . 41
9 Bag-of-words représentation avec TF-IDF appliquée . . . . . . . . . . 41
10 Les algorithmes utilisés dans l’approche ML et les travaux qui l’ont
utilisée. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
11 Comparaison des techniques les plus courantes de la classification de
texte, Kowsari et al. (2019) . . . . . . . . . . . . . . . . . . . . . . . 44
12 Résumé récapitulatif global des travaux réalisés avec l’apprentissage
automatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
13 Annexe des définitions de certains termes utilisés dans le processus
ci-dessous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

14 Fiche de l’entreprise GEN-42 . . . . . . . . . . . . . . . . . . . . . . . 53


15 Exemples de réalisation de GEN-42 . . . . . . . . . . . . . . . . . . . 55
16 Spécifications fonctionnelles du système . . . . . . . . . . . . . . . . . 63
17 Spécifications techniques du système . . . . . . . . . . . . . . . . . . 64
18 DCU : Tagger manuellement la polarité d’un commentaire . . . . . . 66
19 DCU : Répondre au commentaire . . . . . . . . . . . . . . . . . . . . 67
20 DCU : Générer un rapport Excel . . . . . . . . . . . . . . . . . . . . 68
21 DCU : Consulter le tableau de bord d’une page . . . . . . . . . . . . 68

22 Les corpus collectés et annotés en termes de polarité . . . . . . . . . 80


23 Les corpus collectés et annotés en termes de categorie . . . . . . . . . 80
24 Lettres avec des accents et leurs substituts . . . . . . . . . . . . . . . 86
25 Les chiffres trouvés dans certains mots du dialecte Algérien et leurs
substituts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
26 Un exemple de combinaison différente pour écrire un seul mot dans le
dialecte Algérien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

XV
LISTE DES TABLEAUX

27 Un exemple de combinaison différente pour écrire un seul mot dans le


dialecte Algérien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
28 BDD : entité page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
29 BDD : entité user . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
30 BDD : entité post . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
31 entité commentaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
32 BDD : entité transaction . . . . . . . . . . . . . . . . . . . . . . . . . 100

34 Les corpus collectés et annotés en termes de polarité . . . . . . . . . 124


35 Les corpus collectés et annotés en termes de categorie . . . . . . . . . 124
36 Les jeux de données construits en termes de polarité . . . . . . . . . . 124
38 Les nombres de mots total dans les phases 0,8,13 pour tous les jeux de
données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
39 Les nombres de mots uniques dans les phases 0,8,13 pour tous les jeux
de données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
40 Le plan des tests suivi. . . . . . . . . . . . . . . . . . . . . . . . . . . 130
41 Description de jeux de données D1 . . . . . . . . . . . . . . . . . . . 133
42 Description de jeux de données D2 . . . . . . . . . . . . . . . . . . . 135
43 Description de jeux de données D3 . . . . . . . . . . . . . . . . . . . 136
44 Description de jeux de données D4 . . . . . . . . . . . . . . . . . . . 137
45 Description de jeux de données D5 . . . . . . . . . . . . . . . . . . . 139
46 Description de jeux de données G1 . . . . . . . . . . . . . . . . . . . 140
47 Description de jeux de données G2 . . . . . . . . . . . . . . . . . . . 141
48 Description de jeux de données G3 . . . . . . . . . . . . . . . . . . . 143
49 Résumé des meilleurs scores sur tous les tests . . . . . . . . . . . . . 144
50 Pages Facebook des clients de GEN-42 . . . . . . . . . . . . . . . . . 167

ESI XVI
Liste des abréviations

ADM Arabe Dialecte Marrocain

AS L’analyse des sentiments

ASM Arabe Standard Moderne

BC Base de connaissance

BOW Bag of Words

DT Decision Tree

IA Intelligence artificielle

KNN K-Nearest Neighbor

LR Logistic Regression

ML Machine Learning

NB Naive Bayes

NLP Natural Language Processing

SC Sentiment Classification

SVM Support Vector Machine

TF Term Frequency

TF-IDF Term Frequency-Inverted Document Fre-


quency

XVII
Introduction générale

L’analyse des sentiments est devenue omniprésente dans notre société, avec des
applications dans la recherche en ligne, la vision par ordinateur, la compréhension
d’image, l’intelligence artificielle et le marketing. Dans ce contexte, l’analyse des sen-
timents en marketing a un rôle important dans le développement du domaine en
nous permettant de comprendre si les gens sont satisfaits ou insatisfaits du service
ou produit afin d’analyser par la suite les forces et les faiblesses de ces expériences de
consommation.
C’est là que notre projet pèse, car nous travaillons sur un projet d’analyse des senti-
ments au sein d’une agence de marketing digital.

Nous introduisons notre projet en expliquant le contexte, la problématique, les ob-


jectifs et l’organisation de ce mémoire.

Contexte
GEN-42 est une agence de communication digitale située à Alger, sa mission prin-
cipale est de propulser ses clients sur Internet par la publicité, des conseils et diverses
offres afin de les faire connaître sur le web et d’accroître leur visibilité et leur réputa-
tion.

Le domaine principal de cette agence est la communication et le marketing digi-


tal (numérique). Elle a donc naturellement besoin de beaucoup d’informations de ses
comptes commerciaux de médias sociaux.
GEN-42 voudrait avoir la possibilité d’identifier la nature des données dont ils dis-
posent sur les médias sociaux, de savoir si elles sont positives, négatives ou neutres, et
quel domaine (catégorie) est le plus visé avec ces données. Afin que cela puisse changer
ou peut-être conduire à adapter une nouvelle stratégie du contenu des publications
ou même changer la stratégie de travail.

Problématique
Le bureau de gestion et de création de contenu actuel et le service client et support
ne disposent pas des ressources suffisantes pour déterminer et étiqueter manuellement
chaque commentaire dans chaque publication pour chacun des clients GEN-42,
Tout ce processus prendra beaucoup de main-d’œuvre et énormément de temps,
compte tenu de la quantité croissante de commentaires (environ 10.000 commentaires
chaque jour) et de publications qui est combinée entre les 41 pages Facebook des

1
INTRODUCTION GÉNÉRALE

clients, il est sûr de dire si il n’est impossible à suivre, c’est extrêmement difficile.
Et parce que cette opération (d’étiqueter les commentaires pour obtenir les résul-
tats) prend du temps (des jours) et nécessite beaucoup de monde (environ 10 per-
sonnes), les services actuels en charge d’identifier le taux de satisfaction des clients
sur les produits ne disposent pas de suffisamment de données et de résultats pour
déterminer réellement ces chiffres de satisfaction.
Comme il est extrêmement difficile de déterminer quel contenu est positif et négatif
simplement en regardant les commentaires. Tant qu’il n’y a pas de classification claire
et concrète, elle reste toujours obscure et trompeuse. Les services ont également du
mal à déterminer quel domaine / catégorie intéresse le plus les gens dans la section
commentaires, les gens se soucient-ils plus du prix ? Ou est-ce il s’agit des plaintes ?
Est-ce qu’ils spamment plus ?
Ce qui explique la nécessité d’une classification automatique, faite avec des algo-
rithmes d’apprentissage automatique sur les commentaires, une classification basée
sur la polarité et une autre sur les catégories. Et de plus, l’entreprise a clairement
exprimé que ce dont elle avait besoin était de traiter automatiquement les commen-
taires du dialecte Algérien (Darja).
La polarité et la catégorie dominante des commentaires sont nécessaires pour savoir
quel contenu à adapter et lequel à améliorer ,le besoin de GEN-42 est plus grand que
de simplement déterminer si les commentaires sont positifs ou pas une seule fois ou
sur un certain lot de commentaires, mais c’est de le faire d’une manière continue tout
en gardant la trace des commentaires sur chaque Post. Sans une telle opération, il
serait très improbable de réellement prendre la bonne décision sur la stratégie adaptée
concernant le contenu.
De plus, il n’y a aucun moyen pour générer des rapports pour les clients contenant
des informations détaillées sur la polarité et la catégorie du contenu des pages. Il est
aussi nécessaire d’avoir un tableau de bord pour surveiller le développement de la
polarité et la catégorie de données au cours des six derniers mois pour tous les clients
ensembles et pour chacun individuellement. Également l’entreprise veut suivre la pro-
gression de la performance et précision de la classification automatique et finalement
avoir la possibilité de répondre aux commentaires Facebook au cas de nécessité.

Objectifs
Notre système doit Récupérer les données des pages Facebook des clients et les
afficher, prédire automatiquement la polarité et la catégorie des commentaires en
dialecte Algérien (Darja), afficher les résultats de la classification en statistiques et
en chiffres via des tableaux de bord.
Il devrait donner à l’utilisateur la possibilité de corriger (tag) les commentaires
mal prédis et de générer des rapports Excel sur chaque page.

ESI 2
INTRODUCTION GÉNÉRALE

Organisation du mémoire
Notre mémoire est composé de deux grandes parties et une annexe.

Première partie : Étude Bibliographique


Nous avons fait une étude sur les généralités de l’analyse des sentiments (premier
chapitre) et de l’apprentissage automatique (deuxième chapitre) et nous avons mis en
lumière les travaux qui sont effectués dans le cadre de l’analyse des sentiments avec
l’approche d’apprentissage automatique sur les commentaires en dialecte Algérien en
expliquant les étapes de ces travaux (troisième chapitre).

Deuxième partie : Développement du système


Contient 4 chapitres qui sont les suivants :

Etats de lieux et identification des besoins


Ce chapitre est dédié à l’organisme d’accueil, nous allons le présenter, citer ses
missions, ses réalisations passées, son organisation interne et ses rôles, son dévelop-
pement actuel et ses projets futurs.
Ensuite, nous montrons les objectifs détaillés, les acteurs du système, les spécifica-
tions fonctionnelles et techniques du système projeté dont l’entreprise a besoin dans
le cadre de ce projet.

Conception
Une explication détaillée étape par étape de la solution proposée pour le problème
d’analyse des sentiments, ainsi que la structure de la base de données et la description
de ses entités.

Réalisation
Ce chapitre est composé de l’architecture globale du système, les technologies et
différentes bibliothèques utilisées et les interfaces principales de l’outil développé.

Tests et résultats
Vue d’ensemble détaillée des données collectées, des jeux de données construits et
du plan de test avec les résultats et les interprétations des tests pour chaque jeux de
données.

Bibliographie
Troisième partie : Annexe
Où toutes les méthodes d’organisation, outils et documents nécessaires sont ré-
pertoriés et expliqués.

ESI 3
Première partie

Étude bibliographique

4
Introduction

L’analyse des sentiments tente de définir et de reconnaître les opinions, sentiments


et attitudes présents dans un texte ou un ensemble de textes. Développée essentiel-
lement depuis les années 2000, elle est particulièrement utilisée en marketing pour
analyser par exemple les commentaires des internautes ou les comparatifs et tests de
blogueurs ou encore les réseaux sociaux.
C’est un domaine de recherche en pleine croissance, avec de nombreux hauts et bas.
Au cours de l’étude approfondie de ce domaine, les chercheurs ont utilisé ce qu’on
appelle l’apprentissage automatique, c’est-à-dire une technologie d’intelligence artifi-
cielle permettant aux machines d’apprendre sans avoir été préalablement program-
mées spécifiquement à cette fin.

L’objectif principal de cet état de l’art est d’introduire les domaines de l’analyse des
sentiments et de l’apprentissage automatique, les travaux existants, en introduisant
les défis auxquels ils pourraient être confrontés lorsqu’ils traitent des dialectes arabes.

Dans le premier chapitre, nous présentons le domaine de l’analyse des sentiments,


définissons les termes de base qui y sont liés et montrons de ses différents niveaux,
approches, outils, défis et applications et de l’ensemble du processus.
Le deuxième chapitre, nous le consacrerons aux concepts de l’apprentissage auto-
matique. Nous apprendrons ce qu’est l’apprentissage automatique, ses différents do-
maines d’application, ses différents types, les algorithmes et la mesure des évaluations.
Dans le troisième chapitre, nous expliquerons comment l’apprentissage automatique
gère l’analyse des sentiments, nous expliquerons quelles sont les étapes de cette ap-
proche et comment les travaux existants les ont abordés, suivi d’une étude compara-
tive des travaux traitant le dialecte Algérien.

5
Chapitre 1

Généralités sur l’analyse de


sentiments

Introduction
Au cours de ce chapitre, nous discuterons en détail du sujet de l’analyse des
sentiments et découvrirons tous les aspects qui l’entourent : termes, applications,
défis, approches et travaux connexes.
Mais pour comprendre impeccablement l’analyse des sentiments, nous devons com-
mencer par des notions de base.

1.1 Notions de base


1.1.1 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éfinit comme "la composante de l’émo-
tion 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 psycholo-
gique comme un concept sociologique basique utile pour analyser le lien des sensations
corporelles, la gestuelle et les relations sociales.

1.1.2 É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), ce dernier définit l’émotion comme étant une expérience
psychophysiologique complexe et intense avec un début brutal et une durée relative-
ment brève.
Le dictionnaire en ligne l’Internaute la définit comme la à "manifestation d’un
sentiment", tandis que le Larousse (2019) la présente sous une "réaction affective
transitoire d’assez grande intensité ".

6
CHAPITRE 1. GÉNÉRALITÉS SUR L’ANALYSE DE SENTIMENTS

1.1.3 Différence entre opinion et avis


Selon Larousse (2012) :
Le nom opinion désigne un jugement personnel sur un sujet. Un avis est une
opinion résultant d’une réflexion et destiné à être communiqué à une ou plusieurs
personnes dans le but de déclencher une action. Exemple : "consulter l’avis d’un
médecin" et non pas "l’opinion d’un médecin".

1.2 L’Analyse des sentiments


1.2.1 Définition de l’analyse de sentiment
L’analyse des sentiments est essentiellement l’automatisation de l’analyse d’un
texte donné afin de déterminer les sentiments qui y sont véhiculés, L’AS et l’explora-
tion d’opinion sont devenus des termes interchangeables.
Subhabrata Mukherjee définie l’AS comme une «tâche de traitement du langage
naturel et d’extraction d’informations qui vise à obtenir les sentiments de l’écrivain
exprimés dans des commentaires, questions et demandes positifs ou négatifs, en ana-
lysant un grand nombre de documents».
En d’autres termes, l’AS vise à définir les sentiments de l’écrivain par rapport à
un sujet particulier en fonction de son opinion. Mukherjee and Bhattacharyya (2013)

1.2.2 Niveaux de classification des sentiments


La classification de sentiment est une tâche de classification d’une unité cible dans
un document en positif (favorable) ou négatif (défavorable) classe.
Il existe trois principaux niveaux de classification

Niveau du document
Selon Turney (2002) la tâche à ce niveau est de déterminer l’opinion globale du
document. L’analyse des sentiments au niveau du document suppose que chaque
document exprime des opinions sur une seule entité.

Niveau phrase
Selon Jagtap and Pawar (2013) La tâche à ce niveau est de déterminer si chaque
phrase a exprimé une opinion.
Ce niveau distingue les phrases objectives exprimant des informations factuelles
et les phrases subjectives exprimant des opinions.
Dans ce cas, les traitements sont doubles ; identifiez d’abord si la phrase a exprimé
ou non une opinion (si elle est subjective), puis évaluez la polarité de l’opinion. Mais
la principale difficulté vient du fait que des phrases objectives peuvent être porteuses
d’opinion.

Niveau aspect
Selon Liu and Zhang (2013) ce niveau effectue une analyse plus fine et nécessite
l’utilisation du traitement du langage naturel.
Selon Mukherjee and Bhattacharyya (2013), à ce niveau, l’opinion se caractérise
par une polarité et une cible d’opinion. Dans ce cas, les traitements sont doubles :

ESI 7
CHAPITRE 1. GÉNÉRALITÉS SUR L’ANALYSE DE SENTIMENTS

identifiez d’abord l’entité et les aspects de l’entité en question, puis évaluez l’opinion
sur chaque aspect.
Au niveau du document, il est possible de classer si une opinion globale des utili-
sateurs exprime un sentiment positif ou négatif. Par exemple, étant donné un examen
de produit / service, il est possible de déterminer si l’avis exprime une opinion globale
positive ou négative sur le produit / service.
La phrase détermine si chaque phrase exprime un positif ou un négatif. Alors que
le niveau entité / aspect, au lieu de regarder la construction du langage (phrases,
paragraphes, clauses, etc.), se concentrer directement sur l’opinion elle-même. Il est
basé sur l’idée qu’une opinion se compose d’un sentiment (positif ou négatif) et d’un
objectif (d’opinion). D’Andrea et al. (2015)

1.2.3 Applications
L’analyse des sentiments peut révéler des opportunités pour améliorer l’expérience
client, réduire le roulement du personnel, créer de meilleurs produits, etc. De nom-
breux travaux ont donné une catégorisation différente des applications liées à l’analyse
des sentiments.
Pang et al. (2002) classe largement les demandes dans les catégories suivantes :
— A. Demandes de sites Web liés à l’examen
Critiques de films, critiques de produits, etc.
— B. Applications en tant que technologie de sous-composants
Détection d’un langage antagoniste et chauffé dans les mails, détection de
spam, sensible au contexte, détection d’informations, etc.
— C. Applications en intelligence économique et gouvernementale
Connaître les attitudes et les tendances des consommateurs
— D. Applications sur différents domaines
Connaître les opinions publiques des dirigeants politiques ou leurs notions sur
les règles et réglementations en vigueur, etc.
De plus, dans le travail de D’Andrea et al. (2015), une catégorisation différente est
donnée aux différentes applications de l’analyse des sentiments :

APPLICATIONS D’ANALYSE DE SENTIMENT


Voix des consommateurs
Réputation de la marque
Publicité en ligne :
AFFAIRES / BUSINESS
Publicité contextuelle Blogger Centric
Publicité axée sur l’insatisfaction (DASA)
Commerce en ligne
Demandes d’avis de vote
POLITIQUE
Clarification des positions des politiciens
Surveillance d’événements réels
Questions juridiques «blawgs»
ACTIONS PUBLIQUES
Propositions de politique ou de réglementa-
tion gouvernementale

ESI 8
CHAPITRE 1. GÉNÉRALITÉS SUR L’ANALYSE DE SENTIMENTS

Systèmes de transport intelligents


Table 1: Tableau qui synthétise les applications d’ana-
lyse de sentiment les plus générales D’Andrea et al.
(2015)

Exemple des résultats de l’analyse des sentiments appliqués aux titres des
actualités

Figure 1 – Exemple d’application de l’analyse des sentiments sur les Titres des
actualités

La figure montre un exemple d’application de l’analyse des sentiments sur les titres
des actualités. Les titres ont été extraits de différentes sources d’Internet (twitter,
forums, sites de journaux, etc ...) Naturellement, la sécurité a été le sujet le plus
discuté dans les actualités. De plus, l’analyse du sentiment de ces titres est positive
dans l’ensemble et individuellement dans chaque catégorie également.

1.2.4 Défis
Les approches de l’analyse des sentiments visent à extraire des mots porteurs de
sentiments positifs et négatifs d’un texte et à classer le texte comme positif, négatif
ou objectif s’il ne trouve pas de mots porteurs de sentiments. À cet égard, elle peut
être considérée comme une tâche de catégorisation de texte.
Dans la classification de texte, il existe de nombreuses classes correspondant à dif-
férents sujets tandis que dans l’analyse des sentiments, nous n’avons que 3 classes
larges. Il semble donc que l’analyse des sentiments est plus facile que la classification
des textes, ce qui n’est pas tout à fait le cas. Les défis généraux peuvent être résumés
comme suit :

Sentiment implicite et sarcasme


Une phrase peut avoir un sentiment implicite même sans la présence de tout
sentiment porteur de mots.
Considérez les exemples suivants :
- Comment peut-on s’asseoir à travers ce film ?

ESI 9
CHAPITRE 1. GÉNÉRALITÉS SUR L’ANALYSE DE SENTIMENTS

- Il faut s’interroger sur la stabilité d’esprit de l’auteur qui a écrit ce livre.


Les deux phrases ci-dessus ne portent pas explicitement de mots portant un sentiment
négatif bien que les deux soient des phrases négatives. Ainsi, l’identification de la
sémantique est plus importante en AS que la détection de syntaxe.

Dépendance du domaine
Il existe de nombreux mots dont la polarité change d’un domaine à l’autre. Consi-
dérez les exemples suivants :
- L’histoire était imprévisible.
- La direction de la voiture est imprévisible.
- Allez lire le livre.
Dans le premier exemple, le sentiment véhiculé est positif alors que le sentiment vé-
hiculé dans le second est négatif. Le troisième exemple a un sentiment positif dans le
domaine du livre mais un sentiment négatif dans le domaine du film (où le réalisateur
est invité à aller lire le livre).

Attentes contrariées
Parfois, l’auteur établit délibérément un contexte pour le réfuter à la fin. Prenons
l’exemple suivant :
Ce film devrait être brillant. Cela ressemble à une grande intrigue, les acteurs sont
de première classe, et le casting de soutien est bon aussi, et Stallone essaie de livrer
une bonne performance. Cependant, cela ne peut pas tenir.
En dépit de la présence de mots dont l’orientation est positive, le sentiment général
est négatif en raison de la dernière phrase cruciale, alors que dans la classification de
texte traditionnelle, cela aurait été classé comme positif car la fréquence des termes
y est plus importante que la présence des termes.

Pragmatique
Il est important de détecter la pragmatique de l’opinion des utilisateurs qui peut
changer profondément le sentiment.
Considérez les exemples suivants :
Je viens de finir de regarder le Barca détruire Ac Milan
Cette finale m’a complètement détruit.
La capitalisation peut être utilisée avec subtilité pour indiquer le sentiment. Le pre-
mier exemple dénote un sentiment positif tandis que le second dénote un sentiment
négatif. Il existe de nombreuses autres façons d’exprimer le pragmatisme.

Connaissance du monde
Souvent, la connaissance du monde doit être incorporée dans le système de détec-
tion des sentiments.
Considérez les exemples suivants :
- C’est un Frankenstein.
- Je viens de terminer le docteur Zhivago pour la première fois et tout ce que je peux
dire, c’est que la Russie craint.
La première phrase dépeint un sentiment négatif tandis que la seconde dépeint un
sentiment positif. Mais il faut connaître Frankenstein et le docteur Zhivago pour
connaître le sentiment.

ESI 10
CHAPITRE 1. GÉNÉRALITÉS SUR L’ANALYSE DE SENTIMENTS

Détection de la subjectivité
Il s’agit de différencier le texte avec opinion et sans opinion. Il est utilisé pour
améliorer les performances du système en incluant un module de détection de subjec-
tivité pour filtrer les faits objectifs. Mais cela est souvent difficile à faire.
Considérez les exemples suivants :
Je déteste les histoires d’amour.
Je n’aime pas le film "Je déteste les histoires".
Le premier exemple présente un fait objectif tandis que le deuxième exemple repré-
sente l’opinion sur un film particulier.

Identification d’entité
Un texte ou une phrase peut avoir plusieurs entités. Il est extrêmement important
de connaître l’entité vers laquelle l’avis est dirigé.
Considérez les exemples suivants :
Samsung est meilleur que Nokia
Ram a battu Hari au football.
Les exemples sont positifs pour Samsung et Ram respectivement mais négatifs pour
Nokia et Hari.

Négation
La gestion de la négation est une tâche difficile en AS.
La négation peut être exprimée de manière subtile même sans l’utilisation explicite
d’un mot négatif. Une méthode souvent suivie pour gérer explicitement la négation
dans des phrases comme «Je n’aime pas le film», consiste à inverser la polarité de
tous les mots apparaissant après l’opérateur de négation (comme pas). Mais cela ne
fonctionne pas pour "je n’aime pas le jeu mais j’aime la mise en scène". Nous devons
donc également considérer la portée de la négation, qui ne s’étend que jusqu’à mais
ici.
Donc, la chose qui peut être faite est de changer la polarité de tous les mots appa-
raissant après un mot de négation jusqu’à ce qu’un autre mot de négation apparaisse.
Mais il peut toujours y avoir des problèmes. Par exemple, dans la phrase «Non seule-
ment j’ai aimé le jeu, mais aussi la direction», la polarité n’est pas inversée après
«non» en raison de la présence de «seulement». Ce type de combinaisons de «non»
avec d’autres mots comme «seulement» doit donc être gardé à l’esprit lors de la
conception de l’algorithme selon Mukherjee and Bhattacharyya (2013).

1.2.5 Le Processus de l’analyse de sentiment


Dans cette section, nous montrerons certains des processus qui ont été utilisés par
les chercheurs pour effectuer une analyse des sentiments, certains utilisent des données
de médias sociaux et d’autres utilisent des techniques d’apprentissage automatique,
tandis que d’autres ont les données déjà annotées, et selon les données et l’objectif
global, le processus diffère.

ESI 11
CHAPITRE 1. GÉNÉRALITÉS SUR L’ANALYSE DE SENTIMENTS

[Link] Définitions des differentes étapes du processus de l’AS utilisées

Phase Définition
Collection La collecte des données réfère à tout processus dont l’objectif est d’ac-
de quérir ou de faciliter l’acquisition des données.
donnée On procède à cette collecte en demandant et en obtenant des don-
nées pertinentes auprès de personnes ou d’organismes au moyen de
procédés adéquats.
Feature Selection L’extraction et la sélection de variables ont été largement discutées et
analysées dans l’exploration de texte depuis longtemps.
(Variable, Attribute Selection)
Feature Extraction La sélection de features sert à filtrer les attributs non pertinents ou
redondants de votre jeu de données.
La principale différence entre la sélection et l’extraction de features
est que la sélection de features conserve un sous-ensemble des features
originales tandis que l’extraction de features en crée de toutes nouvelles.

Et mettant les choses plus simples, quand il s’agit de la classification


de texte, les features sont les mots.
Parce que les features sont faites à partir de mots, d’un contexte plus
large du corpus.
Prétraitement Il est utilisé pour supprimer les données bruyantes, incohérentes et
incomplètes. Pour effectuer la classification, le prétraitement du texte
et l’extraction des fonctionnalités sont une phase préliminaire. Singh
and Kaur (2015)
Annotation L’annotation est une méthodologie pour ajouter des informations à un
document à un certain niveau - un mot ou une phrase, un paragraphe
ou une section ou le document entier. Ces informations sont des "mé-
tadonnées", c’est-à-dire des données sur d’autres données. Petrillo and
Baycroft (2010)
Vectorisation La vectorisation est impérative pour le traitement des données tex-
tuelles dans les applications de traitement du langage naturel.
La vectorisation permet aux machines de comprendre les contenus tex-
tuels en les convertissant en représentations numériques significatives.
Singh and Shashi (2019)
Classification La classification en tant que discipline est généralement considérée dans
le contexte du Machine Learning, un sous-domaine de l’intelligence
artificielle.
La classification est une forme d’apprentissage supervisé, parfois appelé
«apprentissage avec un enseignant». L’algorithme est d’abord présenté
avec un ensemble d’apprentissage initial et devrait en extraire suffisam-
ment d’informations pour gérer avec succès des entrées jamais vues.
Dror (2005)
Evaluation Le but de l’évaluation en Machine Learning est de déterminer l’utilité
de nos classificateurs appris (hypothèses) ou de nos algorithmes d’ap-
prentissage sur diverses collections d’ensembles de données. Japkowicz
(2006)

Table 2 – Tableau des définitions des differentes étapes du processus de l’AS utilisées

[Link] Synthèse des processus d’AS de certaines œuvres


Les travaux que nous allons expliquer leurs processus sont : Shoukry and Rafea
(2012), Barretto (2017), Elouardighi et al. (2018), Chader et al. (2019), Magliani et al.
(2016).

ESI 12
CHAPITRE 1. GÉNÉRALITÉS SUR L’ANALYSE DE SENTIMENTS

- Processus proposé dans le cadre de « L’Analyse du sentiment arabe au


niveau de la phrase »

Figure 2 – Le processus ML de l’analyse du sentiment de la phrase, Shoukry and


Rafea (2012)

Le processus ML de l’analyse des sentiments de la phrase proposé par Shoukry and


Rafea (2012) en langue arabe à l’aide de tweets arabes du site Web du réseau social
twitter fonctionne comme suit : Ils commencent par obtenir les tweets de Twitter,
puis ils passent devant chaque tweet et le marquent comme positif ou négatif. Après
cela, les entités de chaque tweet seront extraites et représentées dans un vecteur de
features. Ensuite, ces vecteurs de features seront utilisés dans la phase d’apprentissage
du classificateur.

- Processus proposé dans le cadre d’une enquête (Survey) complète.

La figure suivante représente ke processus proposé dans le cadre d’une enquête (Sur-
vey) complète qui a simplifié les outils et techniques d’analyse des sentiments.
Ce processus est composé de quatre étapes :
— Collecte de données : la première étape du processus d’analyse des sen-
timents consiste à collecter des données. Les principales sources de données
proviennent des critiques de produits obtenues sur les blogs, les réseaux so-
ciaux et les forums en ligne. Les données obtenues à partir de ces sources ne
sont pas organisées et sont exprimées dans différents contextes et vocabulaires.
L’utilisation d’une analyse manuelle pour de telles données entraîne une com-
plexité temporelle élevée et donc un ralentissement du processus.
— Prétraitement : les données collectées à l’étape précédente sont prétraitées.
Le prétraitement implique la suppression du contenu non textuel des données
obtenues. Certaines étapes de prétraitement populaires incluent la suppression
des mots vides et des émoticônes, la suppression des caractères spéciaux et
de la ponctuation, la suppression des URL, le stemming, la tokenisation et
l’extraction des fonctionnalités.
— Identification du sentiment : la classification est une technique utilisée
pour classer les données en différentes catégories. Cette étape est utilisée afin

ESI 13
CHAPITRE 1. GÉNÉRALITÉS SUR L’ANALYSE DE SENTIMENTS

Figure 3 – Etapes de l’analyse des sentiments Dans le travail de Barretto (2017)

de classer les données en trois classes ; positif, négatif et neutre. Ces classes sont
également appelées orientations d’opinion, orientations de sentiment, orienta-
tions sémantiques ou polarités. Cette étape est appelée identification des senti-
ments. L’analyse des sentiments peut désormais être basée sur la classification
de la polarité du texte au niveau du document, de la phrase ou de l’aspect
positif, négatif ou neutre.
— Présentation des résultats : La dernière étape de l’analyse des sentiments
consiste à présenter les résultats sous différentes formes. Les résultats du texte
peuvent être affichés à l’aide d’une représentation graphique. Une ligne de
temps de sentiment peut également être générée pour une certaine période de
temps avec des valeurs comme la fréquence et les moyennes.

- Processus proposé dans le cadre de Analyse des sentiments à partir des


commentaires Facebook publiés en Arabe standard ou dialectal marocain
par une approche d’apprentissage automatique

Figure 4 – Etapes du processus proposé pour l’analyse des sentiments selon Elouar-
dighi et al. (2018)

ESI 14
CHAPITRE 1. GÉNÉRALITÉS SUR L’ANALYSE DE SENTIMENTS

L’AS des commentaires Facebook écrits en ASM ou en ADM selon une approche
d’apprentissage automatique, nécessite l’implémentation de plusieurs étapes. La figure
4 fournit un aperçu global de ce processus selon le travail de Elouardighi et al. (2018).
Ce processus commence par la collecte des commentaires et leur annotation à l’aide
du crowdsourcing suivi d’une phase de prétraitement du texte afin d’extraire des
mots arabes réduits à leur racine. Ces mots vont être utilisés pour la construction des
variables d’entrée en utilisant plusieurs combinaisons de schémas d’extraction et de
pondération. Pour réduire la dimensionnalité, une méthode de sélection de variables
est appliquée.

- Processus proposé dans le cadre d’un travail de l’analyse de sentiment


pour l’Arabizi fait pour le dialecte algerien

Figure 5 – Etapes du processus proposé selon le travail de Chader et al. (2019)

Pour accomplir la classification, Chader et al. (2019) ont proposé un processus


composé principalement de 6 étapes principales (voir figure 6) : i) Collecte de don-
nées pour recueillir les commentaires algériens de différents réseaux sociaux. ii) Dé-
tection de langue permettant d’identifier les commentaires algériens parmi les autres
langues. iii) Annotation des données consistant à associer un label de polarité à chaque
commentaire du jeu de données algérien. iv) Le prétraitement des données considéré
comme la principale étape de notre approche présentée comme un pipeline visant
à traiter l’ensemble de données algérien et à en générer un valide et propre, prêt à
être exploité par la machine modèles d’apprentissage. v) Représentation des données
utilisée pour générer un vecteur à partir d’une entrée de texte. vi) Classification des
données dans laquelle le classifieur est défini sur la base de modèles d’apprentissage
automatique afin de détecter la classe de messages positive, négative ou neutre.

- Processus proposé dans le cadre d’un travail comparatif entre les tech-
niques de prétraitement pour l’analyse des sentiments sur Twitter.
Magliani et al. (2016) proposent le processus suivant : Premièrement, les données
doivent être préparées afin d’obtenir un ensemble de données - l’ensemble d’appren-
tissage - au moyen de méthodes de prétraitement et de sélection des caractéristiques.
Ensuite, un tel ensemble de données est impliqué dans l’étape d’apprentissage, qui
utilise des algorithmes ML et produit un classificateur qualifié. Enfin, le classificateur
doit être testé sur un autre ensemble de données - l’ensemble de test.

ESI 15
CHAPITRE 1. GÉNÉRALITÉS SUR L’ANALYSE DE SENTIMENTS

Figure 6 – Etapes du processus proposé selon la recherche de Magliani et al. (2016)

[Link] Comparaison entre les différentes étapes utilisées en analyse de


sentiments dans quelques travaux

Travail Phase Collection Data Language Data Annota- Pre-Traitement


Detection tion
Barretto (2017) Faite Faite
Shoukry and Rafea (2012) Faite Faite Faite
Elouardighi et al. (2018) Faite Faite
Magliani et al. (2016) Faite Faite
Chader et al. (2019) Faite Faite Faite Faite

Table 3 – Étapes du processus de l’AS dans quelques travaux, Partie 01

Travail Phase Extraction Selection de Vectorisation Classification Evaluation


de variables Variables
Barretto (2017) Faite Faite
Shoukry and Rafea (2012) Faite Faite Faite
Elouardighi et al. (2018) Faite Faite Faite Faite
Magliani et al. (2016) Faite Faite
Chader et al. (2019) Faite Faite Faite

Table 4 – Étapes du processus de l’AS dans quelques travaux, Partie 02

Les différences qui existent entre ces cinq processus malgré leur objectif commun
est la nature des données et les circonstances de leur collecte, qu’elles soient annotées
ou non, donc, allons-nous chercher le sentiment dans un document ou une phrase ?
quel type de prétraitement est nécessaire ? quelle est la représentation la plus appro-
priée ?
Toutes ces questions doivent être répondues et tous les objectifs nécessaires doivent
être fixés avant de déterminer les étapes du processus, afin que tout soit justifié, car
ce qui fonctionne pour un corpus anglais annoté, ne fonctionnera pas pour un corpus
non-annoté qui est mixte entre l’arabe et le français.

Comme il apparaît, ces travaux sélectionnés ont chacun appliqué ses propres mé-
thodes pour procéder au processus d’analyse des sentiments.
Cela revient à plusieurs raisons, la première étant la différence de terminologie et le

ESI 16
CHAPITRE 1. GÉNÉRALITÉS SUR L’ANALYSE DE SENTIMENTS

fait que certains travaux considèrent certaines phases implicites dans d’autres phases.
Par exemple, Barretto (2017) considère que la sélection de caractéristiques et l’anno-
tation font partie du prétraitement, car pour eux le prétraitement n’est pas seulement
une élimination du bruit.
Nous mentionnerons également que le processus de vectorisation (représentation) est
également considéré parmi plusieurs auteurs, comme (Magliani et al. (2016), Elouar-
dighi et al. (2018)) l’une des étapes de classification.
Quand à la phase d’annotation, c’est une phase impérative si l’on veut utiliser l’ap-
prentissage automatique et la classification, donc tous les travaux qui n’ont pas men-
tionné l’annotation signifie qu’ils l’ont fait dans le cadre de la formation (training) de
modèle comme le travail de Magliani et al. (2016) .

La deuxième raison serait la nature des données, comment elles sont et comment
nous voulions qu’elles soient, certaines données sont déjà annotées (jeux de données
prédéfinis) c’est pourquoi la phase n’est pas mentionnée,
Alors que certaines données nécessitent la phase de détection de la langue Chader
et al. (2019), dans le cas où les données contiennent plusieurs langues et il nous est
demandé de ne traiter qu’une seule langue spécifique.

En conclusion, même si différentes approches sont appliquées et certaines d’entre


elles considèrent certaines phases implicites dans d’autres, il est impératif que toute
analyse de sentiment passe par ces phases :
Collecte des données ==> Annotation des données ==> prétraitement ==> Vecto-
risation ==> Sélection des fonctionnalités ==> Classification ==> Évaluation.

1.2.6 Les Approches d’analyse des sentiments

Figure 7 – Techniques de classification des sentiments

ESI 17
CHAPITRE 1. GÉNÉRALITÉS SUR L’ANALYSE DE SENTIMENTS

Comme le montre la figure 7 ci-dessus, les techniques de classification des senti-


ments peuvent être grossièrement divisées en une approche d’apprentissage automa-
tique, une approche basée sur le lexique et une approche hybride. Maynard and Funk
(2011)

L’approche basée sur le lexique


Cette approche repose sur un lexique des sentiments, une collection de termes de
sentiments connus et précompilés.
Elle est divisée en une approche basée sur un dictionnaire et une approche basée
sur un corpus qui utilisent des méthodes statistiques ou sémantiques pour trouver la
polarité des sentiments.
L’approche basée sur le lexique dépend de la recherche du lexique d’opinion utilisé
pour analyser le texte. Il existe deux méthodes dans cette approche.
— Approche basée sur un dictionnaire : C’est une méthode qui traduit un
mot par mot en dictionnaire sans corréler la signification des mots entre eux.
Elle dépend de la recherche de mots de semences d’opinion, puis recherche le
dictionnaire de leurs synonymes et antonymes.
— Approche basée sur le corpus : Elle a été largement utilisée pour explorer
les textes écrits et parlés afin d’attribuer un sentiment facteur de mots qui
dépendent de la fréquence de leur occurrence. D’Andrea et al. (2015)
Cette Methode commence par une liste de départ de mots d’opinion, puis
trouve d’autres mots d’opinion dans un grand corpus pour aider à trouver des
mots d’opinion avec des orientations spécifiques au contexte. Cela pourrait être
fait en utilisant des méthodes statistiques ou sémantiques Medhat et al. (2014)

L’approche Machine Learning (ML)


Dans cette approche, on applique les célèbres algorithmes ML et utilise des fonc-
tionnalités linguistiques.
Les méthodes de classification de texte utilisant l’approche ML peuvent être grossiè-
rement divisées en méthodes d’apprentissage supervisées et non supervisées.
Les méthodes supervisées utilisent un grand nombre de documents de formation la-
bellisés. Les méthodes non supervisées sont utilisées lorsqu’il est difficile de trouver
ces documents de formation étiquetés. Medhat et al. (2014)
L’apprentissage automatique utilise une approche supervisée lorsqu’il existe un en-
semble fini de classes (positives et négatives et neutres, Ou un autre ensemble bien
défini : Spam, Assisst, Support, Etc).
Le principal avantage de cette méthode est la capacité d’adapter et de créer des
modèles formés à des fins et des contextes spécifiques. D’Andrea et al. (2015)
— Apprentissage supervisé : L’apprentissage supervisé est le processus consis-
tant à déduire une fonction à partir de données de formation étiquetées.
Les données de training se composent d’un ensemble d’exemples d’entraine-
ment.
L’apprentissage supervisé est une solution largement utilisée à des fins de clas-
sification et est utilisé dans la plupart des techniques de classification des
sentiments.
Les techniques de classification des sentiments incluent SVM, Neural Network
et Decision tree Classifiers, D’autres algorithmes couramment utilisés incluent
le K-Nearest Neighbour, Bayesian [Link] (2017)

ESI 18
CHAPITRE 1. GÉNÉRALITÉS SUR L’ANALYSE DE SENTIMENTS

— Apprentissage non supervisé : L’apprentissage non supervisé est un type


d’algorithme d’apprentissage automatique qui est utilisé pour trouver des in-
férences à partir d’ensembles de données constitués de données d’entrée sans
réponses étiquetées.
Dans la plupart des techniques de classification, en particulier les données tex-
tuelles, il est très difficile de créer des données étiquetées de formation et cela
nécessite une grande partie de l’effort humain. L’utilisation de techniques non
supervisées peut aider à surmonter l’inconvénient. Barretto (2017)

L’approche hybride
Elle combine les deux approches et est très courante, les lexiques de sentiment
jouant un rôle clé dans la majorité des méthodes. Medhat et al. (2014)
Les différentes approches et les algorithmes les plus populaires de SC sont illustrés
sur la figure 7 comme mentionné précédemment.
Les principaux avantages des approches hybrides sont la symbiose lexique / appren-
tissage, la détection et la mesure des sentiments au niveau du concept et la moindre
sensibilité aux changements dans le domaine du sujet.
Alors que la principale limitation est que les avis sont très bruyants (les mots non
pertinents pour le sujet de l’examen) reçoivent souvent un score neutre car la méthode
ne détecte aucun sentiment. D’Andrea et al. (2015)

Le tableau suivant est un résumé des trois approches de l’analyse des sentiments, où
sont mentionnées pour chaque approche ses techniques les plus connues, ses caracté-
ristiques techniques, ses avantages et ses limites.

APPROCHE MÉTHODES CARACTÉRISTIQUES AVANTAGES ET LI-


/ TECHNIQUES MITES
Apprentissage Réseaux bayésiens Présence et fréquence AVANTAGES
automatique Classification Naive des termes la capacité d’adap-
(Machine Lear- Bayes Partie des informations ter et de créer des
ning) Entropie maximale vocales modèles formés à des
Les réseaux de neu- Négations fins et des contextes
rones Mots et phrases d’opi- spécifiques
Support vector ma- nion
chine LIMITES
la faible applicabilité
aux nouvelles données
à cause de la nécessité
de la disponibilité
de données labelli-
sées qui pourraient
être coûteuses voire
prohibitives

ESI 19
CHAPITRE 1. GÉNÉRALITÉS SUR L’ANALYSE DE SENTIMENTS

Basé sur le Approche basée sur le Construction manuelle AVANTAGES


lexique (Lexicon dictionnaire Basé sur un corpus Une couverture de
Based) Approche basée sur le Basé sur un diction- terme plus large.
corpus naire
Approches d’ensemble LIMITES
nombre fini de mots
dans les lexiques et
attribution d’une
orientation et d’un
score de sentiment
fixes aux mots
Hybride Apprentissage auto- Lexique des sentiments AVANTAGES
matique construit à l’aide de lexique / symbiose
Basé sur le lexique ressources publiques d’apprentissage, la
pour la détection ini- détection et la me-
tiale des sentiments sure du sentiment au
Mots de sentiment en niveau du concept et
tant que caractéris- la moindre sensibilité
tiques de la méthode aux changements dans
d’apprentissage auto- le domaine du sujet
matique
LIMITES
critiques bruyantes
Table 5: Résumé des approches de classification des
sentiments, selon D’Andrea et al. (2015)

1.2.7 Outils d’analyse des sentiments


Les progrès récents dans le domaine de l’analyse des sentiments comprennent des
recherches sur les derniers outils d’analyse des sentiments.
Les outils les plus couramment utilisés pour détecter la polarité des sentiments sont
basés sur des émoticônes.
Les émoticônes sont basées sur le visage et symbolisent des sentiments heureux ou
tristes. Pour extraire la polarité des sentiments, des émoticônes courantes peuvent
être utilisées à partir de diverses sources. Ces émoticônes peuvent être utilisées en
combinaison avec les dernières techniques d’extraction de données dans l’analyse des
sentiments qui servent de données d’apprentissage dans la plupart des techniques su-
pervisées.

Barretto (2017) a défini dans son travail certains des outils d’analyse des sentiments,
qui sont :

• Happiness Index est un outil qui utilise des normes affectives pour les mots
anglais. Il fournit un score pour le texte de 1 à 9 indiquant la quantité de bonheur.

• Un autre outil est SentiWordNet. Cet outil est utilisé comme une ressource lexicale
pour l’exploration d’opinion. Il est basé sur le dictionnaire WordNet. SentiWordNet
attribue à chaque synset de WordNet trois scores de sentiment : positivité, négativité,

ESI 20
CHAPITRE 1. GÉNÉRALITÉS SUR L’ANALYSE DE SENTIMENTS

objectivité.

• Le programme d’affect positif et négatif (PANAS) se compose de deux


échelles d’humeur, à savoir l’affect positif et l’autre qui mesure l’affect négatif.
La version modifiée de PANAS-t permet de suivre l’augmentation ou la diminution
des sentiments au fil du temps. Cette méthode est basée sur un large ensemble de
mots associés à onze humeurs.
La méthode calcule le score de chaque sentiment pour une période de temps donnée
sous forme de valeurs comprises entre -1,0 et 1,0 pour indiquer le changement.

• Septic Net est un outil utilisé pour effectuer une analyse des sentiments au niveau
du concept.
Les tâches comprennent la reconnaissance des émotions et la détection de la polarité
qui tient compte de la sémantique. Il ne se concentre pas beaucoup sur les fréquences
de cooccurrence de mots. Il peut être considéré comme un cadre ou une base de
connaissances.

• Sentic Net se compose d’un ensemble d’outils et de techniques d’analyse des


sentiments combinant les connaissances issues du traitement du langage naturel et
des approches d’apprentissage automatique. Il se concentre principalement sur la re-
présentation sémantique préservant les concepts du langage naturel. En tant que base
de connaissances, sentic net fournit un ensemble de sémantiques avec de nombreux
concepts de langage naturel.
La sémantique est ces concepts qui sont liés sémantiquement au concept d’entrée.

• EWGA utilise un algorithme génétique pondéré par l’entropie pour sélectionner


efficacement les caractéristiques pour la classification des sentiments qui utilise un
modèle wrapper, où les performances d’un sous-ensemble de caractéristiques sont uti-
lisées comme valeur de fonction de fitness dans l’algorithme génétique.

• Linguistic Inquiry Word Count analyse les fichiers texte mot par mot à l’aide
d’un dictionnaire interne de plus de 2 300 des mots et des tiges de mots les plus
courants.
LIWC classe les mots en des dizaines de catégories linguistiques et psychologiques qui
exploitent les processus sociaux, cognitifs et affectifs.

Conclusion
Dans ce premier chapitre, nous avons expliqué en détail ce qu’est l’analyse de
sentiment, de la signification de ses mots fondamentaux à l’explication de ses niveaux,
applications et défis.
De plus nous avons également cité le processus global et montré qu’il peut différer d’un
cas à l’autre en fonction des données disponibles, des circonstances de leur collecte et
des objectifs généraux du cas.
Enfin, nous avons brièvement présenté les trois approches existantes : Lexicon-based,
Machine Learning et Hybride et les outils proposés.
Dans le chapitre suivant nous allons parcourir les concepts et méthodes de base du
Machine Learning.

ESI 21
Chapitre 2

Généralités sur l’apprentissage


automatique

Introduction
L’apprentissage automatique est la science qui permet aux ordinateurs d’agir sans
être explicitement programmés. Au cours de la dernière décennie, l’apprentissage au-
tomatique nous a donné des voitures autonomes, une reconnaissance vocale pratique,
une recherche Web efficace et une compréhension considérablement améliorée du gé-
nome humain. L’apprentissage automatique est si répandu aujourd’hui que nous l’uti-
lisons probablement des dizaines de fois par jour sans le savoir. De nombreux cher-
cheurs pensent également que c’est la meilleure façon de progresser vers l’IA au niveau
humain.

Dans ce chapitre, nous discuterons les techniques d’apprentissage automatique les plus
efficaces avec les fondements théoriques de l’apprentissage, les domaines de l’applica-
tion et les procédés, avec l’explication des algorithmes et des méthodes d’évaluation
les plus connus.

2.1 Définition de l’apprentissage Automatique (Ma-


chine Learning)
Samuel a défini l’apprentissage automatique comme un « domaine d’étude qui
donne aux ordinateurs la possibilité d’apprendre sans être explicitement programmé
». Samuel (1959) Dans son livre «Machine Learning» Tom Mitchell a défini L’appren-
tissage automatique (ou apprentissage artificiel) par «Le domaine de l’apprentissage
automatique concerne la question de savoir comment construire des programmes in-
formatiques qui s’améliorent automatiquement avec l’expérience. Mitchell (1997)

L’objectif visé est de rendre la machine ou l’ordinateur capable d’apporter des so-
lutions à des problèmes compliqués, par le traitement d’une quantité astronomique
d’informations. Cela offre ainsi une possibilité d’analyser et de mettre en évidence les
corrélations qui existent entre deux ou plusieurs situations données et de prédire leurs
différentes implications.

22
CHAPITRE 2. GÉNÉRALITÉS SUR L’APPRENTISSAGE AUTOMATIQUE

2.2 Les différents domaines d’application de l’appren-


tissage automatique
L’apprentissage automatique est utilisé n’importe où, de l’automatisation des
tâches banales à l’offre d’informations intelligentes, les industries de tous les sec-
teurs tentent d’en tirer profit. Vous utilisez peut-être déjà un appareil qui l’utilise.
Par exemple, un tracker de fitness portable comme Fitbit, ou un assistant domestique
intelligent comme Google Home. Mais il existe beaucoup plus d’exemples de ML en
cours d’utilisation.

2.2.1 Prédiction
L’apprentissage automatique peut également être utilisé dans les systèmes de pré-
diction. Compte tenu de l’exemple de prêt, pour calculer la probabilité d’un défaut,
le système devra classer les données disponibles en groupes.

2.2.2 Reconnaissance d’image


L’apprentissage automatique peut également être utilisé pour la détection de vi-
sages dans une image. Il existe une catégorie distincte pour chaque personne dans une
base de données de plusieurs personnes.

2.2.3 Reconnaissance vocale


C’est la traduction des mots prononcés dans le texte. Il est utilisé dans les re-
cherches vocales et plus encore. Les interfaces utilisateur vocales incluent la numéro-
tation vocale, le routage des appels et le contrôle de l’Appliance. Il peut également
être utilisé une simple saisie de données et la préparation de documents structurés.

2.2.4 Diagnostics médicaux


Une application de l’apprentissage automatique dans un contexte de soins de santé
est le diagnostic numérique. ML peut détecter les schémas de certaines maladies dans
les dossiers médicaux électroniques des patients et informer les cliniciens de toute
anomalie. En ce sens, la technique de l’intelligence artificielle peut être comparée
à une deuxième paire d’yeux qui peut évaluer la santé des patients sur la base des
connaissances extraites d’ensembles de données volumineuses en résumant des millions
d’observations de maladies qu’un patient pourrait éventuellement avoir.

2.2.5 Secteur financier et commerce


Les entreprises utilisent le BC dans les enquêtes sur les fraudes et les vérifications
de crédit. L’automatisation des processus est l’une des applications les plus courantes
de l’apprentissage automatique en finance. La technologie permet de remplacer le
travail manuel, d’automatiser les tâches répétitives et d’augmenter la productivité.
En conséquence, l’apprentissage automatique permet aux entreprises d’optimiser les
coûts, d’améliorer l’expérience client et de développer les services.

ESI 23
CHAPITRE 2. GÉNÉRALITÉS SUR L’APPRENTISSAGE AUTOMATIQUE

2.3 Les différents procédés d’apprentissage


L’apprentissage automatique implique selon Oladipupo Ayodele (2010) de nom-
breux systèmes d’apprentissage qui définissent ses différents modes de fonctionnement.
Il s’agit de :

2.3.1 Apprentissage Supervisé


Les algorithmes d’apprentissage supervisé sont formés à l’aide d’exemples étique-
tés, comme une entrée dont la sortie souhaitée est connue. Par exemple, un équipement
peut avoir des points de données étiquetés « F » (échoué) ou « R » (exécutions).
L’algorithme d’apprentissage reçoit un ensemble d’entrées avec les sorties correctes
correspondantes, et l’algorithme apprend en comparant sa sortie réelle avec des sorties
correctes pour trouver des erreurs. Il modifie ensuite le modèle en conséquence.
Grâce à des méthodes telles que la classification, la régression, la prédiction et l’aug-
mentation du gradient, l’apprentissage supervisé utilise des modèles pour prédire les
valeurs de l’étiquette sur des données supplémentaires non étiquetées. L’apprentis-
sage supervisé est couramment utilisé dans les applications où les données historiques
prédisent des événements futurs probables. Par exemple, il peut prévoir quand les
transactions par carte de crédit sont susceptibles d’être frauduleuses ou quel client
d’assurance est susceptible de déposer une réclamation.

2.3.2 L’apprentissage Non Supervisé


Il est utilisé contre des données qui n’ont pas d’étiquettes historiques. On ne dit
pas au système la « bonne réponse ». L’algorithme doit comprendre ce qui est affiché.
Le but est d’explorer les données et de trouver une structure à l’intérieur.
L’apprentissage non supervisé fonctionne bien sur les données transactionnelles. Par
exemple, il peut identifier des segments de clients avec des attributs similaires qui
peuvent ensuite être traités de manière similaire dans les campagnes marketing. Ou
il peut trouver les principaux attributs qui séparent les segments de clientèle les uns
des autres.
Les techniques populaires incluent les cartes auto-organisées, la cartographie du plus
proche voisin, le regroupement des k-moyennes et la décomposition des valeurs singu-
lières. Ces algorithmes sont également utilisés pour segmenter les rubriques de texte,
recommander des éléments et identifier les données aberrantes.

2.3.3 L’apprentissage semi-supervisé


Il est utilisé pour les mêmes applications que l’apprentissage supervisé. Mais il
utilise à la fois des données étiquetées et non étiquetées pour la formation - générale-
ment une petite quantité de données étiquetées avec une grande quantité de données
non étiquetées (car les données non étiquetées sont moins coûteuses et nécessitent
moins d’efforts pour les acquérir).
Ce type d’apprentissage peut être utilisé avec des méthodes telles que la classifica-
tion, la régression et la prédiction. L’apprentissage semi-supervisé est utile lorsque le
coût associé à l’étiquetage est trop élevé pour permettre un processus de formation
entièrement étiqueté. Les premiers exemples de cela incluent l’identification du visage
d’une personne sur une webcam.

ESI 24
CHAPITRE 2. GÉNÉRALITÉS SUR L’APPRENTISSAGE AUTOMATIQUE

2.3.4 L’apprentissage par renforcement


Il est souvent utilisé pour la robotique, les jeux et la navigation. Avec l’appren-
tissage par renforcement, l’algorithme découvre par essais et erreurs les actions qui
rapportent le plus. Ce type d’apprentissage a trois composantes principales : l’agent
(l’apprenant ou le décideur), l’environnement (tout ce avec quoi l’agent interagit) et les
actions (ce que l’agent peut faire). L’objectif est que l’agent choisisse des actions qui
maximisent la récompense attendue sur une durée donnée. L’agent atteindra l’objectif
beaucoup plus rapidement en suivant une bonne politique. Le but de l’apprentissage
par renforcement est donc d’apprendre la meilleure politique.

2.4 Les différents Algorithmes d’apprentissage auto-


matique
Il existe différents algorithmes d’apprentissage automatique développés pour ré-
soudre des problèmes complexes du monde réel, comme le montre la figure 8. Ces
algorithmes sont hautement automatisés et auto-modifiables car ils continuent de
s’améliorer avec le temps avec l’ajout d’une quantité accrue de données et avec une
intervention humaine minimale requise. Il existe différents algorithmes d’apprentis-
sage automatique, dans l’apprentissage supervisé et non supervisé, développés pour
résoudre des problèmes complexes du monde réel. Ces algorithmes sont hautement
automatisés et auto-modifiables car ils continuent de s’améliorer avec le temps avec
l’ajout d’une quantité accrue de données et avec une intervention humaine minimale
requise.

Figure 8 – Schéma des algorithmes de l’apprentissage automatique, Kaur (2019)

ESI 25
CHAPITRE 2. GÉNÉRALITÉS SUR L’APPRENTISSAGE AUTOMATIQUE

2.4.1 Algorithmes d’apprentissage supervisé


Les algorithmes de l’apprentissage supervisé sont divers et différents, néanmoins
ils se rejoignent dans l’exigence d’un ensemble d’exemples étiquetés afin de faire ap-
prendre les modèles. Dans le suivant, on va présenter les plus utilisés.

Naïve Bayes
Pour calculer la probabilité qu’un événement se produise, étant donné qu’un autre
événement s’est déjà produit, nous utilisons le théorème de Bayes. Pour calculer la
probabilité que l’hypothèse (h) soit vraie, compte tenu de nos connaissances anté-
rieures (d), nous utilisons le théorème de Bayes comme suit :

P(h|d)= (P(d|h) P(h)) / P(d)

où :
P (h | d) = probabilité postérieure. La probabilité que l’hypothèse h soit vraie, étant
donné les données d, où P (h | d) = P (d1 | h) P (d2 | h). . . .P (dn | h) P (d)
P (d | h) = vraisemblance. La probabilité des données d étant donné que l’hypothèse
h était vraie.
P (h) = probabilité antérieure de classe. La probabilité que l’hypothèse h soit vraie
(quelles que soient les données)
P (d) = Probabilité a priori du prédicteur. Probabilité des données (quelle que soit
l’hypothèse)
Cet algorithme est appelé « naïf » car il suppose que toutes les variables sont indépen-
dantes les unes des autres, ce qui est une hypothèse naïve à faire dans des exemples
réels. Bishop (2001)

Machine a vecteurs support SVM

Figure 9 – Un problème de discrimination à deux classes, avec deux exemples de


séparatrices selon la distribution des données

L’algorithme de machine à vecteur de support est utilisé pour les problèmes de


classification ou de régression.
En cela, les données sont divisées en différentes classes en trouvant une ligne particu-
lière (hyperplan) qui sépare l’ensemble de données en plusieurs classes.
L’algorithme de machine à vecteur de support essaie de trouver l’hyperplan qui maxi-
mise la distance entre les classes (connu sous le nom de maximisation de marge) car
cela augmente la probabilité de classer les données plus précisément. Shalev-Shwartz

ESI 26
CHAPITRE 2. GÉNÉRALITÉS SUR L’APPRENTISSAGE AUTOMATIQUE

and Ben-David (2014)


Un exemple d’utilisation de l’algorithme Support Vector Machine est la comparaison
des performances des stocks pour les stocks du même secteur. Cela aide à gérer les
décisions d’investissement des institutions financières.

Arbres de décision - Decision Tree


L’arbre de décision est un algorithme qui se base sur un modèle de graphe (les
arbres) pour définir la décision finale. Chaque nœud comporte une condition, et les
branchements sont en fonction de cette condition (Vrai ou Faux). Plus on descend
dans l’arbre, plus on cumule les conditions. L’image ci-dessous illustre ce fonctionne-
ment.

L’arbre de décision de la figure 10 ci-dessous classe si une personne achètera une


voiture de sport ou une mini-fourgonnette en fonction de son âge et de son état civil.
Si la personne a plus de 30 ans et n’est pas mariée, nous parcourons l’arbre comme
suit : «plus de 30 ans ?» -> oui -> «marié ?» -> non. Par conséquent, le modèle sort
une voiture de sport. Cord and Cunningham (2008)

Figure 10 – Un problème de discrimination à deux classes, avec deux exemples de


séparatrices selon la distribution des données, Wang (2020)

Les réseaux de neurones (Neural Networks)


Les réseaux de neurones sont inspirés des neurones du système nerveux humains.
Ils permettent de trouver des patterns complexes dans les données. Ces réseaux de
neurones apprennent une tâche spécifique en fonction des données d’entrainement.
Sammut and Webb (2017)
Les réseaux de neurones se composent de nœuds (les cercles dans l’image). Dans ces
réseaux, on retrouve le tiers d’entrée (Input Layer) qui va recevoir les données d’en-
trées. L’Input Layer va propager les données par la suite aux tiers cachés (Hidden
Layers).
Finalement le Tiers de sortie (le plus à droite) permet de produire le résultat de clas-
sification. Chaque tiers du réseau de neurones est un ensemble d’interconnexions des

ESI 27
CHAPITRE 2. GÉNÉRALITÉS SUR L’APPRENTISSAGE AUTOMATIQUE

noeuds d’un tiers avec ceux des autres tiers.

Figure 11 – Réseau neuronal artificiel, Mylavarapu (2018)

2.4.2 Algorithmes d’apprentissage non-supervisé


Des modèles d’apprentissage non supervisés sont utilisés lorsque nous n’avons que
les variables d’entrée (X) et aucune variable de sortie correspondante. Ils utilisent des
données d’apprentissage non étiquetées pour modéliser la structure sous-jacente des
données.
Nous présentons de trois des algorithmes les plus utilisés dans l’apprentissage non
supervisé :

Apriori
L’algorithme Apriori est utilisé dans une base de données transactionnelle pour
exploiter des ensembles d’éléments fréquents, puis générer des règles d’association. Il
est couramment utilisé dans l’analyse du panier de consommation, où l’on vérifie les
combinaisons de produits qui coexistent fréquemment dans la base de données.
En général, nous écrivons la règle d’association pour «si une personne achète l’article
X, alors il achète l’article Y» comme : X -> Y.
Exemple : si une personne achète du lait et du sucre, elle achètera probablement
du café en poudre. Cela pourrait être écrit sous la forme d’une règle d’association
comme : lait, sucre -> café en poudre. Les règles d’association sont générées après
avoir franchi le seuil de soutien et de confiance.
La mesure de support permet d’élaguer le nombre d’ensembles d’articles candidats
à prendre en compte lors de la génération fréquente d’ensembles d’articles. Cette
mesure de soutien est guidée par le principe Apriori. Le principe Apriori stipule que si
un ensemble d’éléments est fréquent, alors tous ses sous-ensembles doivent également
être fréquents.

ESI 28
CHAPITRE 2. GÉNÉRALITÉS SUR L’APPRENTISSAGE AUTOMATIQUE

Figure 12 – Formules de support, de confiance et de portance pour la règle d’asso-


ciation X-> Y

K-means
K-means est un algorithme itératif qui regroupe des données similaires en grappes.
Il calcule les centroïdes de k grappes et attribue un point de données à cette grappe
ayant la plus petite distance entre son centre de gravité et le point de données.

Figure 13 – étapes de l’algorithme K-means.

On commence par choisir une valeur de k. Ici, disons k = 3. Ensuite, nous attri-
buons au hasard chaque point de données à l’un des 3 clusters. Calculez le centroïde
du cluster pour chacun des clusters. Les étoiles rouges, bleues et vertes désignent les
centroïdes pour chacun des 3 groupes.
Ensuite, réaffectez chaque point au centre de gravité du cluster le plus proche. Dans
la figure ci-dessus, les 5 points supérieurs ont été attribués au cluster avec le centroïde
bleu.
Suivez la même procédure pour attribuer des points aux grappes contenant les cen-
troïdes rouges et verts.
Ensuite, calculez les centroïdes pour les nouveaux clusters. Les vieux centroïdes sont
des étoiles grises ; les nouveaux centroïdes sont les étoiles rouges, vertes et bleues.
Enfin, répétez les étapes 2-3 jusqu’à ce qu’il n’y ait pas de commutation de points d’un
cluster à un autre. Une fois qu’il n’y a pas de commutation pour 2 étapes consécutives,
quittez l’algorithme K-means.

ESI 29
CHAPITRE 2. GÉNÉRALITÉS SUR L’APPRENTISSAGE AUTOMATIQUE

L’analyse en composantes principales (ACP)


Cet algorithme ACP (en anglais PCA) est utilisé pour rendre les données faciles à
explorer et à visualiser en réduisant le nombre de variables. Cela se fait en capturant
la variance maximale des données dans un nouveau système de coordonnées avec des
axes appelés « composants principaux ».
Chaque composant est une combinaison linéaire des variables d’origine et est orthogo-
nal les uns aux autres. L’orthogonalité entre les composants indique que la corrélation
entre ces composants est nulle.
La première composante principale capture la direction de la variabilité maximale
dans les données. La deuxième composante principale capture la variance restante
dans les données mais a des variables non corrélées avec la première composante. De
même, tous les composants principaux successifs (PC3, PC4 et ainsi de suite) cap-
turent la variance restante tout en n’étant pas corrélés avec le composant précédent.

Figure 14 – Les 3 variables originales (gènes) sont réduites à 2 nouvelles variables


appelées composants principaux (CP)

2.5 Évaluation
Évaluer les performances d’un modèle d’apprentissage automatique fait partie in-
tégrante de tout projet de science des données. L’évaluation du modèle vise à estimer
la précision de généralisation d’un modèle sur des données futures (invisibles / hors
échantillon). Dans la section suivante, nous présenterons les métriques qui nous per-
mettent d’évaluer un modèle et les étapes de leur calcul.

2.5.1 Matrice de confusion


Soit une tâche de classification supervisée où la variable à prédire a un nombre
quelconque de modalités, y 1, 2,. . . . . . ,q. L’évaluation d’un classifieur se base sur la
matrice de confusion, que l’on construit à partir des prédictions qu’il réalise sur un
ensemble d’individus pour lesquels on connaît la classe d’appartenance réelle. Ainsi,
la matrice de confusion, M, décrit la distribution conjointe des variables y et ŷ :

ESI 30
CHAPITRE 2. GÉNÉRALITÉS SUR L’APPRENTISSAGE AUTOMATIQUE

Figure 15 – Matrice de confusion - Exemple général

Si le classifieur ne commet aucune erreur, c’est-à-dire qu’il prédit toujours la classe


réelle, alors M est une matrice diagonale (ce qui signifie que les coefficients en dehors
de la diagonale sont tous nuls). Lorsque le classifieur se trompe, les effectifs des couples
(y=a, ŷ =b) tels que a b indiquent comment les erreurs commises se répartissent.

Dans le cas d’une tâche de classification supervisée binaire, y appartient à 0 ou 1, où


la modalité 1 de la variable à prédire correspond à la classe «positive» et l’autre à la
classe «négative», on nomme les coefficients de la matrice de confusion de la manière
suivante :

— VP (TP) : Nombre de vrais positifs


Ce sont les valeurs positives correctement prédites, ce qui signifie que la valeur
de la classe réelle est «OUI» et la valeur de la classe prédite est également
«OUI».

— VN (TN) : Nombre de vrais négatifs


Ce sont les valeurs négatives correctement prédites, ce qui signifie que la valeur
de la classe réelle est «NON» et que la valeur de la classe prédite est également
«NON».
Faux positifs et faux négatifs, ces valeurs se produisent lorsque votre classe
réelle est en contradiction avec la classe prédite.
— FP (FP) : Nombre de faux positifs
Lorsque la classe réelle est «NON» et que la classe prévue est «OUI».

— FN (FN) : Nombre de faux négatifs


Lorsque la classe réelle est «OUI», mais la classe prévue est «NON».

Figure 16 – Simplification du contenu de la matrice de confusion, (exemple de 2


classes)

ESI 31
CHAPITRE 2. GÉNÉRALITÉS SUR L’APPRENTISSAGE AUTOMATIQUE

2.5.2 Mesures d’évaluation


Comme mentionné par Wang and Li (2019), on définit plusieurs mesures basées
sur la matrice de confusion, afin de quantifier la performance d’un classifieur selon
différents points de vue :
• Accuracy - Exactitude
• Precision
• Recall - Rappel
• F1-Score / F-mesure

Accuracy - Exactitude
L’exactitude est la mesure de performance la plus intuitive et il s’agit simplement
d’un rapport entre l’observation correctement prévue et les observations totales.
On peut penser que si nous avons une grande précision, notre modèle est le meilleur.
Oui, la précision est une bonne mesure, mais uniquement lorsque vous avez des en-
sembles de données symétriques où les valeurs de faux positifs et de faux négatifs sont
presque identiques.
Par conséquent, nous devons examiner d’autres paramètres pour évaluer les perfor-
mances de votre modèle. Par exemple, si nous avons 0.803, cela signifie que notre
modèle est d’env. 80% précis.
TP + TN
Accuracy = (2.1)
TP + TN + FP + FN

Precision
La précision est le rapport des observations positives correctement prédites au
total des observations positives prévues.
La question que cette réponse métrique est de toutes les valeurs étiquetées comme
positives, combien sont réellement ?
La haute précision est liée au faible taux de faux positifs.
TP
P recision = (2.2)
TP + FP

Recall / Rappel
(Sensibilité) - Le rappel est le rapport des observations positives correctement
prédites à toutes les observations de la classe réelle - «OUI».
La question de rappel des réponses est : De toutes les valeurs positives qui existent
vraiment, combien en avons-nous étiquetées ?
TP
P recision = (2.3)
TP + FN

F1-Score / F-mesure
Le score F1 est la moyenne pondérée de la précision et du rappel. Par conséquent,
ce score prend en compte à la fois les faux positifs et les faux négatifs. Intuitivement,
il n’est pas aussi facile à comprendre que la précision, mais F1 est généralement plus
utile que la précision, surtout si la distribution des classes est inégale.

ESI 32
CHAPITRE 2. GÉNÉRALITÉS SUR L’APPRENTISSAGE AUTOMATIQUE

La précision fonctionne mieux si les faux positifs et les faux négatifs ont un coût
similaire.
Si le coût des faux positifs et des faux négatifs est très différent, il vaut mieux regarder
à la fois la précision et le rappel.
Recall ∗ P recision
F 1 − Score = 2 ∗ (2.4)
Recall + P recision

2.5.3 Démarche d’évaluation


Le but de l’évaluation est d’estimer au mieux les performances d’un classifieur sur
de nouvelles données, c’est-à-dire lorsque le classifieur sera utilisé en pratique.
L’évaluation doit donc reposer sur une démarche permettant de capturer la capa-
cité du classifieur à se généraliser à de nouvelles données. C’est pourquoi, plutôt que
d’utiliser un seul et même jeu de données pour la phase d’apprentissage et la phase
d’évaluation, on préfère, via des techniques d’échantillonnage, construire et évaluer
un classifieur sur des données indépendantes tirées d’une même population. On parle
alors d’évaluation par validation croisée, dont les deux principales variantes sont :
• La validation croisée simple
• La K-validation croisée

Validation croisée simple


Cette démarche convient lorsque l’on travaille avec peu de données. Elle consiste
simplement à découper les données en deux échantillons, Da pour l’apprentissage
du modèle et Dt pour l’évaluation, respectant la distribution de la variable de classe.
Typiquement, on fait en sorte que Da comporte 60% des données et Dt les 40% restant.
Ainsi, on construit d’abord le classifieur à partir des observations dans Da, puis on
construit la matrice de confusion M en prédisant la classe de chaque observation dans
Dt.

K-Validation croisée
La K-validation croisée est la démarche la plus recommandée, à condition d’avoir
suffisamment de données pour pouvoir l’appliquer. Dans un premier temps, ayant
choisi une valeur pour k (typiquement, on prend k=10), on partitionne les données en
k morceaux de même taille (D1,D2,. . . ,Dk) Ensuite, on construit k classifieurs, chacun
à partir des observations issues d’un morceau Di, i est dans [1 ;k]. Enfin, on construit
pour chaque classifieur une matrice de confusion Mi sur la base des observations issues
des k-1 autres morceaux (Dj, j appartient à [1 ;k].).

2.5.4 Diagnostique biais / variance


Lorsque l’erreur mesurée sur les données d’évaluation est trop élevée, il est impor-
tant d’essayer de déterminer l’origine du problème, afin de savoir comment la faire
diminuer. Un diagnostique possible se base sur la décomposition de l’erreur en biais
/ variance. Celui-ci repose sur la comparaison de l’erreur mesurée sur les données
d’apprentissage et les données d’évaluation.

ESI 33
CHAPITRE 2. GÉNÉRALITÉS SUR L’APPRENTISSAGE AUTOMATIQUE

Biais
Si l’erreur est aussi élevée sur les données d’apprentissage que sur les données
d’évaluation, alors on peut supposer un problème de biais trop élevé. Cela signifie
que le modèle est victime de sous-apprentissage.
Pour palier un problème de biais élevé, on peut tenter d’incorporer des descripteurs
supplémentaires ou bien changer de type de modèle.

Variance
Si l’erreur est significativement moins élevée sur les données d’apprentissage que
sur les données d’évaluation, alors on peut supposer un problème de variance trop
élevée. Cela signifie que le modèle est victime de sur-apprentissage.
Pour palier un problème de variance élevée, on peut tenter de collecter plus d’individus
ou bien tenter de réduire le nombre de variables.

Conclusion
Dans ce chapitre, nous avons expliqué ce qu’est l’apprentissage automatique et
avons parlé de son champ d’application,
Nous avons également expliqué les différents procédés et algorithmes d’apprentissage
automatique ;
Et puis nous avons montré comment ces algorithmes sont évalués, dans le chapitre
suivant, nous détaillerons la façon dont l’apprentissage automatique gère l’analyse des
sentiments.

ESI 34
Chapitre 3

Analyse de sentiment avec l’approche


apprentissage automatique

Introduction
Comment fonctionne l’analyse des sentiments avec l’apprentissage automatique ?
Il existe un certain nombre de techniques et d’algorithmes complexes utilisés pour
commander et former des machines à effectuer une analyse des sentiments. Il y a des
avantages et des inconvénients à chacun. Mais, utilisés ensemble, ils peuvent fournir
des résultats exceptionnels. Dans ce chapitre nous décrivons les différentes étapes de
l’AS et les algorithmes les plus utilisés.

3.1 Étapes de l’approche d’apprentissage automa-


tique lors de l’analyse des sentiments
L’apprentissage automatique est l’une des principales approches qui gère l’analyse
des sentiments.
Pour le mettre dans une définition directe, cette approche utilise des classificateurs
qui classifient les données selon qu’elles sont positives, négatives ou selon d’autres
étiquettes que ces classificateurs apprennent.
Les différentes phases de cette approche sont : la collecte des données, l’annotation
des données, le prétraitement des données, la représentation des données, la sélection
du modèle, la classification des données et la validation.

La phase de collecte des données peut varier d’une étude à l’autre, car elle dépend
uniquement de la source des données il peut s’agir de jeux de données prédéfinis
disponibles pour tout le monde, ou des données sont collectées à partir des médias
sociaux ou ailleurs dans le but exact d’une certaine étude.

Pour le reste de ce chapitre, nous montrerons en détail ce qui se fait lors des phases
d’annotation, de prétraitement, de représentation, de sélection du modèle et de clas-
sification.

35
CHAPITRE 3. ANALYSE DE SENTIMENT AVEC L’APPROCHE
APPRENTISSAGE AUTOMATIQUE

Les étapes illustrées dans la figure suivante sont inspirées de travaux similaires qui
ont effectué une analyse des sentiments avec une approche d’apprentissage automa-
tique sur un dialecte Algérien ou marocain, qui sont : Chader et al. (2019), Shoukry
and Rafea (2012), Elouardighi et al. (2018).

Figure 17 – Différentes étapes de l’approche d’apprentissage automatique lors de


l’analyse des sentiments

3.2 Phase : Annotation de données


L’annotation des données est le processus d’étiquetage des données disponibles
dans divers formats tels que du texte, des vidéos ou des images. Pour l’apprentissage
automatique supervisé, des ensembles de données étiquetés sont nécessaires, de sorte
que la machine puisse comprendre facilement et clairement les modèles d’entrée.

3.2.1 Type d’annotation


Annotation manuelle
L’annotation manuelle, tout comme son nom l’indique, suggère que chaque do-
cument doit être annoté (étiqueté) manuellement, par un humain et non par une
machine utilisant un algorithme.
L’étiquetage des données par un humain donne plus de certitude et de crédibilité au
processus, nous pouvons presque toujours être sûrs que l’étiquette est correcte, en
supposant qu’elles ont été faites par des personnes qui comprennent le contexte du
document (sait ce qui est positif et ce qui est négatif pour eux)
Mais cela pourrait être long et fatigant, surtout si les données dépassaient plusieurs
milliers.

Annotation automatique
Les documents peuvent être annotés automatiquement (sans présence humaine)
à l’aide d’algorithmes d’apprentissage automatique non supervisés tels que K-mean
pour le clustering.
Cependant, il existe a une conséquence : puisque ces algorithmes regroupent les don-
nées similaires en différents clusters, les résultats ne sont pas garantis d’être bons, le
taux d’erreur est élevé.

ESI 36
CHAPITRE 3. ANALYSE DE SENTIMENT AVEC L’APPROCHE
APPRENTISSAGE AUTOMATIQUE

3.3 Phase : Prétraitement de données


La phase de prétraitement est une phase extrêmement importante dans tout le
processus d’analyse des sentiments, c’est la phase dans laquelle les données sont net-
toyées de tout le bruit et de toute insignifiance, elle ne laisse les données qu’avec les
parties les plus importantes.
Son objectif principal est de minimiser le corpus et de rendre les features prêtes à être
exploitées.
Cependant, ce processus n’est pas fixe, il pourrait être ajusté, raccourci, étiré selon
la façon dont nous le jugeons approprié et le mieux adapté à nos données et à notre
objectif.

3.3.1 Annexe des définitions

Tokenization Cette étape permet de décomposer une chaîne de caractères (mes-


sage ou commentaire) en mots appelés «Tokens». La tokenisation
est encore plus importante dans l’analyse des sentiments que dans
d’autres domaines de la NLP, car les informations sur les sentiments
sont souvent mal représentées. Chader et al. (2019)
Opérations de Ce module gère les opérations de nettoyage de base, qui consistent
base et net- à éliminer les éléments sans importance ou perturbateurs pour les
toyage prochaines phases d’analyse et à normaliser certains mots mal or-
thographiés. Afin de ne fournir que des informations importantes,
en général, un tweet propre ne doit pas contenir d’URL, de hash-
tags (par exemple #happy) ou de mentions (par exemple @Bara-
ckObama). Magliani et al. (2016)
Suppression Cette opération consiste à supprimer les voyelles répétées en sé-
de voyelles quence au moins trois fois, car ce faisant, les mots sont normalisés :
répétées par exemple, deux mots écrits de manière différente (c’est-à-dire
cooooool et cool) deviendront égaux Magliani et al. (2016)
Conversion Cette étape consiste à convertir de nombreux types d’émoti-
des Emojis cônes en tags qui expriment leur sentiment (par exemple :) sou-
rire_heureux). Magliani et al. (2016)
Négation Traiter les négations (comme «pas bon») est une étape importante
dans l’analyse des sentiments. Un mot de négation peut influencer
le ton de tous les mots qui l’entourent. Dans cette phase, toutes
les constructions négatives (ne peuvent pas, ne pas, n’est pas, ja-
mais, etc.) sont remplacées par «non». Cette technique permet au
modèle de classificateur d’être enrichi de nombreuses constructions
bigrammes de négation qui seraient autrement exclues en raison de
leur faible fréquence. Magliani et al. (2016)
Dictionary Ce module utilise la bibliothèque python externe PyEnchant6, qui
fournit un ensemble de fonctions pour la détection et la correction
de mots mal orthographiés à l’aide d’un dictionnaire. Magliani et al.
(2016)

ESI 37
CHAPITRE 3. ANALYSE DE SENTIMENT AVEC L’APPROCHE
APPRENTISSAGE AUTOMATIQUE

Stemming Les techniques de Stemming regroupent les variations de mots


(Racination) comme «Great», «Greatly», «Greatest» et «Greater» dans un seul
seau, diminuant efficacement l’entropie et augmentant la pertinence
du concept de «Great».
En d’autres termes, Stemming nous permet de considérer de la
même manière les noms, verbes et adverbes qui ont la même ra-
dix. Magliani et al. (2016)
Stop words Les mots vides sont des mots qui sont filtrés lors de l’étape de pré-
(Mots Vides) traitement. Ces mots sont, par exemple, des pronoms, des articles,
etc. Il est important d’éviter ces mots car ils peuvent conduire à
une classification moins précise. Magliani et al. (2016)
Suppression Selon Guellil et al. (2018), Par example 9RRRR-
des exagéra- RAAAAAYYYAAAA est transformé en 9RAYA
tions
Prendre en Prétraitements reliés à l’opposition exprimée en dialecte Algérien à
considération l’aide du mot ’ i’.’ baSaH ‘mais’, ils ont affirmé que ce mot parti-
que les mots culier annule le sens de la phrase et le change de positif en négatif,
après ’Mais’ donc donc seuls les mots après Bessah seront considéré[Link] et al.
(2018)
Désaccentuation Le but de cette étape est d’éliminer l’accentuation de certaines
lettres latines comme (é,à) ‘et de les remplacer par (e, a) afin de
conserver une seule instance de chaque mot dans l’ensemble de don-
nées. Chader et al. (2019)
Regroupement L’idée est d’exploiter la régence phonétique pour maximiser son uti-
phonétique lisation dans la catégorisation des commentaires, résultant en une
ressource qui peut être utilisée plus tard pour corriger de nouveaux
textes. Notre objectif est de regrouper les mots qui se prononcent
de la même manière, par exemple : [«Insh’allah», inch’allah »,«
in’cha’alla] deviendra ANCHALLA Chader et al. (2019)
Translitération La translittération est un type de conversion d’un texte d’un script
à un autre qui implique l’échange de lettres de manière prévisible,
dans notre cas cune transliteration des lettres arabe au letteres latin
Table 6: Annexe des définitions des termes / phases de
prétraitement utilisés dans cette synthèse

ESI 38
CHAPITRE 3. ANALYSE DE SENTIMENT AVEC L’APPROCHE
APPRENTISSAGE AUTOMATIQUE

3.4 Phase : Representation de données


3.4.1 Bag of words (BOW)
Le modèle du sac de mots est une représentation simplificatrice utilisée dans le
traitement du langage naturel et la recherche d’informations.
Dans ce modèle, un texte (comme une phrase / un commentaire / un tweet ou un
document) est représenté comme le sac (multiset) de ses mots, sans tenir compte de
la grammaire et même de l’ordre des mots mais en gardant la multiplicité.

Figure 18 – Image qui simplifie à l’excès le concept de BOW

La popularité de l’approche du Bag of words (sac de mots) est principalement due


à sa simplicité et son efficacité, tout en ayant la capacité d’atteindre une très grande
précision. Les features de BOW sont créées en affichant le document comme une
collection de mots non ordonnée, qui sont ensuite utilisés pour classer le document.
Bettiche et al. (2018)

3.4.2 Modèle n-gram


Le modèle Bag-of-words est une représentation documentaire sans ordre - seul le
décompte des mots compte. Yamamoto et al. (2003)
Par exemple, dans l’exemple ci-dessus " John likes to watch movies. Mary likes movies
too. Mary also likes to watch football games.", la représentation en BOW ne révélera
pas que le verbe "likes" suit toujours le nom d’une personne dans ce texte.
Comme alternative, le modèle n-gramme peut stocker cette information spatiale. En
appliquant le même exemple ci-dessus, un modèle bigramme analysera le texte dans
les unités suivantes et stockera le fréquence du terme de chaque unité comme précé-
demment.

ESI 39
CHAPITRE 3. ANALYSE DE SENTIMENT AVEC L’APPROCHE
APPRENTISSAGE AUTOMATIQUE

[
"John likes",
"likes to",
"to watch",
"watch movies",
"Mary likes",
"likes movies",
"movies too",
]

Application
En pratique, le modèle Bag-of-words est principalement utilisé comme outil de
génération de features.
Après avoir transformé le texte en un BOW, nous pouvons calculer différentes mesures
pour caractériser le texte. Les type les plus courants des features ou des attributs
calculées à partir du modèle BOW sont : Le nombre de fois où le mot est apparu
(appelé Term-Frequency) et TF-IDF (Term Frequency Inverse Document Frequency).

TF : Term Frequency (Fréquence de mot)

tft,d = ft,d (3.1)


Où :
Le terme ou Token est noté (t)
Le document est noté (d)
Et (f) est le nombre brut

La méthode connaît certaines limitations qui sont : Plus un mot est fréquent, plus
nous lui accordons d’importance dans chaque document, ce qui est logique.
Cependant, cela peut être problématique car des mots courants comme les noms n’ap-
portent pas beaucoup d’informations sur le document auquel il se réfère. En d’autres
termes, les mots qui apparaissent le plus ne sont pas les plus intéressants pour extraire
des informations d’un document.
Nous pourrions tirer parti du fait que les mots qui apparaissent apportent rarement
beaucoup d’informations sur le document auquel il se réfère.

TF-IDF : fréquence du terme Inverse Document Frequency


Dans TF-IDF, au lieu de remplir la matrice BOW avec le nombre brut, nous la
remplissons simplement avec le fréquence du terme multiplié par la fréquence inverse
du document. Il vise à refléter l’importance d’un mot pour un document dans une
collection ou un corpus.

tf idft,d = ft,d ∗ invft,d (3.2)

M
= ft,d ∗ log( dft
) (3.3)

ESI 40
CHAPITRE 3. ANALYSE DE SENTIMENT AVEC L’APPROCHE
APPRENTISSAGE AUTOMATIQUE

Ou :
Le fréquence du terme ftd compte le nombre d’occurrences de t dans d
La fréquence de document dft compte le nombre de documents contenant le mot t
M est le nombre total de documents dans le corpus
La valeur TF-IDF croît proportionnellement aux occurrences du mot dans le TF,
mais l’effet est équilibré par les occurrences du mot dans tous les autres documents
(IDF).

Exemple de déroulement d’un BOW suivi des calculs TF et TF-IDF


1. les documents originaux
docs = ["Je veux vous dire merci bcp, et bravo bravo bravo",
"Vous etes les meilleures, merci trop"]

2. Extraction de BOW

bcp bravo dire et etes je les meilleures merci trop veux vous

Table 7 – Bag-of-words représentation de ’docs’

2.1 Application du fréquence du terme

bcp bravo dire et etes je les meilleures merci trop veux vous
Doc 0 1/16 3/16 1/16 1/16 0 1/16 0 0 1/16 0 1/16 1/16
Doc 1 0 0 0 0 1/16 0 1/16 1/16 1/16 1/16 0 1/16

Table 8 – Bag-of-words représentation avec TF appliquée

2.2 Application du TF-IDF

bcp bravo dire et etes je les meilleures merci trop veux vous
Doc 0 0,258 0,774 0,26 0,258 0 0,26 0 0 0,184 0 0,258 0,184
Doc 1 0 0 0 0 0,45 0 0,45 0,447 0,318 0,447 0 0,318

Table 9 – Bag-of-words représentation avec TF-IDF appliquée

ESI 41
CHAPITRE 3. ANALYSE DE SENTIMENT AVEC L’APPROCHE
APPRENTISSAGE AUTOMATIQUE

3.5 Les algorithmes utilisés


Dans cette section, nous allons lister les algorithmes utilisés dans cette approche
et quels travaux les ont utilisés.

3.5.1 Dans les travaux qui traitent la classification de texte


Le tableau suivant montre les algorithmes les plus populaires utilisés dans cette
approche avec le contexte des travaux (avec spécification du dialecte pour chaque
travail arabe) dans lesquels ils ont été utilisés.

Algorithmes Les travaux Langue Probleme Dialecte


Utilisé
NB Itani et al. Arabe Sentiment Ana- Syrien, Égyp-
(2012) lysis + Text tien, Irakien,
Classification libanais
SVM Cherif et al. Arabe Sentiment Ana- ASM
(2015) lysis + Text
Classification
Abdul- Arabe Sentiment Ana- Égyptien
Mageed lysis + Text
et al. (2012) Classification
Lodhi et al. Non-Arabe Text Classifica-
(2002) tion
NB + SVM Abdelhamid Arabe Sentiment Ana- ASM
et al. (2014) lysis + Text
Classification
NB + SVM Mdhaffar Arabe Sentiment Ana- Tunisien
et al. (2017) lysis + Text
Classification
Logistic Regression Madigan Non-Arabe Text Classifica-
et al. (2005) tion
Naive Bayes Kim et al. Non-Arabe Text Classifica-
(2006) tion
SVM and KNN Chen et al. Non-Arabe Text Classifica-
(2016) tion

Table 10 – Les algorithmes utilisés dans l’approche ML et les travaux qui l’ont
utilisée.

ESI 42
CHAPITRE 3. ANALYSE DE SENTIMENT AVEC L’APPROCHE
APPRENTISSAGE AUTOMATIQUE

3.5.2 Synthèse des algorithmes : Avantages et inconvénients


Le tableau suivant nous montre les avantages et inconvénients des modèles utilisés
par l’approche ML.

Algorithme Définition Avantages Inconvénients


(Modèle)
Logistic Regres- La régression logis- - Facile à mettre en - Elle ne peut pas ré-
sion tique est un algo- œuvre soudre les problèmes
rithme de classifica- - ne nécessite pas trop non linéaires
tion utilisé pour attri- de ressources informa- - La prédiction exige
buer des observations tiques que chaque point de
à un ensemble discret - il ne nécessite pas de données soit indépen-
de classes. La régres- mise à l’échelle des ca- dant
sion logistique trans- ractéristiques d’entrée - Essaie de prédire les
forme sa sortie à l’aide (prétraitement) résultats sur la base
de la fonction sig- - Elle ne nécessite au- d’un ensemble de va-
moïde logistique pour cun réglage riables indépendantes
renvoyer une valeur de
probabilité.
Naive Bayes La classification naïve - Il fonctionne très - Une hypothèse forte
Classifier bayésienne est un bien avec les données sur la forme de la dis-
type de classification textuelles tribution des données
bayésienne proba- - Facile à mettre en - Limité par la ra-
biliste simple basée œuvre reté des données pour
sur le théorème de - Rapidité de com- lesquelles toute valeur
Bayes avec une forte paraison avec d’autres possible dans l’espace
indépendance (dite algorithmes de fonctionnalité, une
naïve) des hypothèses. valeur de probabilité
doit être estimée par
un fréquentiste
K-Nearest Un algorithme k-plus - Efficace pour - Le calcul de ce mo-
Neighbor proche voisin, souvent les ensembles de dèle est très coûteux
abrégé k-nn, est une données textuelles - diffculté pour trou-
approche de la classifi- non-paramétrique ver la valeur optimale
cation des données qui - Les caractéristiques de k
estime la probabilité plus locales du texte - Contrainte pour un
qu’un point de don- ou du document sont grand problème de re-
nées soit membre d’un prises en compte cherche pour trouver
groupe ou de l’autre - Gère naturellement les voisins les plus
selon le groupe dans des ensembles de proches
lequel se trouvent les données multi-classes - Il est difficile de trou-
points de données les ver une fonction de
plus proches. . distance significative
pour les ensembles de
données textuelles

ESI 43
CHAPITRE 3. ANALYSE DE SENTIMENT AVEC L’APPROCHE
APPRENTISSAGE AUTOMATIQUE

Support Vector SVM est une méthode - Le SVM peut mo- - Le manque de trans-
Machine (SVM) d’apprentissage super- déliser des limites de parence des résultats
visé qui examine les décision non linéaires dû à un nombre
données et les trie - Fonctionne de la élevé de dimensions
dans l’une des deux même manière que la (notamment pour les
catégories. Un SVM régression logistique données textuelles).
génère une carte des lorsque la séparation - Le choix d’une fonc-
données triées avec linéaire tion efficace du noyau
les marges entre les - Robuste contre les est difficile (Suscep-
deux aussi éloignées problèmes de sur- tible de problèmes de
que possible. charge (en particulier surcharge/formation
pour les ensembles de selon le noyau)
données textuelles en - Complexité de la
raison de l’espace de mémoire
haute dimension)
Decision Tree L’arbre de décision - Peut facilement - Questions relatives
construit des modèles gérer les caractéris- aux limites diagonales
de classification ou tiques qualitativesdes décisions
de régression sous la (catégorielles) - Peut être facilement
forme d’une struc- - Fonctionne bien avec surdimensionné
ture arborescente. Il les limites de décision - extrêmement sen-
décompose un en- parallèles à l’axe des sible aux petites per-
semble de données caractéristiques turbations des don-
en sous-ensembles de - L’arbre de décision nées
plus en plus petits, est un algorithme - Problèmes de prédic-
tout en développant très rapide pour tion hors échantillon
progressivement un l’apprentissage et la
arbre de décision prédiction
associé. Les arbres
de décision peuvent
gérer à la fois des
données catégorielles
et numériques
Table 11: Comparaison des techniques les plus courantes
de la classification de texte, Kowsari et al. (2019)

3.5.3 Synthèse des travaux existants


Le tableau suivant nous donne un récapitulatif des travaux réalisés avec l’approche
ML.
Pang et al. (2002) Nave Bayes, Maximum En- Exactitude :
tropie, SVM SVM = 82.9 %
NB = 81.5%
ME = 81 %
Pang and Lee (2004) Nave Bayes, SVM Exactitude :
NB = 86.4 %
SVM = 86.15 %

ESI 44
CHAPITRE 3. ANALYSE DE SENTIMENT AVEC L’APPROCHE
APPRENTISSAGE AUTOMATIQUE

Abbasi et al. (2008) SVM Exactitude = 91.7 %


Boiy and Moens (2009) Nave Bayes, Maximum En- Exactitude = 83 %
tropie, SVM
Pak and Paroubek (2010) Nave Bayes, SVM /
Saleh et al. (2011) SVM Exactitude = 91.51 %
Kang et al. (2012) Naive Bayes Exactitude = 81.2 %
Chader et al. (2019) Naive Bayes, SVM, Decision F1 score 87
Tree
Duwairi et al. (2014) SVM, Naive Bayes, Decision Précision = 70,78 %
Tree
Ben Salamah and Elkhlifi Decision Tree, SVM Précision= 76% Rappel=
(2014) 61%
Table 12: Résumé récapitulatif global des travaux réa-
lisés avec l’apprentissage automatique

3.6 Phase : Choix de modèle


Dans l’approche d’apprentissage automatique, le choix de l’algorithme correct
n’est qu’une étape du choix du modèle dans lequel nous choisissons, les autres étapes
sont liées à d’autres paramètres, que nous expliquerons dans cette partie.

3.6.1 Annexe des définitions

Méthode de repré- il renvoie 0 si le mot existe dans le document, 1 sinon. Aucun dé-
sentation : Binary compte n’existe.
Average Method Ce paramètre est obligatoire pour les cibles multiclasses / multi-
étiquettes, cela détermine le type de moyennage effectué sur les
données.
Average Method : Rapportez uniquement les résultats pour la classe spécifiée par une
Binary étiquette positive.
Average Method : Calculez les métriques à l’échelle globale en comptant le total des
Micro vrais positifs, des faux négatifs et des faux positifs.
Average Method : Calculez les métriques pour chaque étiquette et trouvez leur
Macro moyenne non pondérée. Cela ne tient pas compte du déséquilibre
des étiquettes.
Average Method : Weighted : pondéré ; Calculez les métriques pour chaque étiquette
Weighted et trouvez leur moyenne pondérée par le support (le nombre d’ins-
tances réelles pour chaque étiquette). Cela modifie la «macro» pour
tenir compte du déséquilibre des étiquettes ; il peut en résulter un
score F qui n’est pas entre la précision et le rappel
Table 13: Annexe des définitions de certains termes uti-
lisés dans le processus ci-dessous

ESI 45
CHAPITRE 3. ANALYSE DE SENTIMENT AVEC L’APPROCHE
APPRENTISSAGE AUTOMATIQUE

3.6.2 Étapes du choix du modèle le plus adéquat (dans cette


approche)
Etape 01 : Choix de l’algorithme
Les plus populaires dans cette approche selon les travaux existants sont :
NB, SVM, DT, KNN, LR.

Etape 02 : Choix de la méthode de représentation des texte


Methode : Binary, TF, TF-IDF..

Etape 03 : Choix de ‘Average Method’


Methode : Binary, Micro, Macro, Weighted.

Etape 04 : Choix de la mesure adéquate de l’Evaluation


Mesure : Accuracy / Precision / Recall / F1-Mesure

Etape 05 : Test
Tester les différentes combinaisons des étapes précédentes et enregistrer le score et
revenir à l’étape 0 jusqu’à ce que nous trouvions le modèle le plus approprié.

Après avoir collecté, annoté et prétraité nos données, nous sommes maintenant arrivés
à la phase de classification, ce qui signifie choisir un algorithme (les algorithmes de
classification de texte les plus courants ont été mentionnés dans la section ci-dessus).
Mais la phase de sélection du modèle concerne-t-elle vraiment la sélection de l’algo-
rithme ?
Eh bien oui et non, oui nous allons choisir un algorithme mais il y a de nombreux
facteurs qui doivent aussi se fixer. c’est une phase de paramétrage pourrait-on dire.
Mais est-ce nécessaire ?
Eh bien, nous devons choisir le modèle le plus approprié pour nos données, tous
les modèles sont bons lorsqu’ils sont utilisés avec les données appropriées et si le
changement de la représentation ou la méthode de moyenne peut augmenter le bon
algorithme avec 5%, alors, il doit être considéré.
Il n’y a pas d’algorithme concrètement meilleur que les autres, mais il y en a un qui
donne un meilleur résultat selon les données. C’est ce que l’on essaie essentiellement
de trouver dans cette phase de sélection du modèle.

3.7 Synthèse des travaux traitant la langue arabe


3.7.1 Difficulté rencontré avec l’arabe
Il y a pas mal de difficultés quand il s’agit de traiter la langue arabe autre que les
autres.
Le problème qui apparaît en premier serait les différents dialectes que nous avons,
algérien, égyptien, irakien, marocaine, etc ...
La différence de ces dialectes pose le problème de l’irrégularité du corps de la langue
arabe elle-même, ce qui signifie qu’un ensemble différent d’opérations doit être effec-
tué chaque fois que nous faisons face à un nouveau dialecte.
Par exemple, à cause de ce point particulier, les commentaires qui sont annotés en
dialecte saoudien ne pourraient pas être utiles si nous faisons une classification sur

ESI 46
CHAPITRE 3. ANALYSE DE SENTIMENT AVEC L’APPROCHE
APPRENTISSAGE AUTOMATIQUE

un dialecte Algérien.
Un autre problème est que le corpus pourrait être un mélange entre des mots écrits
en lettres arabes et des mots écrits en lettres latines, ce qui entraînera la non harmo-
nisation du corpus et un défi encore plus grand à relever.
Nous constatons également que même lorsque le corpus contient toutes les lettres la-
tines, il contient des mots en arabizi, en français simple et en anglais plan, et parfois
même en espagnol, tels que «Viva Algeria», «Rio adoro».

3.7.2 Exemples de travaux existants traitant le dialecte Algé-


rien
Certains travaux ayant traité le problème d’AS dans le dialecte Algérien, nous
nommons ce qui suit :
Chader et al. (2019) où ils ont proposé de faire une approche supervisée en utilisant
des classificateurs tels que SVM et NB, et ils ont ajusté la phase de prétraitement pour
minimiser le corpus suggérant des approches telles que la suppression des voyelles et
la translittération, et ils ont réussi à améliorer les résultats de la classification.

Dans cet article, Guellil et al. (2018) a présenté un outil pour l’analyse des senti-
ments des messages écrits en dialecte Algérien. Cet outil est basé sur une approche
qui utilise à la fois des lexiques et un traitement spécifique de l’agglutination. Cette
approche a été expérimentée en utilisant deux lexiques de sentiments et un corpus de
test contenant 749 messages. Les résultats obtenus sont encourageants et montrent
une amélioration continue après chaque étape de l’approche considérée.

Dans Bettiche et al. (2018) , ils s’intéressent à la classification des messages de ré-
seaux sociaux récupérés sur Twitter, Facebook et YouTube écrits en dialecte Algérien
en caractères latins dans des classes positives ou négatives en utilisant des approches
existantes d’exploration d’opinion (basée sur lexical, apprentissage automatique et
hybride). En outre, ils appliquent un processus de regroupement dans l’étape de pré-
traitement pour surmonter les problèmes liés au dialecte Algérien tels que les variétés
orthographiques pour exprimer le même mot.
De plus, ils se concentrent sur l’approche hybride qui consiste à annoter automati-
quement le corpus d’apprentissage avec l’approche lexicale puis à utiliser l’approche
machine learning sur ce corpus pour créer le modèle de classification. Cette approche
permet de classer les messages en classes positives ou négatives, sans avoir à anno-
ter manuellement un corpus de formation. Ils ont rapporté 93,7% en termes de F-score.

Dans Mataoui et al. (2016), ils ont proposé une nouvelle approche d’analyse des
sentiments basée sur le lexique pour aborder les aspects spécifiques de l’arabe algé-
rien vernaculaire pleinement utilisé dans les réseaux sociaux. Un ensemble de données
annoté manuellement et trois lexiques arabes algériens ont été créés pour explorer les
différentes phases de notre approche.

Elouardighi et al. (2018) ont utilisé une approche d’apprentissage automatique Ils
traitent dans ce travail dans l’analyse des sentiments des commentaires Facebook,
réels, partagés en arabe ou marocain standard par une approche basée sur l’appren-
tissage automatique. Ce processus commence par la collecte des commentaires et leur
annotation à l’aide du crowdsourcing suivi d’une phase de prétraitement du texte

ESI 47
CHAPITRE 3. ANALYSE DE SENTIMENT AVEC L’APPROCHE
APPRENTISSAGE AUTOMATIQUE

pour extraire les mots arabes réduits à leurs racines.


Ces mots seront utilisés pour la construction des variables d’entrée en utilisant plu-
sieurs combinaisons de schémas d’extraction et de pondération. Pour réduire la di-
mensionnalité, une méthode de sélection des variables est appliquée.

Conclusion
Dans ce chapitre, nous avons vu les différentes étapes de l’approche du machine
learning sur l’analyse des sentiments et comment ces étapes diffèrent d’un travail à
l’autre, que cela ait été fait sur un corpus arabe ou non. Nous avons également vu
l’efficacité de l’approche de l’apprentissage automatique à en juger par ses résultats,
et la vitesse de cette phase dépend de la disponibilité des données annotées.
Ce qui le rend plus simple d’une manière comparable à l’approche du lexique qui
nécessite un lexique défini. Nous avons également souligné l’importance d’une phase
négligée, qui est la sélection du modèle, les gens oublient souvent qu’avec un simple
paramètre ou un changement moyen, les résultats pourraient changer radicalement.

ESI 48
Conclusion

Dans cette étude, nous avons mis en lumière les domaines de l’analyse des senti-
ments et de l’apprentissage automatique, discuté ses différentes applications et pro-
priétés.
Nous avons ensuite effectué un travail de synthèse où nous avons cité des travaux de
l’analyse des sentiments avec l’approche de l’apprentissage automatique que le travail
soit fait sur un corpus arabe ou non, suivi d’une étude comparative sur les travaux
qui ont traité le dialecte Algérien.

Nous avons conclu que dans cette approche, il n’y pas un bon modèle concret in-
contesté, mais il y a le modèle le plus approprié et qui change en fonction du langage,
des données, de l’objectif de la façon dont il a été annoté, de la méthode de calcul de
la moyenne, de la représentation et de nombreux les facteurs.
Tous ces facteurs définissent ce que nous avons appelé le processus de sélection du
modèle, dans lequel nous avons montré qu’il est ignoré dans cette approche et que
certaines personnes vont directement à l’évaluation sans considérer qu’elles pourraient
obtenir de meilleurs résultats.

49
Deuxième partie

Développement du système

50
Introduction

Dans cette partie nous discuterons à travers ses chapitres le développement du


système en commençant par la présentation de l’organisme d’accueil, puis nous liste-
rons ses besoins, nous clarifierons notre conception, notre réalisation et enfin les tests
effectués.

Dans le quatrième chapitre, nous présenterons l’entreprise GEN-42, nous introdui-


sons de ses missions, des services rendus et des réalisations antérieures et enfin nous
mettrons en évidence le plan de développement de l’entreprise et le futur projet global
(2019-2022). Puis, Nous montrerons en détail les besoins de l’entreprise et les objectifs
que notre système doit atteindre, énumérerons les différents acteurs, les spécifications
fonctionnelles et techniques.
Le cinquième chapitre, nous le consacrons pour la conception de la solution que nous
proposons. Nous détaillerons chacune de ses phases : récupération, annotation, pré-
traitement, représentation et classification ; et nous mentionnerons les différentes tech-
niques que nous exécuterons au cours de chaque phase.
Dans le sixième chapitre, nous montrerons ce qui est nécessaire pour l’implémentation
de l’outil avec les captures d’écran des interfaces principales de notre outil réalisé.
Enfin, le dernier chapitre comprend la description des données collectés et les jeux
de données construits et une partie des tests très détaillée avec l’interprétation des
résultats trouvés.

51
Chapitre 4

Etat des lieux et identification des


besoins

Introduction
Dans ce chapitre, nous présenterons l’entreprise GEN-42, nous introduisons de ses
missions, des services rendus et des réalisations antérieures et enfin nous mettrons en
évidence le plan de développement de l’entreprise et le futur projet global (2019-2022)
dont notre projet fait partie de ce dernier.
Ensuite, nous allons faire une étude des besoins en révélant les plus grands besoins
de l’entreprise.
Nous montrerons en détail les objectifs que notre système doit atteindre, énumérerons
les différents acteurs, les spécifications fonctionnelles et techniques et les schématise-
rons dans un diagramme de cas d’utilisation.

4.1 Organisme d’accueil GEN-42


Notre sujet de fin d’étude été proposé par GEN-42 une entreprise de digital mar-
keting, plus précisément par le fondateur et le directeur général de l’entreprise Mr.
Samir Bellik et dans la suite de cette partie nous allons faire une petite présentation
de l’entreprise et son organisation.

Figure 19 – Logo de GEN-42

GEN-42 est une agence de communication digitale située à Alger. elle s’engage à pro-
pulser les services et les produits sur internet par la publicité, le conseil ainsi que
différentes offres permettant de faire connaitre sur le web et accroitre la visibilité et
la notoriété.
Samir Bellik a fondé son entreprise Gen 42 en septembre 2014 dans le cadre du dis-
positif Ansej. L’entreprise spécialisée dans la gestion d’image et l’optimisation de la

52
CHAPITRE 4. ETAT DES LIEUX ET IDENTIFICATION DES BESOINS

visibilité des entreprises sur le web à lancer de nombreux projets et espère dominer un
marché en plein essor en Algérie. Ce présent chapitre, est consacré à la présentation
de l’entreprise et ses missions.
Ci-dessous un tableau contenant des informations globales sur l’organisme :

Création 2014
Fondateur Mr Samir BELLIK
Forme juridique L’entreprise unipersonnelle à responsabilité limitée (EURL)
Domaine Communication digitale
Siege social 126 Rue Didouche Mourad, Alger centre 16020
Activité Web Marketing, Difital Strategies, Social Media, SEO, and E-Reputation
Effectif 15(2020)
Site web https ://[Link]/

Table 14 – Fiche de l’entreprise GEN-42

4.2 Missions
La mission principale de GEN-42 est de mettre la communication virtuelle au
service du développement bien réel des entreprises. De la construction de leurs sites
web au déploiement des troupes sur les réseaux sociaux, les clients bénéficieront de
l’expertise de GEN-42 pour optimiser leur visibilité sur internet et adopter la stratégie
qui permettra de conquérir le Web.

4.2.1 Services
• Création web : La communication sur le web devenant de plus en plus concur-
rentielle, il est nécessaire que les sites et applications soient conformes aux
dernières tendances du net. GEN-42 propose également des sites web et appli-
cations qui deviendront rapidement des références dans les paysages web.
• Référencement (SEO) : Parce que le référencement naturel est un enjeu de
la plus grande importance pour la réussite et la pérennité de l’activité sur le
web, GEN-42 propose de le confier à son équipe d’experts qui sauront vous
mettre en place une stratégie de visibilité cohérente et efficiente
• Réseaux sociaux : Devant l’ampleur du trafic en provenance des réseaux
sociaux sur l’ensemble du web, le social media management devient non seule-
ment un impératif pour votre stratégie webmarketing mais aussi une science
de plus en difficile à maîtriser. GEN-42 me à disposition toute son expertise
pour une gestion à la pointe de l’efficacité et des dernières bonnes pratiques
en termes de management et de technologies.
• Création de contenu : GEN-42 établit pour ces clients un contenu en accord
avec leurs image et leurs objectifs. En créant leur contenu sur différentes formes
et différents médias, en les adaptant aux canaux de communications où ils
souhaitent être présents.
• Gestion de campagnes : GEN-42 fait bénéficier ces clients des opportunités
de l’ensemble des réseaux publicitaires du web. A travers des campagnes ci-
blées et des coûts maîtrisés, elle déploie de manière pertinente votre stratégie
commerciale.

ESI 53
CHAPITRE 4. ETAT DES LIEUX ET IDENTIFICATION DES BESOINS

• E-mailing : Une stratégie globale, une conception et une gestion complète


des compagnes E-mailing, des solutions innovantes pour une approche effi-
cace d’une stratégie relation client à partir des réseaux sociaux et grâce à ses
compétences, GEN-42 met à la disposition de ces clients tout son savoir-faire
afin d’identifier leurs prospects et d’en créer une base de données efficace et
consolidée.
• Veille et audit : Pour maximiser l’efficacité des stratégies marketing, l’équipe
GEN-42 analyse pour ses clients l’ensemble des canaux de communication sur
le web, identifie les différents acteurs et réseaux pour une optimisation com-
plète de leur communication digitale. GEN-42 établit une veille continue des
contenus, opinions et sujets concernant leurs entreprises, leurs produits et leurs
concurrents que nous traduisons en données mesurables.
• Google Apps : GEN-42 met à la disposition des ses clients tous les outils
Google dont ils ont besoin pour travailler efficacement, réunis dans une suite
qui fonctionne aussi bien sur ordinateur, téléphone et tablette.

4.2.2 Exemples de réalisations

Logo Réalisation
GEN-42 à réalisé pour l’entreprise Aymen Promotion
(une agence de promotion immobilière) un site internet
proposant les différentes promotions immobilières afin
de permettre aux clients de connaitre les différents pro-
duits réalisés par l’entreprise.

Pour le lancement de la slim can en Algérie et pour cé-


lébrer les 100 ans de Coca-Cola en Algérie, GEN-42 a
effectué une campagne sur Google AdWords, entre ban-
nières sur les sites web et vidéos sur YouTube qui a
donné des résultats époustouflants.

À la fin 2015, GEN-42 a eu le plaisir de rencontrer


l’équipe de Foton Motors Algérie qui souhaitait passer
à la communication digitale, mais n’était pas certaine
de la pertinence de ce levier de communication pour le
segment dans lequel elle était positionnée.
GEN-42 a donc proposé un plan de communicaiton avec
du community management, sur Facebook, Google+ et
LinkedIn, une gestion de publicité sur Facebook, Linke-
dIn et Google AdWords et les résulats ont été plus que
surprenants pour le client. Ce dernier a du investir dans
un central téléphonique pour gerer le fluc d’appels qu’ils
recevaient depuis le lancement des campagnes.

ESI 54
CHAPITRE 4. ETAT DES LIEUX ET IDENTIFICATION DES BESOINS

GEN-42 a assuré pour l’entreprise Saf Instant une pré-


sence digitale à tous les niveaux, commençant par la
création du site internet [Link]. Ce site
propose une interface adaptée à n’importe quel support
d’accès (mobiles, pc, tablettes etc.).

Table 15: Exemples de réalisation de GEN-42

4.3 Développement de GEN-42


GEN-42 a exécuté une centaine de travaux pour leurs clients et l’entreprise ne
cesse d’évoluer, passant de deux à quinze employés.
Avec une moyenne de quinze millions d’algériens connectés (en 2014) quotidiennement
à internet de nombreuses entreprises se lancent dans ce secteur, et grâce à l’avènement
de la 3G le nombre d’internautes connectés quotidiennement a doublé.
Avec plus d’internautes, il y a plus de visibilité et plus de réponse au contenu Web,
c’est pourquoi la 3G a donné aux traveaux de GEN-42 plus d’audience, donc plus
d’opportunités pour attirer de nouveaux clients.

4.3.1 Développement important du numérique


Le directeur général de GEN-42 note que le « digital reste un domaine qui se
démocratise de plus en plus, et les entreprises ont pris conscience que les algériens se
connectent de plus en plus ». La communication est un secteur une pleine croissance,
ce qui permet avec un budget égal pour une campagne classique de faire la différence
et assurer aux clients un suivi de leur visibilité sur les réseaux sociaux en temps réel.
De plus, la connexion s’améliore, l’E-paiement arrive avec la 4G mobile, et les évène-
ments se sensibilisation dans le domaine du digital foisonnent.

4.3.2 Les difficultés rencontrées


Le marché est florissant, cependant Samir Bellik a fait part des difficultés qu’il
rencontre notamment pour le recrutement de jeunes talents maitrisant les technologies
du Web, le design et qui accepteraient de travailler à temps plein au sein d’une
entreprise.
L’administration est aussi en cause, en effet celle-ci n’arrive pas à s’adapter à son
temps et aux technologies de l’information et de la communication. Cela à pour
conséquences l’absence d’aide dont devrai bénéficier l’entreprise.

ESI 55
CHAPITRE 4. ETAT DES LIEUX ET IDENTIFICATION DES BESOINS

4.4 GEN-42 : Organisation


Le schéma suivant représente l’organigramme de l’entreprise

Figure 20 – Schéma d’organisation du personnel

4.4.1 Organisation du personnel


— General Manager
Un General Manager / directeur général a une large responsabilité globale
pour une entreprise ou une unité commerciale au sein d’une organisation plus
grande. Certaines de ses principales responsabilités sont :
• Superviser les opérations commerciales quotidiennes.
• Développer et mettre en œuvre des stratégies de croissance.
• Formation des cadres et du personnel de bas niveau.
• Création et gestion des budgets.
• Amélioration des revenus.
• Embaucher des employés.
• Évaluer les performances et la productivité.
• Analyser les données comptables et financières.
• Recherche et identification des opportunités de croissance.
• Générer des rapports et faire des présentations.

ESI 56
CHAPITRE 4. ETAT DES LIEUX ET IDENTIFICATION DES BESOINS

— Operations office
• Operations Manager : Gère l’ensemble des opérations et est responsable
de la gestion efficace et réussie du travail, de la productivité, du contrôle
de la qualité et des mesures de sécurité telles qu’établies et fixées pour le
département des opérations.
• Business Developement Director : Les directeurs du développement
commercial établissent des relations et fournissent une orientation straté-
gique pour aider les entreprises à se développer et à réaliser des bénéfices.
Ils se concentrent sur la création et l’orientation des relations internes et
externes avec les équipes de vente et de marketing, les vendeurs et les dis-
tributeurs, et les clients.
• Account Customer Manager : une personne qui travaille pour une
entreprise et qui est responsable de la gestion des ventes et des relations avec
des clients particuliers. Un gestionnaire de compte entretient les relations
existantes de l’entreprise avec un client ou un groupe de clients, afin que
ceux-ci continuent leur partenariat avec l’entreprise pour leurs affaires.

— Content Office
• Content Manager : Les tâches du gestionnaire de contenu comprennent,
entre autres, la production et la publication de contenu, la rédaction, la
révision et la correction d’épreuves, la formulation de stratégies de contenu
et la gestion d’une équipe de contenu. ... Ici, le contenu est défini comme
des articles multimédias, des billets de blog, des images ou des vidéos qui
aident à favoriser l’engagement en ligne.
• Creative Director : Les directeurs de création travaillent normalement sur
des campagnes de publicité et de branding à travers une gamme de sup-
ports tels que le cinéma, le numérique, l’animation et les applications. Ils
travaillent parfois sur la conception des produits, des emballages et des em-
placements. Ils dirigent une équipe composée de directeurs artistiques et
de designers, qui exécutent les projets qu’ils conçoivent.
• Ads Reporting Manager : une personne qui gère les rapports et la
publicité sur Internet, il aide à atteindre les objectifs commerciaux sur
Facebook, Instagram et Audience Network.

— Finance Office
• Finance Manager : Les tâches typiques comprennent l’examen des rap-
ports financiers, le suivi des comptes et la préparation des rapports d’acti-
vité et des prévisions financières. Les responsables financiers étudient éga-
lement les moyens d’améliorer la rentabilité et analysent les marchés pour
les opportunités commerciales, telles que l’expansion, les fusions ou les ac-
quisitions.

— Graphic Design Office


• Art Director : Les directeurs artistiques sont responsables de l’ensemble
des aspects visuels d’une campagne publicitaire ou médiatique et coor-
donnent le travail des autres membres du personnel artistique ou de concep-
tion, tels que les graphistes.
• Graphic Designer (les graphistes) : créent des concepts visuels, à la
main ou à l’aide de logiciels informatiques, pour communiquer des idées
qui inspirent, informent ou captivent les consommateurs. Ils développent

ESI 57
CHAPITRE 4. ETAT DES LIEUX ET IDENTIFICATION DES BESOINS

la mise en page générale et la conception de production pour les publicités,


les brochures, les magazines et les rapports d’entreprise.

— Customer Service and support


• Comunity Managers : Les Community Managers sont le visage d’une
entreprise. Ils sont généralement responsables de la gestion et du traitement
des communications dans les deux sens. Les Community Managers sont
impliqués dans diverses activités telles que les communications, les relations
publiques, les médias sociaux, les événements et la création de contenu.

— Technical Office
• Technical Lead Manager : superviser une équipe de personnel qui se
concentre sur les questions techniques, notamment le développement de lo-
giciels, les versions de produits et les tâches d’ingénierie. En plus d’embau-
cher et de former du personnel et de déléguer des tâches, les responsables
techniques peuvent également collaborer avec des collègues pour identifier
et réparer des problèmes techniques.
• Web Developper : Il est responsable de la conception, du codage et de
la modification des sites web, de la mise en page à la fonction et selon les
spécifications du client. Il s’efforce de créer des sites visuellement attrayants
qui se caractérisent par une conception conviviale et une navigation claire.

4.5 Projet global de GEN-42 (2019-2022)


Actuellement, GEN-42 travaille sur un projet global qui va stimuler et améliorer
leur productivité et clarifier les données et les résultats afin de simplifier le processus
de prise de décision pour eux. Ce projet global contient de multiples modules, l’un
d’entre eux est en fait notre projet. Ces modules sont les suivants : Rapports et
statistiques, Appels d’offres en temps réel, Prévision du type de données et de leur
polarité. Ce dernier point, c’est là que serait l’essentiel de notre travail.
Ces modules partagent tous un fournisseur de données appelé Backend et celui-ci
utilise également un module d’apprentissage automatique et une base de données en
commun. Donc l’architecture globale du projet sera une architecture oriente service.
Donc il y’aura des interfaces clients qui représentent ses modules en standalone.
Nous pouvons simplifier la vision de ces modules par le schéma suivant :

ESI 58
CHAPITRE 4. ETAT DES LIEUX ET IDENTIFICATION DES BESOINS

Figure 21 – Projet global 2019-2022

4.5.1 Reporting and statistics module


Dans ce module, des données sont recueillies sur toutes les plateformes de médias
sociaux concernant les entreprises. Ces informations sont recueillies à partir de Google
Analytics, des annonces de Google, de Facebook Insights et des annonces de Facebook.
Les données recueillies comprennent les paramètres suivants :
• Les Impressions : simplement l’ensemble des vues de l’annonce.
• Impressions visibles : Une impression visible est celle qui est visible par
l’utilisateur lorsqu’une page se charge.
• Clics : l’utilisateur il peut cliquer dessus pour accéder à votre page d’accueil.
• Conversions : Une conversion doit avoir lieu après un clic, et est toujours
plus précieuse qu’un clic.
• Coût pour mille (CPM) : Il s’agit non seulement d’un modèle de tarification
de la publicité numérique, mais aussi d’une mesure de reporting. Le coût pour
mille se réfère aux impressions.
• Coût par clic (CPC) : Il s’agit davantage d’un modèle de tarification, mais
il peut également être utilisé comme mesure. Google Ads est l’entreprise la
plus connue en matière de tarification au clic.
• Coût par action (CPA) : Il s’agit davantage d’un système métrique, mais il
peut également servir de modèle de tarification pour les entreprises ayant des
tonnes de conversions.
• Taux de clic (CTR) : Il s’agit du pourcentage de personnes qui ont cliqué
sur votre annonce par rapport au total des impressions.
• Ciblage : Avec l’arrivée des smartphones, vos possibilités de ciblage sont

ESI 59
CHAPITRE 4. ETAT DES LIEUX ET IDENTIFICATION DES BESOINS

montées en flèche. Auparavant, vous ne pouviez choisir que les sites web, la
taille des bannières et l’emplacement physique pour cibler vos publicités. Ce
n’est plus le cas aujourd’hui.
• Pages de renvoi : C’est probablement la partie la plus négligée du marketing
numérique. La page d’accueil est l’endroit où l’utilisateur se rend après avoir
cliqué sur votre publicité.
• Passerelle mobile : Cela ressemble beaucoup aux pré-rouleaux vidéo. La
différence est qu’ils agissent comme une "passerelle" vers l’ensemble de votre
site web, ou vers une certaine section de votre site. Il peut s’agir de publi-
cités affichées ou de publicités vidéo. Elles occupent la totalité de l’écran et
l’utilisateur doit attendre quelques secondes avant de pouvoir continuer sur le
site.
Une fois que ces mesures sont recueillies à partir des plateformes dont nous avons parlé
précédemment, l’utilisateur (qui est l’employé de l’entreprise de GEN-42) utilise l’outil
de ce module pour créer le rapport basé sur les besoins du client.

4.5.2 Data Tagging Module


Le module de Data Tagging est un système qui classe les commentaires sur les
réseaux sociaux en fonction de sa polarité et de sa catégorie et permet à l’utilisateur
de marquer les commentaires mal classés, il affiche divers chiffres et statistiques sur
cette classification et utilise des algorithmes d’apprentissage automatique.
Ce module représente le système que nous concevons et mettons en œuvre.

4.5.3 Enchère en temps reel (real-time bidding - RTB)


GEN-42 travaille donc sur un autre module pour les enchères en temps réel. Le
« real-time bidding » (enchère en temps réel en anglais), communément appelé RTB
est une technologie utilisée dans la publicité en ligne qui consiste à vendre en temps
réel et au plus offrant une impression publicitaire donnée. Les annonceurs choisissent
ou non d’enchérir et à quel prix en fonction des caractéristiques comme la taille de la
bannière, le contexte de la page web ou encore l’endroit et le moment auxquels elle est
visualisée1. Les campagnes en real-time bidding, souvent confiées par les annonceurs
à des trading desks, sont censées cibler uniquement les internautes jugés pertinents
dans le cadre d’une campagne annonceur, et ainsi limiter la déperdition sur cible.

Fonctionnement
Le processus du RTB se déroule en quelques millièmes de secondes. Voici les
différentes étapes qui prennent place :
• Un utilisateur appelle une page web qui utilise le RTB.
• Le tag URL contenu dans la page web appelle un serveur publicitaire ou « ad
server »
• Ce serveur est en lien avec un ou des « supply side platform » (SSP). Il les
appelle et détermine qui offre le meilleur prix.
• La publicité remportant l’enchère est alors affichée sur la page web.

Module de Prévision et de la classification des données


C’est d’ailleurs le projet sur lequel nous travaillons. Il consiste à collecter des
données et des retours d’expérience sur les annonces et les contenus postés par les

ESI 60
CHAPITRE 4. ETAT DES LIEUX ET IDENTIFICATION DES BESOINS

créateurs de GEN-42 pour ses différents clients. et à les mettre en classes sur la base du
contenu de manière automatique. Ces données collectées proviennent principalement
de Facebook et d’Instagram pour l’instant.

Différentes étapes du processus du projet real-time bidding


• Collecte de données : Cela commence par l’utilisation de l’API pour les
développeurs fournie par Facebook, appelée l’API Graph. Il permet de récupé-
rer toutes les données nécessaires sur Facebook et Instagram, en fonction des
identifiants du contenu que l’on souhaite récupérer.
• Analyser les données : Dans cette étape, il s’agit de l’analyse des données
collectées sur les réseaux sociaux à l’aide de l’API graphique. les éléments
inutiles seront supprimés de l’ensemble de données pour ne garder que ce qui
est important.
• Traitement des données : Dans cette phase, c’est le traitement des données
pures de la phase précédente. Un ensemble d’apprentissage (training set) sera
construit pendant l’exercice de l’algorithme et le test sur les nouvelles données.

4.6 Identification des objectifs du système projeté


• Récupérer les commentaires et publications Facebook pour toutes les pages
Facebook des clients et les afficher.
• Classifier automatiquement les commentaires Darja en fonction de la polarité.
• Classifier automatiquement les commentaires Darja en fonction de la catégorie.
• Donner à l’utilisateur la possibilité de marquer la polarité d’un commentaire
(Positif / Négatif / Neutre).
• Donner à l’utilisateur la possibilité de baliser le champ d’un commentaire (Ré-
clamation / Question / Prix / Spam / Sans rapport).
• Augmenter l’apprentissage et les performances de l’algorithme grâce à l’option
de tag manuel avec le temps.
• Donner à l’utilisateur la possibilité de répondre à un commentaire directe-
ment via l’interface de l’outil, si l’utilisateur a l’autorisation nécessaire pour
répondre, et le commentaire sera envoyé directement sur facebook.
• Afficher les statistiques des résultats de classement pour chaque page des 6
derniers mois à travers un graphique.
• Afficher des statistiques sur les performances de l’entreprise pour toutes les
pages au cours des 6 derniers mois via un tableau de bord organisé.
• Avoir des chiffres réels qui indiquent le niveau de satisfaction pour les posts
de chaque page, et savoir à quelle catégorie appartient la plupart des commen-
taires.
• Générer des rapports Excel pour chaque page facebook client contenant les in-
formations nécessaires sur cette page spécifique, à envoyer à chacun des clients
GEN-42.
• Donner à l’utilisateur la possibilité de voir la précision de la classification au-
tomatique et d’observer sa progression dans le temps grâce à un histogramme.

4.7 Identification des acteurs du système


Notre système comprend deux acteurs

ESI 61
CHAPITRE 4. ETAT DES LIEUX ET IDENTIFICATION DES BESOINS

Community manager :
comme décrit précédemment, les community managers sont le visage de l’entre-
prise, et ce sont eux qui sont les principaux responsables de la plupart des activités
des réseaux sociaux, c’est pourquoi un community manager est un des deux acteurs
de notre système.
Leur rôle est de taguer les commentaires mal prédits, d’y répondre si nécessaire, de
consulter les performances de l’entreprise, de générer des rapports et d’utiliser les
informations fournies par notre système pour réfléchir à une meilleure stratégie de
création de contenu.

Super-Admin :
Ce rôle est de la responsabilité du directeur général, en plus qu’il inclut toutes
les fonctionnalités effectuées par un community manager régulier, le super-admin a
le privilège de créer, modifier et supprimer des comptes de community mangers, il
peut surveiller tout leur historique d’activité, leur attribuer des pages, consulter leurs
contributions et les promouvoir en super-admin.

4.8 Spécifications fonctionnelles

ID Spécification Priorité
1 Le système doit permettre aux utilisateurs de s’authentifier. Medium
2 Le système doit permettre aux utilisateurs de consulter le tableau de Max
bord général.
3 Le système doit permettre aux utilisateurs d’accéder à la page où ils Max
peuvent voir les pages facebook des clients.
4 Le système doit charger les listes des pages clients de facebook. Max
5 Le système doit permettre aux utilisateurs de visualiser la liste des pages, Max
et chaque page sera vue avec son titre et sa photo de profil facebook, le
nombre de commentaires positifs, le nombre total de commentaires et la
précision de la classification automatique.
6 Le système doit permettre aux utilisateurs d’accéder à une Page client Max
spécifique.
7 Le système doit permettre aux utilisateurs de consulter le tableau de Max
bord pour chaque page.
8 Le système doit charger les Posts d’une page facebook, selon la minute Max
en cours.
9 Le système doit permettre aux utilisateurs de visualiser la liste des Post Max
pour une page spécifique, et chaque Post sera accompagné de sa photo (si
elle existe), du nombre de likes, partages et commentaires et du nombre
de commentaires traités.
10 Le système doit indiquer si un Post n’est pas traité en affichant le mot Max
’NEW’.
11 Le système doit permettre aux utilisateurs d’accéder à un Post spécifique. Max
12 Le système doit charger tous les commentaires existants d’un post face- Max
book.
13 Le système doit permettre aux utilisateurs de visualiser la liste des com- Max
mentaires pour un Post spécifique.

ESI 62
CHAPITRE 4. ETAT DES LIEUX ET IDENTIFICATION DES BESOINS

14 Le système doit permettre aux utilisateurs de Tagger manuellement la Max


polarité d’un commentaire.
15 Le système doit permettre aux utilisateurs de Tagger manuellement la Max
catégorie d’un commentaire.
16 Le système doit permettre aux utilisateurs de visualiser la permission Max
pour vérifier s’il peut répondre à un commentaire.
17 Le système doit permettre aux utilisateurs de générer des rapports Excel Max
pour les envoyer aux clients.
18 Le système doit permettre aux utilisateurs de répondre à un commen- Medium
taire.
19 Le système doit permettre aux utilisateurs de modifier leurs informations Max
personnelles.
20 Le système doit permettre aux utilisateurs de consulter leurs historiques Max
d’activité.
21 Le système doit permettre aux utilisateurs de transférer un commentaire Max
aux autre utilisateurs.
22 Le système doit permettre aux utilisateurs de joindre une note avec le Medium
commentaire transféré.
23 Le système doit notifier les utilisateurs quand il y a un commentaire Max
transféré entrant.
24 Le système doit permettre aux utilisateurs de consulter leurs notifica- Max
tions.
25 Le système doit permettre au Super-Admin de créer un compte Commu- Max
nity Manager.
26 Le système doit permettre au Super-Admin de supprimer un compte Medium
Community Manager.
27 Le système doit permettre au Super-Admin de modifier un compte Com- Medium
munity Manager.
28 Le système doit permettre au Super-Admin de promouvoir un Commu- Max
nity Manager à un Super-Admin.
29 Le système doit permettre au Super-Admin de consulter l’historique d’ac- Max
tivité de tous les autres Community Managers.
30 Le système doit permettre au Super-Admin de consulter le classement Medium
des contributions des utilisateurs.
31 Le système doit permettre au Super-Admin de consulter la liste des uti- Medium
lisateurs connectés.
32 Le système doit permettre au Super-Admin d’affecter des pages spéci- Max
fiques a un Community Manager.
33 Le système doit classer automatiquement les commentaires selon leur Max
polarité.
34 Le système doit classer automatiquement les commentaires selon leur Max
catégorie.
35 Le système doit être facile et simple à utiliser. Max
36 Le système doit avoir une interface graphique ergonomique conviviale. Max
Table 16: Spécifications fonctionnelles du système

ESI 63
CHAPITRE 4. ETAT DES LIEUX ET IDENTIFICATION DES BESOINS

4.9 Spécifications techniques

ID Spécification Priorité
1 Le système doit disposer d’un compte Super-Admin. Medium
2 Le système doit être disponible 24/7. Max
3 Le système doit être une application Web. Max
4 Le système doit avoir une précision de classification qui s’améliore avec Max
le temps.
5 Le système doit utiliser les commentaires qui ont été mal prédites pour Max
améliorer l’apprentissage du modèle de classification.
6 Le système doit garder toujours les données des six derniers mois. Max
7 Le système doit exécuter les travaux dans un temps optimal. Max
8 Le code doit être bien commenté afin de faciliter le développement de Max
toutes autres fonctionnalités supplémentaires et maintenance de l’appli-
cation.
9 Le système doit avoir certaines réglementations en matière de création de Medium
mot de passe (taille minimale des caractères : 8, doit avoir des caractères
minuscules et majuscules et des chiffres)
10 Le système doit être déployé sur le serveur d’entreprise. Max
Table 17: Spécifications techniques du système

ESI 64
CHAPITRE 4. ETAT DES LIEUX ET IDENTIFICATION DES BESOINS

4.10 Diagramme des cas d’utilisation

Figure 22 – Diagramme des cas d’utilisation de système

ESI 65
CHAPITRE 4. ETAT DES LIEUX ET IDENTIFICATION DES BESOINS

4.11 Documentation du diagramme des cas d’utili-


sation
Dans ce qui suit, nous expliquerons en détail les cas d’utilisation les plus impor-
tants, ceux liés aux principaux objectifs de notre système, le tag et la réponse au
commentaire.
CU Tagger manuellement la polarité d’un commen-
taire
ID 14
Description brève Permet à l’utilisateur de corriger la polarité d’un com-
mentaire qui a été mal prédit, et cela a pour but d’aug-
menter la précision de la classification.
Acteurs primaires User
Acteurs secondaires Aucun
Préconditions L’application est en cours d’exécution dans le navigateur
L’utilisateur doit être authentifié
Enchaînement principal 1. L’utilisateur se rend à la page ’Pages List’
2. L’utilisateur choisit une page client et y accéder.
3. L’utilisateur choisit un Post ’NEW’ et y accéder.
4. S’il y a un commentaire dans cette page de commen-
taires dont la polarité prévue (automatique) est fausse :
4.1 L’utilisateur choisit la bonne polarité manuelle en
cliquant sur l’un des trois Smileys / Emojis :
Vert pour positif
Orange pour neutre
Rouge pour négatif
5. Sinon l’utilisateur accéde à la page suivante de com-
mentaires de ce Post, en cliquant sur le numéro de page
en bas.
6. L’utilisateur clique sur ’Save Changes’ pour enregis-
trer la progression.
Post conditions Certains commentaires seront corrigés dans la pola-
rité après ce cas d’utilisation, par conséquent, certains
nombres de calculs changeront, tels que les performances
dans ce post, et dans cette page et le nombre total de
commentaires positifs / neutres / négatifs.
les commentaires corrigés seront également ajoutés au
modèle de classification pour faciliter l’apprentissage.
Enchaînements alterna- Aucun
tifs
Table 18: DCU : Tagger manuellement la polarité d’un
commentaire

CU Répondre au commentaire
ID 18
Description brève Permet à l’utilisateur de répondre à un commentaire sur
facebook directement via cet outil.

ESI 66
CHAPITRE 4. ETAT DES LIEUX ET IDENTIFICATION DES BESOINS

Acteurs primaires User


Acteurs secondaires Aucun
Préconditions L’application est en cours d’exécution dans le navigateur
L’utilisateur doit être authentifié
Enchaînement principal 1. L’utilisateur se rend à la page ’Pages List’
2. L’utilisateur choisit une page client et y accéder.
3. L’utilisateur choisit un Post ’NEW’ et y accéder.
4. Si l’utilisateur est autorisé à répondre, il devrait voir
un bouton vert qui indique ’Reply’
4.1 L’utilisateur clique sur le bouton vert et une nouvelle
fenêtre s’ouvre.
4.2 L’utilisateur écrit sa réponse dans la zone de texte
et envoie la réponse en cliquant sur ’Send Reply’
5. Sinon l’utilisateur n’a pas l’autorisation du client qui
possède la page, il voit donc un bouton rouge qui dit
‘Can’t Reply’.
Post conditions Une nouvelle réponse sur un certain commentaire a été
publiée sur facebook par cette page.
Enchaînements alterna- Aucun
tifs
Table 19: DCU : Répondre au commentaire

CU Générer un rapport Excel


ID 17
Description brève Permet à l’utilisateur de générer un rapport Excel pour
une page Facebook client spécifique qui contient en dé-
tail les chiffres et les statistiques pour la polarité et la
catégorie et réagit au cours des 6 derniers mois.
Acteurs primaires User
Acteurs secondaires Aucun
Préconditions L’application est en cours d’exécution dans le navigateur
L’utilisateur doit être authentifié
Enchaînement principal 1. L’utilisateur se rend à la page ’Pages List’
2. L’utilisateur choisit une page client et y accéder.
3. L’utilisateur clique sur ‘Generate and Download Re-
port’.
4. L’utilisateur obtient une fenêtre qui charge le rapport
indiquant ’Generating Report’
5. Lorsque le chargement est terminé, la fenêtre indique
"Report Generated !" et l’utilisateur obtient un bouton
qui dit "Download Report".
6. L’utilisateur clique sur ’Download Report’ et le rap-
port est téléchargé automatiquement.
Post conditions Un nouveau rapport Excel client sera généré et télé-
chargé sur la machine de l’utilisateur et prêt à être en-
voyé.

ESI 67
CHAPITRE 4. ETAT DES LIEUX ET IDENTIFICATION DES BESOINS

Enchaînements alterna- Aucun


tifs
Table 20: DCU : Générer un rapport Excel

CU Consulter le tableau de bord d’une page


ID 7
Description brève Permet à l’utilisateur de consultez et visualisez le ta-
bleau de bord de cette page client et vérifiez toutes les
statistiques et les chiffres de celle-ci, qui concernent la
polarité et la catégorie, des 6 derniers mois.
Acteurs primaires User
Acteurs secondaires Aucun
Préconditions L’application est en cours d’exécution dans le navigateur
L’utilisateur doit être authentifié
Enchaînement principal 1. L’utilisateur se rend à la page ’Pages List’
2. L’utilisateur choisit une page client et y accéder.
3. L’utilisateur consulte le tableau de bord apparaissant
en haut de la page qu’il vient d’entrer.
Post conditions L’utilisateur a consulté le tableau de bord de cette page
facebook client.
Enchaînements alterna- Aucun
tifs
Table 21: DCU : Consulter le tableau de bord d’une
page

Conclusion
Après s’être familiarisé avec l’entreprise, évoqué ses différents rôles et perspectives
d’avenir à développer ; avoir identifié les besoins, les objectifs, les acteurs et les spé-
cifications fonctionnelles et techniques, nous présenterons ensuite dans le chapitre
suivant la conception complète de notre solution détaillant chaque phase en son sein.

ESI 68
Chapitre 5

Conception

Introduction
Dans ce chapitre, nous verrons en détail quelle est la solution que nous proposons.
Nous projetterons la lumière sur la solution concernant la partie analyse des
sentiments, où nous détaillerons chacune de ses phases : récupération, annotation,
prétraitement, représentation et classification ; et nous mentionnerons les différentes
techniques que nous exécuterons au cours de chaque phase.
De plus, nous décrirons la base de données de ce système, nous donnerons le
schéma entité / association et la description des entités utilisées.

5.1 Architecture globale d’analyse de sentiment


Comme discuté dans notre problématique, nous allons concevoir et mettre en œuvre
un système qui traite les données des réseaux sociaux. Ces données sont collectées
à partir des pages Facebook des clients de notre agence, et les données sont des
commentaires Facebook et des messages privés.
Notre système cherchera à classer les données, par polarité et par catégorie /champ,
son objectif principal sera de déterminer quel est la catégorie qui intéresse le plus les
gens et il nous informera s’ils sont vraiment satisfaits des services qui leur sont fournis.
Dans cette partie, nous discuterons de la conception détaillée de notre système,
Les grandes phases tels qu’il est affiché dans la figure 23 sont : la récupération des
données, l’annotation, le prétraitement, la représentation et la classification.
La figure suivante est un plan détallé sur la façon dont la solution proposée sera
mise en œuvre. Elle est inspirée de processus de travaux similaires tels que Chader
et al. (2019), Elouardighi et al. (2018) et Shoukry and Rafea (2012)

69
CHAPITRE 5. CONCEPTION

Figure 23 – Un schéma détaillé qui montre les différentes interactions entre les
données et les phases de notre système.

Nous commençons maintenant par une explication détaillée des phases de ce


schéma.

5.2 Récupération des données


5.2.1 Objectif et nature des données
Notre objectif principal est d’identifier si les données (commentaires) sont positives,
négatives ou neutres sur nos pages client (nous allons parcourir les pages client dans
la section suivante).
Concernant les données que nous traiterons, le client (GEN-42) et nous sommes
parvenus à un accord sur ce que seront les retours que nous allons examiner, à savoir :
Commentaires et messages privés des pages clients GEN-42 Facebook La priorité est
d’abord aux Commentaires et plus précisément aux commentaires Facebook.
Par conséquent, nous examinons un problème de classification de texte dans lequel
nous utiliserons des techniques d’apprentissage automatique, et dans les sections sui-
vantes, nous parlerons de manière détaillée de la source de nos données, comment nous
les obtenons et comment nous les traiterons, et éventuellement le classer et montrer
les résultats.

5.2.2 La source de données : Facebook


Tout d’abord, avant de commencer à répertorier nos pages et à indiquer le nombre
de publications et de commentaires, nous citerons l’outil qui nous a permis de récu-

ESI 70
CHAPITRE 5. CONCEPTION

pérer la plupart de nos données : pages, posts et commentaires : API FACEBOOK


GRAPH.
Qu’est-ce que l’API FACEBOOK Graph ?
L’API Graph est le principal moyen d’entrer et de sortir des données de la pla-
teforme Facebook. Il s’agit d’une API basée sur HTTP que les applications peuvent
utiliser pour interroger par programme des données, publier de nouvelles histoires,
gérer des annonces, télécharger des photos et effectuer une grande variété d’autres
tâches.

Figure 24 – Capture d’écran d’une utilisation de l’API Graph Facebook

5.2.3 Nos données sur Facebook


GEN-42 a le contrôle sur un total de 41 pages dans le cadre de leur entreprise, dans
lesquelles elles sont classées comme : 36 pages client et 5 pages possédées (owned
pages). La différence est la suivante : GEN-42 dispose de toutes sortes d’accès et
d’autorisations sur les pages possédées, telles que la publication, le contrôle de la
messagerie privée, l’affichage des statistiques, etc.
Cependant, le niveau d’accès diffère dans la catégorie des pages client, et il diffère
d’une page à l’autre, par exemple, il y a des pages client et auxquelles GEN-42 peut
répondre sur leurs commentaires, tandis qu’il y a des pages où ils peuvent également
utiliser la messagerie directe, et il y a des pages où GEN-42 ne peut afficher que les
statistiques et les données. Le niveau d’accès diffère d’un client à l’autre selon l’accord
ou le contrat déjà établi entre GEN-42 et le client.
Maintenant, bien que le niveau d’accès diffère d’une page client à l’autre, heureu-
sement pour nous, cela n’affectera pas la capacité à récupérer les commentaires de la
page client, sinon nous serons obligés de ne pas traiter toutes les pages.
En utilisant la bonne requête et le bon Access Token utilisateur, nous sommes en
mesure de récupérer la liste des pages client (cela sera discuté en détail dans le briefing
de réalisation) et les pages appartenant à GEN-42, Les pages peuvent différer d’un
utilisateur à l’autre (directeur général, membre de l’équipe technique ou gestionnaire
de communauté) mais nous avons cependant eu accès à toutes les pages, et elles sont
documentées en annexe. (50)

5.2.4 Hiérarchie globale et premières étapes de récupération


Pour récupérer les commentaires d’une seule page Facebook, nous devons y accéder
via Facebook GRAPH API et suivre les étapes suivantes :

ESI 71
CHAPITRE 5. CONCEPTION

(1) Créer une application Facebook


(2) Entrer dans l’API Graph
(3) Sélectionner notre application
(4) Donner à tous la permission de notre Access Token utilisateur
(5) Obtenir nos pages Facebook avec leurs Pages Access Tokens
(6) Pour chaque page, nous obtenons les publications (posts) en utilisant le access
token de la page
(7) Pour chaque post, nous obtenons les commentaires en utilisant l’access token
de la page et l’ID de la publication.
Les étapes 5 et 6 et 7 sont effectuées de manière périodique selon nos besoins et
elles nécessitent des requêtes spécifiques qui seront expliquées en détail dans la partie
Implémentation.
Après avoir effectué les 4 premières étapes, nous sommes prêts à commencer à
traiter directement les pages que nous possédons, et donc à effectuer les étapes 5,
6 et 7 avec le Graph API, ou avec des scripts python en utilisant les bibliothèques
de requests (les bibliothèques utilisées seront expliquées plus tard en détail dans la
partie Réalisation).

5.2.5 Récupération des commentaires d’une page


Dans ce qui suit, nous montrons par un exemple dans un certain exemple comment
récupérer les commentaires d’une page particulière.
Nous avons utilisé les fonctions de l’API Graph via la bibliothèque de Requests,
Tout d’abord, nous devons commencer par appeler les pages avec le Token d’accès
utilisateur, nous obtenons une liste de pages, avec leur ID et chaque Access Token de
page.
Ce dernier élément est extrêmement important et sans les Token d’accès aux pages,
nous ne pourrions pas obtenir les publications des pages et leurs commentaires.
Notant que, le Access Token d’une page n’est pas stable. Il change à chaque période
de temps (1 à 2 heures) s’il était récupéré par un Access Token utilisateur de courte
durée. Cependant, dans notre cas, il a été récupéré par un Access Token utilisateur
étendu (Qui dure une grande période) comme nous l’avons montré précédemment, ce
qui prolonge la durée de vie de l’Access Token de la page, mais il est impératif de le
faire de toute façon.

Récupération des pages et leurs Access Token au format json


(qui seront également stockés dans une base de données au format json)
Les figures ci-dessous représentent des captures d’écran prises à partir d’un outil open
source qui affiche les fichiers au format Json appelé : Json Viewer, et montre les pages
récupérées sous forme d’éléments dans un seul fichier.
Les données qu’on récupère par page : L’identifiant (Id), Le nom (Name), L’image
(Picture), L’Access Token.

ESI 72
CHAPITRE 5. CONCEPTION

Figure 25 – Captures d’écran tirées de json-Viewer

Figure 26 – Captures d’écran d’éléments récupéré pour chaque page – outil : json
Viewer

Récupération des posts pour une page


Même si notre étude concernera les commentaires de texte et non les publications
(Posts), nous avons cependant besoin de ces publications pour les afficher dans le
Frontend, puis nous afficherons pour chaque publication son texte, sa photo (s’il elle
existe) et ses commentaires.
Pour récupérer les publications, nous avons besoin de l’Access Token et l’identifiant
(ID) de la page.
Voici une capture d’écran (prises à partir de l’outil Json Viewer) du fichier de
données Json résultant qui montre les publications récupérées. Nous avons choisi pour
cet exemple la page SKOR, car il s’agit d’une page active qui publie régulièrement.

ESI 73
CHAPITRE 5. CONCEPTION

Figure 27 – Les posts d’une page récupérés dans un seul fichier, capture prise de
l’outil : Json-Viewer

Les données qu’on récupère par Publication : L’identifiant (ID), Le texte de la


publication (Mssage), L’image miniature (Picture), L’image grande (Full picture),
Nombre de réactions (Likes), Nombre de partages (Shares), Nombre de commentaires
(Comments).

Figure 28 – Captures d’écran d’éléments récupéré pour chaque post – outil : json
Viewer

ESI 74
CHAPITRE 5. CONCEPTION

Récupération des commentaires pour un post


Tout comme nous utilisons des demandes pour récupérer des posts à l’aide de
l’ID de page, nous utilisons également des demandes à l’aide de l’ID de post pour
récupérer les commentaires.
Eléments récupérés par commentaire : Message, Id, Can Comment, Post id, Page id.
L’identifiant (ID), Le texte du commentaire (Mssage), L’identifiant de la publication
auquel appartient le commentaire (Post id), L’identifiant de la page auquel appartient
le commentaire (Page id), La permission de l’utilisateur de répondre (Can Comment).

Figure 29 – Captures d’écran d’éléments récupéré pour chaque commentaire – outil :


json Viewer

5.2.6 Tableau récapitulatif des données récupérées


Utilisateur : (Bilel Mostefa / membre de l’équipe technique)

Figure 30 – Récapitulatif des données récupérées à partir de facebook pour cet


exemple

ESI 75
CHAPITRE 5. CONCEPTION

5.2.7 Un schéma récapitulatif pour la phase de récupération


des données
Ce shema récapitule les principales étapes effectuées dans le processus de récupé-
ration de données, il montre que l’API Facebook Graph est notre principale source de
données, que nous avons généré manuellement un user acess token pour générer les
pages acess tokens, puis nous avons utilisé ces derniers pour récupérer les publications
et les commentaires de chaque page.

Figure 31 – Schéma récapitulatif de la phase de récupération de données

5.3 Annotation des données


Parce que nous allons effectuer un processus de classification de texte supervisé,
nous devons annoter certaines données afin de les passer en tant qu’ensemble d’ap-
prentissage.
Cette phase consiste à étiqueter les données, c’est-à-dire à donner des étiquettes
aux données. Selon les besoins de nos clients, nous étiquetons nos données en fonction
de deux catégories (couches)
Couche 1 - Polarité :
— Positif
— Négatif
— Neutre
Couche 2 - domaine/catégorie :
— Question (demande d’informations)
— Plainte (réclamation)

ESI 76
CHAPITRE 5. CONCEPTION

— Spam (tout type de spam)


— Prix et / ou qualité
— Autre ou non apparenté

5.3.1 Sources de données à annoter


Dataset Récupéré du travail de Mataoui et al. (2016)
Nous avons récupéré un ensemble de données public qui est déjà annoté à partir d’un
travail précédent sur l’analyse des sentiments pour le dialecte Algérien (Mataoui et al.
(2016)) qui contient 12,114 commentaires annotés, mais il n’en contient qu’environ
1,100 négatifs.
Nous avons donc créé le premier Training Set qui contient 1,100 commentaires
négatifs et 1,100 commentaires positifs de cet ensemble de données publiques pour
commencer notre Training.

Dataset GEN-42
Tout comme la phase de récupération des données montrée, nous avons utilisé la
même pour récupérer environ 3971 commentaires, sans annotation.
Nous avons utilisé des scripts Python pour les diviser en 20 fichiers CSV, chacun
contenant exactement 200 commentaires, puis nous avons converti les fichiers CSV
en 20 fichiers Excel pour faciliter l’annotation manuelle pour nos gestionnaires de
communauté et finalement envoyer ces fichiers Excel à nos Community managers de
GEN-42 qui ont accepté de nous aider à annoter les données.
Les captures d’écran suivantes montrent un exemple à partir d’un exemple de
fichier CSV :

Figure 32 – Exemple d’un fichier csv contenant les commentaires de Dataset GEN-42

ESI 77
CHAPITRE 5. CONCEPTION

Et voici la capture d’écran du fichier Excel résultant :

Figure 33 – Exemple d’un fichier excel contenant les commentaires de Dataset GEN-
42

Et voici comment le fichier doit être annoté :


(Nous leur avons également envoyé un fichier d’instructions qui explique en dé-
tail comment l’annotation doit être faite, vous trouverez ce fichier en plus d’autres
informations sur cette procédure dans la partie de l’annexe, figure 110 )

Figure 34 – Exemple de commentaires annotés dans un fichier Excel de Dataset


GEN-42

ESI 78
CHAPITRE 5. CONCEPTION

Dataset GEN-42, ENIEM


En plus de l’ensemble de données public collecté sur Internet et de l’ensemble de
données GEN-42 annoté par les Community managers.
Nous avons également créé un troisième ensemble de données qui a été collecté
uniquement à partir de la page Facebook ENIEM, contenant plus de 2900 commen-
taires.
Ce dernier jeu de données a été annoté par nous même et certain membres de
l’équipe de GEN-42 à l’aide de l’outil d’annotation Tagtog, C’est une plateforme
d’annotation de texte collaborative pour rechercher, créer et maintenir efficacement
des ensembles de données NLP. Accessible sur le Cloud et sur site. Cejuela et al.
(2014).
Voici une capture d’écran utilisant Tagtog sur quelque commentaire comme exemple :

Figure 35 – Capture d’écran montre l’utilisation de l’outil TagTog

Les passage vert indique le positif, le jaune pour le neutre et le rouge pour le
negatif.
Et les résultats peuvent être exportés vers un fichier TSV qui pourrait être converti
en csv et exploité.

ESI 79
CHAPITRE 5. CONCEPTION

Voici une capture d’écran du fichier CSV ouvert sur Excel correspondant aux
commentaires sur l’exemple ci-dessus :

Figure 36 – Exemple des commentaires annotés dans Tagtog est exporté puis ex-
ploités dans Excel

Certaines données ont été annotées à l’aide de Tagtog, les autres ont été annotées
par Excel comme expliqué et c’est ainsi que nous avons formé le troisième ensemble
de données que nous avons.
Plusieurs détails et chiffres sur chaque ensemble de données seront discutés dans
le chapitre de réalisation.

Cumul des corpus par polarité et catégorie

Code Corpus Positive Négative Neutre Vide Total


C1 Mataoui et al. (2016) 10987 1127 0 0 12114
C2 GEN-42 1457 275 1480 759 3971
C3 GEN-42, ENIEM 1144 161 1627 32 2964
C4 Extra Manuel 115 143 0 0 258
Total 13703 1706 3107 791 19307
Table 22: Les corpus collectés et annotés en termes de
polarité

Code Corpus Question Complaint Pricing Spam Unrelated Total


F1 GEN-42 199 45 171 773 2783 3971
F2 GEN-42, ENIEM 928 115 463 88 1370 2964
Total 1127 160 634 861 4153 6935
Table 23: Les corpus collectés et annotés en termes de
categorie

ESI 80
CHAPITRE 5. CONCEPTION

5.3.2 Un schéma global pour la phase d’Annotation des don-


nées

Figure 37 – Le processus complet de l’annotation de nos Datasets

5.4 Prétraitement (Preprocessing)


Le prétraitement est en fait plus important que la classification elle-même dans
notre cas, prétraiter les données, c’est les simplifier et les normaliser.
L’objectif du prétraitement est d’éliminer le bruit et les mots non significatifs et
puis la suppression des flexions augmente les fréquences des mots significatifs.
De façon réaliste ; il serait hautement improbable que nous réussissions à éliminer
100% du bruit surtout avec la complexité de notre dialecte Algérien. Cependant,
notre objectif est de réduire le bruit au maximum, ce que nous expliquerons à travers
chacune des étapes de prétraitement ;
Nous montrerons comment chaque étape fonctionne, puis le résultat final lorsqu’ils
sont utilisés ensemble.
Notre prétraitement comprendra ce qu’on appelle la tokenisation.
La tokenisation (Anglais : Tokenization) est une procédure qui assure la découpe
de la chaîne en mots ou parties appelées Tokens. La tokenisation nous permet de
mettre de la valeur là où elle devrait être mise, les mots, car dans l’analyse des

ESI 81
CHAPITRE 5. CONCEPTION

sentiments, un mot pourrait changer le sens ou la direction dans son ensemble de la


phrase.
Ajustement de la Tokenisation et de notre approche : Il n’y a pas une seule façon
précise d’utiliser la tokenisation, cependant la plupart des Tokenisers (méthodes) qui
existent coupent la chaîne sans mettre considérer tous les signes de ponctuation.
Bien que ce soit en fait une bonne approche car cela nous permet de traiter
chaque mot séparément (par exemple : [Link] ==> <bilel>, <mostefa> après
tokenisation), il ne fait pas les mêmes choses sur toutes les marques de ponctuation.
Tels que le «_» et le «-», c’est pourquoi nous avons suggéré de remplacer le «_» et
le «-» dans une phase distincte avant la tokenisation avec des espaces blancs.
De plus, la tokenisation sépare les mots qui précèdent et suivent les deux points
« :» et ce n’est pas pratique en ce qui concerne les liens URL car la plupart des liens
contiennent les deux points et les chants «-», «_».
Par conséquent, nous commencerons par la première étape de notre prétraitement :
Phase de Pré-tokenisation.

5.4.1 Pré-tokenisation
Étape 1 : Élimination des liens URL
Tout lien URL fourni n’aura pas vraiment d’effet sur le fait que le commentaire
soit positif ou négatif, nous allons donc commencer par les éliminer d’abord de votre
message avant de poursuivre avec le texte restant.
Voici un exemple de son fonctionnement :
Entrée : [[ This is my link https ://[Link]/ the rest of my msg ]]
Sortie : [[ This is my link the rest of my msg]]

Étape 2 : Remplacement de «_» et «-» par des espaces blancs


Une étape très importante est que nous remplaçons les tirets «_» et «-» par des
espaces blancs,
Parce que si nous procédons directement à la tokenisation sans cette phase, alors
nous aurons des problèmes avec des mots tels que <problem-solving_this_new_msg>,
il sera considéré comme un mot et il deviendra <problemsolvingthisnewmsg> lorsque
nous supprimons le bruit (les symboles et les ponctuations) ce qui confondra notre
classificateur lorsqu’il le trouvera dans le corpus.
Voici un exemple de son fonctionnement :
Entrée : [[ This_is_my_msg-the-rest-of-my-msg ]]
Sortie : [[ This is my link the rest of my msg]]

5.4.2 Tokenisation
La tokenisation (Anglais : Tokenization), est une étape très importante en ce qui
concerne la préparation des données dans l’analyse des sentiments, car nous avons
mentionné la valeur et le sens pouvaient tous reposer sur un seul mot, par conséquent,
avant de procéder à toute autre étape telle que la suppression du bruit, etc., nous
devons d’abord réduire notre chaîne en mots appelés Tokens.
Voici un exemple de son fonctionnement :
Entrée : [[ Saha arwah nahder m3ak berk matkhafche kamal ]]
Sortie : [[ [’Saha’, ’arwah’, ’nahder’, ’m3ak’, ’berk’, ’matkhafche’, ’kamal’] ]]

ESI 82
CHAPITRE 5. CONCEPTION

5.4.3 Après-Tokenisation
Étape 1 : Translittération
Il est important pour nos données d’avoir un corpus unifié, donc nous ne pouvons
pas permettre d’avoir une nature mixte de langues dans notre corpus.
C’est à ce moment-là que nous sommes parvenus à la conclusion de l’opération de
translittération, qui consiste essentiellement à transformer les lettres écrites arabes
en lettres écrites latines tout en préservant la façon dont les lettres doivent être
prononcées.
Nous avons recherché le tableau de translittération qui existe et nous avons ajusté
qu’il semble convenir à notre dialecte Algérien.

Voici un exemple de son fonctionnement :


 K@]]
Entrée : [[ Pñ¯ ¬@QK. ÉK Aë I
 K @’] ]]
Tokenisation : [[ [’Pñ¯’,’ ¬@QK.’,’ ÉK Aë’,’ I
Sortie : [[ [’ant’, ’hail’, ’bzaf’, ’fwr’] ]]
Message Assemblé : [[ ant hail bzaf fwr ]]

Étape 2 : Suppression des symboles


Il est vrai que les mots qui viennent après les signes de Hashtags () sont extrême-
ment importants et pourraient à eux seuls décider de la polarité des commentaires,
cependant le symbole du hashtag lui-même n’est pas vraiment distinct car il n’existe
pas dans une seule catégorie de messages sans l’autre. Comme tous les autres symboles
et signes de ponctuation, c’est pourquoi nous devons les effacer avant de procéder à
la classification de nos données.

Voici un exemple de son fonctionnement :


Entrée : [[ Message*Test., ! ! ! ? ? ? ? ?kifeh ? ? ? ?Bonneanée,un ;exemplehaah ]]
Tokenisation : [[ [’Message*Test.’, ’,’, ’ !’, ’ !’, ’ !’, ’ ?’, ’ ?’, ’ ?’, ’ ?’, ’ ?’, ’kifeh’, ’ ?’,
’ ?’, ’ ?’, ’ ?’, ’Bonneanée’, ’,’, ’un’, ’ ;’, ’exemple’, ’’, ’’, ’’, ’haah’] ]]
Sortie : [[ [’MessageTest’, ’kifeh’, ’Bonneanée’, ’un’, ’exemple’, ’haah’] ]]
Message Assemblé : [[ MessageTest kifeh Bonneanée un exemple haah ]]

Étape 3 : Suppression des lettres répétées


Cela se produit souvent dans les commentaires des médias sociaux, par suppression
de lettres répétées, nous voulons dire que nous éliminons les lettres répétées inutiles
que les gens écrivent lorsqu’ils décrivent quelque chose.

Un exemple : <Haaayeeeeeelllllll NNhhhhaaaaabbbbeeeeekkkkk> <Hayel Nhabek>


Et l’importance de cette phase est la réduction de la taille de notre corpus, donc
les mots dans lesquels a été écrit avec différents nombres de lettres mais sont les
mêmes, seront stockés comme les mêmes mots.

Voici un exemple de son fonctionnement :


Entrée : [[ vivaaaaaaaa l algeeerrrrriiiiiiiiiiiieeeeee we viivvvvaaaa Maaahreeeezzzzzzz
]]

ESI 83
CHAPITRE 5. CONCEPTION

Tokenisation : [[ [’vivaaaaaaaa’, ’l’, ’algeeerrrrriiiiiiiiiiiieeeeee’, ’we’, ’viivvvvaaaa’,


’Maaahreeeezzzzzzz’] ]]
Sortie : [[ [’viva’, ’l’, ’algerie’, ’we’, ’viva’, ’Mahrez’] ]]
Message Assemblé : [[ viva l algerie we viva Mahrez ]]

Étape 4 : Rendre les lettres minuscules


Avoir à la fois des lettres minuscules et majuscules dans le mot n’affectera pas le
sens, mais confond notre classificateur qui pensera que <yes> et <YES> et <YeS>
sont des mots différents alors qu’ils sont les mêmes et doivent être traités en consé-
quence.

C’est pourquoi cette étape est également une autre étape importante qui nettoie
notre corpus de ce genre de différences.

Voici un exemple de son fonctionnement :


Entrée : [[ ThIs An ExAmPlE OnE TwO TeST ]]
Tokenisation : [[ [’ThIs’, ’An’, ’ExAmPlE’, ’OnE’, ’TwO’, ’TeST’] ]]
Sortie : [[ [’this’, ’an’, ’example’, ’one’, ’two’, ’test’] ]]
Message Assemblé : [[ this an example one two test ]]

Étape 5 : Regroupement phonétique


Dans l’étape de regroupement phonétique, nous regroupons des mots qui sont écrits
différemment mais se réfèrent au même mot. Nous remplaçons donc les mots qui sont
similaires dans leurs sons par un seul mot comme référence pour tous.
Le but de cette étape est d’éviter d’avoir de nombreuses versions pour le même
mot écrit, et elle sera extrêmement utile juste avant de supprimer les mots en double.

par exemple les mots :


’alah’, ’allahe’ seront remplacés par : ’allah’
’wlh’, ’welah’, waleh ’seront remplacés par :’ wellah "
Nous avons créé un dictionnaire, manuellement, qui comprend un certain nombre
de possibilités qu’un mot peut être écrit pour plusieurs mots (tous en dialectes algé-
riens) et l’avons formaté comme un fichier json prêt à être utilisé.

ESI 84
CHAPITRE 5. CONCEPTION

voici une capture d’écran du fichier de dictionnaire créé :

Figure 38 – Le dictionnaire créé pour le regroupement phonétique, capture d’écran


de json-viewer.

Actuellement, le dictionnaire est composé de seulement 188 combinaisons au total, qui


ont été saisies manuellement par nous, mais il est ouvert à des améliorations futures.

Voici un exemple de son fonctionnement :


Entrée : [[ wlh ghir 4444 welah mansib khir menkoum alah yahfdkom allahe ykha-
likom ]]
Tokenisation : [[ [’wlh’, ’ghir’, ’4444’, ’welah’, ’mansib’, ’khir’, ’menkoum’, ’alah’,
’yahfdkom’, ’allahe’, ’ykhalikom’] ]]
Sortie : [[ [’wellah’, ’ghir’, ’4444’, ’wellah’, ’mansib’, ’khir’, ’menkoum’, ’allah’,
’yahfdkom’, ’allah’, ’ykhalikom’] ]]
Message Assemblé : [[ wellah ghir 4444 wellah mansib khir menkoum allah yahfd-
kom allah ykhalikom ]]

Étape 6 : Suppression de mots en double


Dans cette étape, nous supprimons les mots en double, qu’ils aient été initialement
écrits en double ou à la suite d’un regroupement phonétique (phase précédente)

Voici un exemple de son fonctionnement :


Entrée : [[ wellah ghir 4444 wellah mansib khir menkoum allah yahfdkom allah
ykhalikom ]]

ESI 85
CHAPITRE 5. CONCEPTION

Tokenisation : [[ [’wellah’, ’ghir’, ’4444’, ’wellah’, ’mansib’, ’khir’, ’menkoum’, ’al-


lah’, ’yahfdkom’, ’allah’, ’ykhalikom’] ]]
Sortie : [[ [’wellah’, ’ghir’, ’4444’, ’mansib’, ’khir’, ’menkoum’, ’allah’, ’yahfdkom’,
’ykhalikom’] ]]
Message Assemblé : [[ wellah ghir 4444 mansib khir menkoum allah yahfdkom
ykhalikom ]]

Étape 7 : Suppression des mots vides


Les mots vides sont les mots qui n’ont aucun effet sur la polarité de la phrase et ce
sont généralement des pronoms reliant les mots,

Voici quelques exemples de mots vides en français :


[’nous’, ’on’, ’ou’, ’par’, ’pas’, ’pour’, ’qu’, ’que’, ’qui’, ’sa’, ’se’, ’ses’, ’ son ’,’ sur
’,’ ta ’,’ te ’,’ tes ’,’ toi ’,’ ton ’,’ tu ’,’ un ’,’ une ’,’ vos ’,’ votre ’,’ vous ’ ,. . . ]

Dans notre liste de mots vides, nous avons rassemblé les mots arabes, français et
anglais en plus d’une liste de mots vides que nous avons ajoutés nous-mêmes qui
comprend notre dialecte Algérien et bien sûr, elle est toujours ouverte à l’améliora-
tion par les utilisateurs.

Voici un exemple de son fonctionnement :


Entrée : [[ je suis tres satisfait par ce produit ]]
Tokenisation : [[ [’je’, ’suis’, ’tres’, ’satisfait’, ’par’, ’ce’, ’produit’] ]]
Sortie : [[ [’tres’, ’satisfait’, ’produit’] ]]
Message Assemblé : [[ tres satisfait produit ]]

Étape 8 : Suppression des accents (désaccentation)


Sur nos réseaux sociaux algériens, les gens utilisent parfois des accents simplement
parce que ça a l’air cool et sans prendre en considération le sens réel des mots, leur
valeur et leur poids.
C’est-à-dire que cette phase supprime les accents des lettres, ce qui simplifie le
corpus, l’allège et nous permet de trouver un ensemble de mots encore plus petit.
Les substitutions ont été effectuées selon le tableau suivant :

Lettres avec Accent Substitution


é // è // ê e
à // â a
ù // û u
î // ï i
ç c
ô o

Table 24 – Lettres avec des accents et leurs substituts

Voici un exemple de son fonctionnement :


Entrée : [[ Thabééééééllllll ààààààà çççççç : ]]
Tokenisation : [[ [’Thabééééééllllll’, ’ààààààà’, ’çççççç’, ’ :’] ]]
Sortie : [[ [’Thabeeeeeellllll’, ’aaaaaaa’, ’cccccc’, ’ :’] ]]
Message Assemblé : [[ Thabeeeeeellllll aaaaaaa cccccc : ]]

ESI 86
CHAPITRE 5. CONCEPTION

Étape 9 : Substitution des chiffres par des lettres


Même si cela peut sembler déraisonnable, mais exprimer notre dialecte Algérien
peut produire des mots si complexes que parfois les gens utilisent des chiffres au lieu
de lettres.

Par exemple, ils utilisent le nombre 9 pour exprimer † et le nombre 3 pour exprimer
¨. . .
De plus, ces chiffres sont des bruits qui pourraient gâcher notre corpus et confondre
facilement notre classificateur, c’est pourquoi ils doivent être traités en conséquence.
La fonction que nous avons créée prend en considération si le nombre fait partie
d’un mot réel ou non. Il n’échange pas simplement des nombres en lettres, mais il
vérifie d’abord si ce nombre est en fait au milieu, au début ou à la fin d’un mot qui
est en fait composé de lettres alphabétiques, et pas seulement un nombre réel, sinon
il ne serait pas modifié.
Les substitutions ont été effectuées selon le tableau suivant :
Chiffres dans le mots Substitution
3 h
9 k
7 a

Table 25 – Les chiffres trouvés dans certains mots du dialecte Algérien et leurs
substituts

De plus, bien sûr, notre liste de substitutions est toujours ouverte à l’amélioration
par les utilisateurs si des cas similaires apparaissaient.

Voici un exemple de son fonctionnement :


Entrée : [[ 9oltlek rwah 3andi rak 3a9el 3liya , 911 ]]
Tokenisation : [[ [’9oltlek’, ’rwah’, ’3andi’, ’rak’, ’3a9el’, ’3liya’, ’,’, ’911’] ]]
Sortie : [[ [’koltlek’, ’rwah’, ’aandi’, ’rak’, ’aakel’, ’aliya’, ’,’, ’911’] ]]
Message Assemblé : [[ koltlek rwah aandi rak aakel aliya , 911 ]]
Remarquez comment tous les mots qui contiennent un chiffre sont traités, mais le
numéro de 911 n’a pas été modifié.

Étape 10 : Suppression des voyelles


Pourquoi la suppression des voyelles est-elle importante ou nécessaire dans notre
processus de prétraitement ?
La suppression de voyelle pourrait être une phase non nécessaire, une phase qui
changerait la construction initiale du mot et la rendrait. . . vide de sens et assez dif-
ficile à lire.

Cependant, nous oublions ici deux choses importantes :


Premièrement, les données que nous pré-traitons ne se dirigent pas vers un humain
pour les lire et les comprendre, mais vers un classificateur qui fonctionne mathémati-
quement.
Deuxièmement, l’effet de la suppression des voyelles sur nos mots de dialecte Al-
gérien, il réduit en fait considérablement le nombre de mots dans le corpus, surtout
lorsqu’il est appliqué avec l’étape précédente que nous venons de suggérer (changer
les chiffres en lettres) ; Et nous allons montrer par l’exemple.

ESI 87
CHAPITRE 5. CONCEPTION

Prenons un mot qui est tout simplement négatif : - ½ÊJ®K -



Essayons maintenant les différentes combinaisons par lesquelles ce mot peut être
trouvé, dans notre dialecte Algérien.
Substitution des chiffres
# Combinaison d’écrire le mot aux lettres (étape 7) Résultat
1 Nakotlak Nakotlak Nktlk
2 Nakotlek Nakotlek Nktlk
3 Nekotlak Nekotlak Nktlk
4 Nekotlek Nekotlek Nktlk
5 Nokotlak Nokotlak Nktlk
6 Nokotlek Nokotlek Nktlk
7 Naketlak Naketlak Nktlk
8 Naketlek Naketlek Nktlk
9 Neketlak Neketlak Nktlk
10 Neketlek Neketlek Nktlk
11 Noketlak Noketlak Nktlk
12 Noketlek Noketlek Nktlk
13 Na9otlak Nakotlak Nktlk
14 Na9otlek Nakotlek Nktlk
15 Ne9otlak Nekotlak Nktlk
16 Ne9otlek Nekotlek Nktlk
17 No9otlak Nokotlak Nktlk
18 No9otlek Nokotlek Nktlk
19 Na9etlak Naketlak Nktlk
20 Na9etlek Naketlek Nktlk
21 Ne9etlak Neketlak Nktlk
22 Ne9etlek Neketlek Nktlk
23 No9etlak Noketlak Nktlk
24 No9etlek Noketlek Nktlk
Table 26: Un exemple de combinaison différente pour
écrire un seul mot dans le dialecte Algérien

Comme le montre l’exemple, selon notre dialecte Algérien, il existe 24 combinai-



sons pour exprimer le mot - ½ÊJ®K - , lorsque nous substituons le chiffre 9 par K, nous
éliminons 12 combinaisons de se trouver dans notre corpus, puis par suppression de
voyelle nous le réduisons jusqu’à 1, de 24 à 1 lors de l’application des deux dernières
phases.

Voici un exemple de son fonctionnement :


Entrée : [[ 9oltlek rwah 3andi rak 3a9el 3liya , 911 ]]
Tokenisation : [[ [’9oltlek’, ’rwah’, ’3andi’, ’rak’, ’3a9el’, ’3liya’, ’,’, ’911’] ]]
Sortie : [[ [’kltlk’, ’rwh’, ’nd’, ’rk’, ’kl’, ’l’, ’,’, ’911’] ]]
Message Assemblé : [[ kltlk rwh nd rk kl l , 911 ]]

ESI 88
CHAPITRE 5. CONCEPTION

Étape 11 : Suppression de lettres isolées et de chiffres


A ce stade du prétraitement, nous retrouverons quelques lettres isolées dans certains
commentaires.
Ces mots ne contribuent pas au corpus et n’ont pas de sens pour être analysés et
représentés puis calculés et pris en compte. Et comme ils ne sont pas significatifs, eux
et les chiffres, ils seront tous deux supprimés à cette étape.
Par conséquent, ce module les supprime.

Voici un exemple du fonctionnement de ce module :


Entrée : [[ k l rwh 15200 sbah m ]]
Tokenisation : [[ [’k’, ’l’, ’rwh’, ’15200’, ’sbah’, ’m’] ]]
Sortie : [[ [’rwh’, ’sbah’] ]]
Message Assemblé : [[ rwh sbah ]]

5.4.4 Un exemple de déroulement complet de la phase de pré-


traitement

Etape Nom de l’étape Inspiré par Résultats


Entrée Entrée / Chrit Mixeur hakda :
https ://[Link]-
static/Mixeur-blender-
[Link] We 3jebni
bezaaaafffffffff Haayééééééélllll
je suis vraiment satis-
fait ÕºJ.m ' we wlh welah
ntoumfa_bezaf_bezaf_fort.
PT01 Élimination des Plusieurs tra- Chrit Mixeur hakda : We 3jebni
liens URL vaux dans le bezaaaafffffffff Haayééééééélllll
traitement de je suis vraiment satis-
n’importe quelle fait ÕºJ.m ' we wlh welah
langue ntoumfa_bezaf_bezaf_fort.
PT02 Remplacement Plusieurs tra- Chrit Mixeur hakda : We 3jebni
de «_» et «-» vaux dans le bezaaaafffffffff Haayééééééélllll je
par des espaces traitement de suis vraiment satisfait ÕºJ.m' we
blancs. n’importe quelle wlh welah ntoumfa bezaf bezaf
langue fort.
T Tokenisation Plusieurs tra- [’Chrit’, ’Mixeur’, ’hakda’, ’ :’,
vaux dans le ’We’, ’3jebni’, ’bezaaaafffffffff’,
traitement de ’Haayééééééélllll’, ’je’, ’suis’,
n’importe quelle ’vraiment’, ’satisfait’, ’ ÕºJ.m'’,
langue ’we’, ’wlh’, ’welah’, ’ntoumfa’,
’bezaf’, ’bezaf’, ’fort’, ’.’]

ESI 89
CHAPITRE 5. CONCEPTION

AT01 Translittération Précisément [’Chrit’, ’Mixeur’, ’hakda’, ’ :’,


le travail de ’We’, ’3jebni’, ’bezaaaafffffffff’,
Chader et al. ’Haayééééééélllll’, ’je’, ’suis’,
(2019) ’vraiment’, ’satisfait’, ’nhbkm’,
’we’, ’wlh’, ’welah’, ’ntoumfa’,
’bezaf’, ’bezaf’, ’fort’, ’.’]
AT02 Suppression des Plusieurs tra- [’Chrit’, ’Mixeur’, ’hakda’,
symboles vaux dans le ’We’, ’3jebni’, ’bezaaaafffffffff’,
traitement de ’Haayééééééélllll’, ’je’, ’suis’,
n’importe quelle ’vraiment’, ’satisfait’, ’nhbkm’,
langue ’we’, ’wlh’, ’welah’, ’ntoumfa’,
’bezaf’, ’bezaf’, ’fort’]
AT03 Suppression des Plusieurs tra- [’Chrit’, ’Mixeur’, ’hakda’, ’We’,
lettres répétées vaux traitant le ’3jebni’, ’bezaf’, ’Hayél’, ’je’,
dialecte Algérien ’suis’, ’vraiment’, ’satisfait’,
’nhbkm’, ’we’, ’wlh’, ’welah’,
’ntoumfa’, ’bezaf’, ’bezaf’, ’fort’]
AT04 Rendre les Plusieurs tra- [’chrit’, ’mixeur’, ’hakda’, ’we’,
lettres minus- vaux traitant le ’3jebni’, ’bezaf’, ’hayél’, ’je’,
cules dialecte Algérien ’suis’, ’vraiment’, ’satisfait’,
’nhbkm’, ’we’, ’wlh’, ’welah’,
’ntoumfa’, ’bezaf’, ’bezaf’, ’fort’]
AT05 Regroupement Précisément [’chrit’, ’mixeur’, ’hakda’, ’we’,
phonétique le travail de ’3jebni’, ’bezaf’, ’hayél’, ’je’,
Chader et al. ’suis’, ’vraiment’, ’satisfait’,
(2019) ’nhbkm’, ’we’, ’wellah’, ’wellah’,
’ntoumfa’, ’bezaf’, ’bezaf’, ’fort’]
AT06 Suppression des Plusieurs tra- [’chrit’, ’mixeur’, ’hakda’, ’we’,
mots en double vaux dans le ’3jebni’, ’bezaf’, ’hayél’, ’je’,
traitement de ’suis’, ’vraiment’, ’satisfait’,
n’importe quelle ’nhbkm’, ’wellah’, ’ntoumfa’,
langue ’fort’]
AT07 Suppression des Plusieurs tra- [’chrit’, ’mixeur’, ’hakda’,
mots vides vaux dans le ’3jebni’, ’bezaf’, ’hayél’, ’vrai-
traitement de ment’, ’satisfait’, ’nhbkm,
n’importe quelle ’wellah’, ’ntoumfa’, ’fort’]
langue
AT08 Suppression Précisément [’chrit’, ’mixeur’, ’hakda’,
des accents le travail de ’3jebni’, ’bezaf’, ’hayel’, ’vrai-
(désaccentation) Chader et al. ment’, ’satisfait’, ’nhbkm’,
(2019) ’wellah’, ’ntoumfa’, ’fort’]
AT09 Substitution des Précisément [’chrit’, ’mixeur’, ’hakda’, ’ajeb-
chiffres par des le travail de ni’, ’bezaf’, ’hayel’, ’vraiment’,
lettres Chader et al. ’satisfait’, ’nhbkm’, ’wellah’, ’n-
(2019) toumfa’, ’fort’]

ESI 90
CHAPITRE 5. CONCEPTION

AT10 Suppression des Précisément [’chrt’, ’mxr’, ’hkd’, ’jbn’, ’bzf’,


voyelles le travail de ’hl’, ’vrmnt’, ’stsft’, ’nhbkm’,
Chader et al. ’wllh’, ’ntmf’, ’frt’]
(2019)
AT11 Suppression des Plusieurs tra- [’chrt’, ’mxr’, ’hkd’, ’jbn’, ’bzf’,
chiffres et des vaux dans le ’hl’, ’vrmnt’, ’stsft’, ’nhbkm’,
lettres isolées traitement de ’wllh’, ’ntmf’, ’frt’]
n’importe quelle
langue
Sortie Sortie / chrt mxr hkd jbn bzf hl vrmnt
stsft nhbkm wllh ntmf frt
Table 27: Un exemple de combinaison différente pour
écrire un seul mot dans le dialecte Algérien

5.4.5 Un schéma récapitulatif pour la phase de Prétraitement


des données

Figure 39 – Phase de prétraitement (PreProcessing) des données illustrées par une


architecture pipline

ESI 91
CHAPITRE 5. CONCEPTION

5.5 Représentation de données


Pour classifier les commentaires (texte), ils doivent être transformés (représentés)
par des vecteurs et c’est la phase d’extraction des features.
Au cours de ce processus, nous présenterons nos données en utilisant les trois
méthodes de représentation :
1. Fréquence de terme (TF)
2. Fréquence du terme – fréquence inverse du document (TF-IDF)
3. Binaire (Binary)
Nous utiliserons toutes les méthodes pour tester laquelle nous aide à obtenir les
meilleurs résultats lorsque nous traitons nos données.

Figure 40 – Les méthodes de représentation (vectorisation) utilisées dans notre so-


lution

5.6 Classification et tests

Figure 41 – Regroupement des différentes variations sur lesquelles nous baserons la


phase de classification et de test

ESI 92
CHAPITRE 5. CONCEPTION

Notre classification a pour objectif de trouver le meilleur résultat possible avec la


meilleure combinaison entre ces variations. Nous appliquons les tests sur des données
équilibrées et non équilibrées et interpréterons la différence entre elles.
De plus, nous testerons en fonction de chacune des phases de prétraitement pour
voir s’il y en a une qui pourrait faire baisser le score, et pour chaque méthode de
représentation parmi les trois mentionnées (Binaire, Tf, Tf-idf).
Nos résultats seront interprétés par deux mesures d’évaluation : l’exactitude (ac-
curacy) et la mesure F1.
Et bien sûr, tous nos ensembles de données sont constitués de commentaires en
dialecte Algérien.
Nous détaillerons les chiffres concernant chaque ensemble de données collectées
dans la partie résultats du chapitre résultats.

5.7 Schéma de la base de données


5.7.1 Diagramme Entité/Association
Ci-dessous est présenté le diagramme entités associations du système à réaliser avec
toutes les entités et associations du schéma de la base de données de la solution.

Figure 42 – Diagramme Entité / Association

ESI 93
CHAPITRE 5. CONCEPTION

5.7.2 Description des entités


Nous allons présenter dans ce qui suit, l’ensemble des tables de la base de données

L’entité de page représente une page Facebook pour un client de GEN-42.

Entité Page
Attribut Type Description Utilisation
IdPage Int L’identificateur de la Dont nous aurons besoin
page selon Facebook. lors de l’utilisation des
requêtes pour récupérer
les articles de la page et
les commentaires.
Name String Le nom de la page. Sera utilisé lors de l’af-
fichage de la liste des
pages dans le Frontend.
AccessToken String Un code unique qui Peut-être l’élément le
contient une série de plus important que nous
lettres et de chiffres recherchons lors de cette
et est généré par fa- requête, c’est ce qui ren-
cebook pour chaque dra possible la récupéra-
page, et est nécessaire tion des publications et
si l’on a besoin de ré- des commentaires.
cupérer des éléments
de cette page.
Picture String La photo de profil de Stocké en tant qu’URL,
la page sur Facebook. et principalement sera
utilisé lors de l’affichage
de la liste des pages dans
le Frontend.
Performance Int Ce nombre indique le Ces chiffres et statis-
pourcentage des com- tiques seront utilisés
mentaires positifs + dans le cadre des calculs
neutres par rapport des ratios qu’ils appa-
au nombre total de raîtront sur le tableau
commentaires. de bord de chaque page,
LearningPerformance Int La précision de l’al- et font partie également
gorithme au fil du de la construction du ta-
temps. bleau de bord global.
IssueField String La catégorie domi-
nante dans les com-
mentaires sur : Spam,
Plainte, Question, Ta-
rification, Sans rap-
port.
Field_ratio Int le pourcentage de la
catégorie dominante

ESI 94
CHAPITRE 5. CONCEPTION

Positive_count Int le nombre de com-


mentaires positifs
Table 28: BDD : entité page

L’entité utilisateur représente une personne physique qui utilise notre système.
Selon l’attribut privilège, il existe deux types : Super administrateur et un community
manager.

Entité User
Utilisateur
Attribut Type Description Utilisation
IdUser String Représente l’identifi- Clé primaire pour chaque
cateur unique de l’uti- utilisateur, générée auto-
lisateur. matiquement, va être uti-
lisé lors des opérations
faite sur l’utilisateur.
Name String Le prénom de l’utili- Stocké pour être utilisé
sateur. dans l’affichage.
Email String L’adresse Mail de Va servir comme identi-
l’utilisateur. fiant pour l’authentifica-
tion.
Password String Le mot de passe de Doit suivre quelque
l’utilisateur. norme et conditions,
comme le nombre mi-
nimum de caractères,
l’utilisation de minus-
cules, de majuscules et de
chiffres.
Ranking Int Classement Est calculé en fonction du
nombre de contributions
de chaque utilisateur par
rapport aux autres utili-
sateurs
Privilege String Que l’utilisateur Distinguer le type d’utili-
soit un super- sateur
administrateur ou
un utilisateur nor-
mal (Community
Manager)
AllowedPages String La liste des pages fa- Un utilisateur ne peut
cebook attribuées à manipuler et travailler
un certain utilisateur. que sur les pages qui lui
sont attribuées.

ESI 95
CHAPITRE 5. CONCEPTION

Signed Boolean L’état de l’utilisateur, Le super-administrateur


connecté ou non. peut voir qui est connecté
et présent.
Last_Tag String La dernière contribu- Pour qu’il apparaisse dans
tion de l’utilisateur l’historique des activités
pour que l’administrateur
puisse le voir, Et pour que
l’utilisateur sache quand
il a contribué pour la der-
nière fois.
Table 29: BDD : entité user

L’entité de Post représente les publications / Posts / articles qu’une page Facebook
publie sur son flux.

Entité Post
(Facebook Post = Publication = Statut)
Attribut Type Description Utilisation
IdPost String L’identificateur du Le post id est de la forme :
Post selon Facebook. IdPage_PostNumber et
le stockage de cet Id est
nécessaire pour récupérer
ses commentaires.
MessagePost String Le texte du message Il sera utilisé lors de l’affi-
de Post. chage de la liste des pages
dans le frontend.
PictureSmall String La version petite de Stocké en tant qu’URL, et
l’Image publiée avec sera principalement uti-
ce Post. lisé lors de l’affichage de
la liste des pages dans
le frontend, c’est la pe-
tite version de l’image qui
sera utilisée dans le menu.
PictureBig String L’image publiée avec Stocké en tant qu’URL, et
ce Post. sera principalement uti-
lisé lors de l’affichage du
Post dans sa page dans le
frontend, c’est la grande
version de l’image.
LikeCount Int Le nombre total Nécessaire pour afficher
de likes (reactions dans le frontend sur sa
–j’aime-) sur ce post. page.
ShareCount Int Le nombre total de Nécessaire pour afficher
partages sur ce post. dans le frontend sur sa
page.

ESI 96
CHAPITRE 5. CONCEPTION

CommentCount Int Le nombre total de Nécessaire pour afficher


commentaires sur ce dans le frontend sur sa
post. page.
PositiveCount Int Le nombre de com- Ces chiffres et statistiques
mentaire positive seront utilisés dans le
dans ce Post. cadre des calculs des ra-
tios qu’ils apparaîtront
sur le tableau de bord de
chaque page,
NeutralCount Int Le nombre de com- et participe également à
mentaire neutre dans la construction du ta-
ce Post. bleau de bord global.
NbTreated Int Le nombre de com-
mentaire traité (ma-
nuellement)
Performance Int Ce nombre indique
le pourcentage des
commentaires posi-
tifs + neutres par
rapport au nombre
total de commen-
taires.
Field String La catégorie do-
minante dans les
commentaires sur :
Spam, Plainte, Ques-
tion, Tarification,
Sans rapport.
Field_ratio_post Int le pourcentage de la
catégorie dominante
LearningPerformance_post Int La précision de l’al-
gorithme au fil du
temps.
CreatedTime String L’heure exacte (horo- Il est important de
datage / Timestamp) conserver l’horodatage
à laquelle ce Post a pour classer correctement
été publié sur face- les articles dans la base
book. de données et les afficher
dans l’ordre du Post le
plus récent.

ESI 97
CHAPITRE 5. CONCEPTION

Month Int Le mois au cours du- le mois est conservé sé-


quel ce Post a été pu- parément pour faciliter le
blié. processus de récupération
lorsque nous calculons les
statistiques des six der-
niers mois.
Table 30: BDD : entité post

L’entité Commentaire représente le commentaire ordinaire qui se trouve sur une


publication (Post) Facebook.

Entité Commentaire
Attribut Type Description Utilisation
IdComment String Représente l’identifica- Clé primaire pour le com-
teur unique du com- mentaire et sera utile lors
mentaire, attribué par des opérations faites sur
facebook. les commentaires (Tag /
Réponse)
MessageComment String Le texte du commen- L’élément d’information le
taire. plus important que nous
cherchions à récupérer de-
puis le début de toute
cette procédure, car sur la
base de ce texte, nous clas-
serons ce commentaire.
PredictedPolarity String la polarité du commen- À l’aide de ces champs,
taire prédite par l’algo- nous saurons si notre
rithme classification automatique
classe correctement les
commentaires.
Manual Polarity String la polarité du commen- En comparant le tag ma-
taire taguée manuelle- nuel et prédit pour les
ment par l’utilisateur deux sujets que nous avons
pour chaque commentaire.
PredictedField String la catégorie du com-
mentaire prédite par
l’algorithme
ManualField String la catégorie du com-
mentaire taguée ma-
nuellement par l’utili-
sateur
CanReply Boolean Variable booléenne, Stocké pour savoir quand
la fonction des droits il est possible de répondre
d’accès pour une page. à un commentaire ou non.

ESI 98
CHAPITRE 5. CONCEPTION

Created_Time String L’heure exacte (horo- Pour organiser les Com-


datage / Timestamp) à mentaires correctement
laquelle ce Post a été lors de l’affichage et du
publié sur facebook. traitement des commen-
taires.
Si cet attribut est :
’Non rencontré’ : cela si-
Is_used_polarity String gnifie que le commentaire
n’a pas encore été taggé
manuellement.
Ce champ indique si
ce commentaire est
utilisé ou non comme
nouveau commentaire dans
’Déjà vrai’ : le commen-
le jeux de données
taire a été taggé manuel-
dans le cadre de notre
lement, mais l’algorithme
processus d’agrandissement
a déjà été correctement
du jeux de données.
prédit, il ne sera donc
pas ajouté à l’ensemble de
données.
’Non’ : Le commentaire ne
sera pas ajouté car sa po-
larité / champ a déjà at-
teint le nombre maximum
autorisé pour lui dans le
jeu de données.
Is_used_field String ’Oui’ : le commentaire
sera ajouté à l’ensemble de
données, car l’algorithme
l’a mal prédit, il doit donc
l’apprendre.
Table 31: entité commentaire

L’entité Transaction représente une action de transfert de commentaire d’un uti-


lisateur à un autre. Il lance une notification.
Entité Transaction

Attribut Type Description Utilisation


IdTransaction Int Représente l’identifi- Clé primaire pour cette
cateur unique de la transaction, générée auto-
transaction. matiquement, va être uti-
lisé lors des opérations
faite sur cette transaction.
Sender String le nom de l’utilisateur Pour identifier le user dé-
qui a déclenché cette clencheur de cette tran-
transaction saction

ESI 99
CHAPITRE 5. CONCEPTION

Receiver String L’utilisateur qui va re- Pour identifier le user ré-


cevoir la transaction cepteur de cette transac-
et qui va être notifié tion
parle système
Note String Un message à joindre Une note peut être néces-
au commentaire en- saire si quelque chose de
voyé par cette tran- particulier doit être dis-
saction cuté à propos de ce com-
mentaire ou peut-être une
question à poser à ce su-
jet.
Table 32: BDD : entité transaction

Conclusion
Dans ce chapitre de conception, nous avons vu un dessin détaillé de la solution, de
l’analyse des sentiments et du système global ; Nous avons expliqué chaque détail de
chaque phase et conclu avec la structure de la base de données.
Dans la prochaine partie (Réalisation) nous verrons l’architecture globale du sys-
tème, les technologies et bibliothèques utilisées et les capture d’écran de l’outil réalisé.

ESI 100
Chapitre 6

Realisation

Introduction
Dans ce chapitre, nous montrerons différents aspects de ce qui est nécessaire pour
l’implementation de l’outil.
Nous énumérerons les technologies que nous avons utilisées pour construire notre
système et nous décrirons leurs bibliothèques les plus importantes. Et enfin, nous
montrerons les captures d’écran des interfaces principales de notre outil réalisé.

6.1 Architecture logicielle de l’application

Figure 43 – Schéma de l’architecture logicielle de notre système

Notre système comprend deux parties principales, un frontend et un backend.

6.1.1 Frontend

• L’interface graphique est le visage de notre système, c’est là que les données
et les résultats de nos calculs sont affichés.
Des modifications et des opérations peuvent être effectuées sur l’interface gra-
phique, ce qui entraînera d’éventuels changements dans la base de données et
d’autres calculs.

101
CHAPITRE 6. REALISATION

6.1.2 Backend

• L’API Rest est un intermédiaire entre l’interface graphique et les différentes


fonctions implémentées côté backend. Il est utilisé pour récupérer les données
nécessaires et les renvoyer avec des requêtes HTTP.
• Les services se composent des fonctions qui sont implémentées afin de rendre
l’application pleinement fonctionnelle, Ces services sont la récupération de don-
nées de Facebook, la classification, les métriques qui s’affichent sur les tableaux
de bord, les fonctions qui génèrent les rapports Excel et celles qui transmettent
les données de la base de données d’une couche à l’autre.
• La base de données est l’endroit où nous stockons les données, que ce soit
les pages, les posts, les commentaires, les utilisateurs et les différents attributs
que nous leur avons attribués qui nous permettent de faire les différents calculs
sur la couche Services.
La base de données conserve les données des 6 derniers mois.

ESI 102
CHAPITRE 6. REALISATION

6.2 Architecture globale de la solution

Figure 44 – Schéma de l’architecture globale du système

ESI 103
CHAPITRE 6. REALISATION

La solution proposée est composes de 3 phases comme le montre le schéma ci-


dessus :

Phase 01 : Récupération de données


Dans cette phase, nous nous intéressons principalement aux données, nous utilisons
Facebook Graph API pour obtenir les données appropriées de Facebook, puis nous
stockons ces données dans notre base de données.
Nous soulignons que nous utilisons la base de données pour stocker des données
et différentes métriques et chiffres pertinents, qui sont nécessaires pour les calculs qui
serviront plus tard dans la construction des différents tableaux de bord.

Phase 02 : Classification
Cette phase est dédiée à la solution proposée concernant la classification des com-
mentaires du dialecte Algérien avec l’approche de l’apprentissage automatique.
Tout d’abord, nous préparons l’ensemble de données à partir des données que nous
avons collectées, puis nous annotons les différents corpuses que nous avons collectés,
nous appliquons les phases de prétraitement et les techniques de représentation, et
éventuellement exécuter les tests avec les différents paramètres.
Nous avons essayé différentes combinaisons de phases de prétraitement avec des
méthodes de représentation et différents algorithmes et nous avons retenu la combi-
naison avec le meilleur résultat.

Phase 03 : le développement de l’outil


Dans cette phase, nous utilisons l’algorithme de la phase 02 et les données de
la phase 01 pour appliquer la solution et construire un outil sous la forme d’une
application web.
Cet outil classifie les nouveaux commentaires, permet à l’utilisateur de corriger
les tags erronées et utilise ces données pour apprendre, permet à l’utilisateur de
répondre aux commentaires facebook, génère des rapports Excel à envoyer aux clients
et présente toutes ces informations sur les données et leur classification pour les 6
derniers mois sur un tableau de bord qui est doté avec différentes métriques.

6.3 Environnement et technologies de développement


Dans cette partie, nous présenterons les différentes technologies que nous avons
utilisées pour construire notre système, nous listerons également les différentes bi-
bliothèques, en mettrons une courte description et dans quel but nous avons utilisé
chaque bibliothèque.

ESI 104
CHAPITRE 6. REALISATION

6.3.1 Technologies utilisées


1/ Python
Python est un langage de program-
mation interprété, orienté objet et de
haut niveau avec une sémantique dy-
namique. Ses structures de données in-
tégrées de haut niveau, associées à un
typage dynamique et à une liaison dy-
namique, le rendent très attractif pour
le développement rapide d’applications,
ainsi que pour une utilisation en tant Figure 45 – Logo de python
que langage de script ou de collage pour
connecter des composants existants entre eux.
La syntaxe simple et facile à apprendre de Python met l’accent sur la lisibilité
et réduit donc le coût de la maintenance du programme. Python prend en charge
les modules et les packages, ce qui encourage la modularité du programme et la
réutilisation du code.
L’interpréteur Python et la bibliothèque standard étendue sont disponibles sous
forme source ou binaire sans frais pour toutes les principales plates-formes, et peuvent
être librement distribués.
Et parce que notre projet a une grande partie qui traite des données et des algo-
rithmes d’apprentissage automatique et de tout ce qui est similaire, python est le bon
choix parmi les autres langages.

2/ Django
Django est un framework Web Py-
thon de haut niveau qui encourage un
développement rapide et une conception
propre et pragmatique. Construit par des
développeurs expérimentés, il prend en
charge une grande partie des tracas du
développement Web, de sorte que l’on
peut se concentrer sur l’écriture de son Figure 46 – Logo de Django
application sans avoir à réinventer la
roue. C’est gratuit et open source.

3/ HTML/CSS
HTML (le langage de balisage hyper-
texte - the Hypertext Markup Language)
et CSS (feuilles de style en cascade - Cas-
cading Style Sheets) sont deux des tech-
nologies de base pour la création de pages
Web.

HTML fournit la structure de la page,


c’est le langage de balisage que nous uti- Figure 47 – Logos de HTML et CSS
lisons pour structurer et donner du sens

ESI 105
CHAPITRE 6. REALISATION

à notre contenu Web, par exemple en définissant des paragraphes, des en-têtes et des
tableaux de données, ou en incorporant des images et des vidéos dans la page.
CSS la mise en page (visuelle et auditive), pour une variété d’appareils. Outre les
graphiques et les scripts, c’ est un langage de règles de style que nous utilisons pour
appliquer un style à notre contenu HTML, par exemple en définissant les couleurs et
les polices d’arrière-plan et en présentant notre contenu dans plusieurs colonnes.
HTML et CSS sont à la base de la création de pages Web et d’applications Web.

4/Javascript
JavaScript est un langage de script ou de programmation qui nous permet d’im-
plémenter des fonctionnalités complexes sur les pages Web - chaque fois qu’une page
Web fait plus que simplement rester là et afficher des informations statiques que nous
pouvons regarder - afficher des mises à jour de contenu opportunes, des cartes inter-
actives, des animations 2D / Graphiques 3D, juke-box vidéo à défilement, etc. - nous
pouvons affirmer avec certitude que JavaScript est probablement impliqué. C’est la
troisième couche du gâteau de couches des technologies Web standard, dont deux
(HTML et CSS) que nous avons mentionnées ci-dessus.
Et parmi les technologies Javascript que nous avons utilisées, nous mentionnons :

4.1 / React JS
React. js est une bibliothèque JavaScript open-source utilisée pour créer des in-
terfaces utilisateur spécifiquement pour les applications monopages. Il est utilisé pour
gérer la couche de vue pour les applications Web et mobiles. React nous permet
également de créer des composants d’interface utilisateur réutilisables.

4.2 / Redux
Redux est une bibliothèque JavaScript populaire pour gérer l’état de votre ap-
plication. Il est très courant et les personnes qui portaient avec le React utilisent
principalement Redux également.
Un état d’application est comme un objet global qui contient des informations
que l’on utilise à diverses fins plus tard dans l’application (par exemple, prendre des
décisions sur les composants à rendre et quand, rendre les données stockées, etc.).

Figure 48 – Logos de JavaScript, React JS et Redux.

ESI 106
CHAPITRE 6. REALISATION

6.3.2 Bibliothèques utilisées

Bibliothèque Déscription Utilisation


Facebook SDK
Facebook-sdk (kit de développement logi- Récupération
ciel) est un sdk python pour l’API Facebook des données
Graph. Le SDK fournit trois méthodes pour
interagir largement avec Facebook. publish
(), get_object () et delete () En plus des
trois, il existe une méthode d’assistance pour
afficher la structure des objets renvoyés par
facebook, show_fields ()
Requests
Requests est une bibliothèque HTTP Py-
thon, le but du projet est de rendre les re-
quêtes HTTP plus simples et plus convi-
viales.

Numpy
NumPy est une bibliothèque pour le langage Manipulation
de programmation Python, ajoutant la prise de données
en charge de grands tableaux et matrices numériques.
multidimensionnels, ainsi qu’une grande col-
lection de fonctions mathématiques de haut
niveau pour fonctionner sur ces tableaux.
Pandas
Pandas est une bibliothèque de logiciels
écrite pour le langage de programmation Py-
thon pour la manipulation et l’analyse des
données. En particulier, il propose des struc-
tures de données et des opérations pour ma-
nipuler des tableaux numériques et des séries
chronologiques.

Json
La bibliothèque json peut analyser JSON Manipulations
à partir de chaînes ou de fichiers. La bi- de fichiers CSV
bliothèque analyse JSON dans un diction- et Json, telles
naire ou une liste Python. Il peut également que la création,
convertir des dictionnaires ou des listes Py- la copie, la mo-
thon en chaînes JSON. dification et la
suppression.
CSV

ESI 107
CHAPITRE 6. REALISATION

Le module csv implémente des classes pour


lire et écrire des données tabulaires au for-
mat CSV. Il permet de dire «écrire ces don-
nées dans le format préféré d’Excel» ou «lire
les données de ce fichier qui a été généré par
Excel», sans connaître les détails précis du
format CSV utilisé par Excel.

Shutil
Le module shutil propose un certain nombre
d’opérations de haut niveau sur les fichiers
et les collections de fichiers. En particulier,
des fonctions sont fournies qui prennent en
charge la copie et la suppression de fichiers.

Time
Le module de temps Python fournit de nom- Manipulation de
breuses façons de représenter l’heure dans le données écrites
code, telles que des objets, des nombres et des dans différents
chaînes. Il fournit également des fonctionna- formats d’heure,
lités autres que la représentation du temps, utile pour gérer
comme attendre pendant l’exécution du code et conserver les
et mesurer l’efficacité de notre code. temps corrects
pour les pu-
blications, les
commentaires
et pour mesu-
rer le temps
d’exécution des
algorithmes
testés.
Dateutil
Le module dateutil fournit de puissantes ex-
tensions au module datetime standard.

Matplotlib
Matplotlib est une bibliothèque complète Visualisation de
pour créer des visualisations statiques, ani- données.
mées et interactives en Python.

Scikit-learn

ESI 108
CHAPITRE 6. REALISATION

Scikit-learn est une bibliothèque d’apprentis- Une biblio-


sage automatique de logiciels gratuits pour le thèque incon-
langage de programmation Python. Elle pro- tournable en ce
pose divers algorithmes de classification, de qui concerne nos
régression et de clustering, notamment des fonctions et tests
machines vectorielles de support, des forêts d’apprentissage
aléatoires, un boosting de gradient, des k- automatique.
means et DBSCAN, et est conçu pour in-
teragir avec les bibliothèques numériques et
scientifiques Python NumPy et SciPy. .
NLTK
NLTK Natural Language Toolkit, Boîte à ou- Utilisé en pré-
tils en langage naturel. NLTK est une plate- traitement : to-
forme de premier plan pour la création de kenisation, sup-
programmes Python pour travailler avec des pression de mots
données en langage humain. Il guide le lec- vides et translit-
teur à travers les principes de base de l’écri- tération.
ture de programmes Python, du travail avec
des corpus, de la catégorisation du texte, de
l’analyse de la structure linguistique, etc.

6.4 Présentation sommaire de l’outil logiciel réalisé


Nous allons présenter dans cette section, les captures d’écran et les fonctionnalités
principales du système projeté.

Interface d’authentification

Figure 49 – Capture d’écran de l’authentification

ESI 109
CHAPITRE 6. REALISATION

Il s’agit de la page que l’utilisateur obtient lors de la première ouverture de l’ap-


plication.
Afin de s’authentifier auprès de notre système, l’utilisateur doit écrire correctement
son e-mail et son mot de passe, puis appuie sur le bouton bleu de ‘Log In’.

Interface du tableau de bord principal


Après s’être authentifié, tout utilisateur (Super-Admin / Community Manager)
obtiendra cette page de tableau de bord global. Les métriques qui apparaissent en
haut de la capture intitulées ’Total Statistics’ représente les statistiques du mois en
cours et sont définies comme suit :

Figure 50 – Capture d’écran du tableau de bord principal

• Positive feedbacks : pourcentage de commentaires positifs par rapport au


nombre total de commentaires pour ce mois.
• Field with the most issues : La catégorie qui intéresse le plus les gens selon
la catégorie des commentaires et son pourcentage.

ESI 110
CHAPITRE 6. REALISATION

• Business Performance : Le pourcentage de commentaires positifs + neutres


par rapport aux totaux de ce mois.
• Learning Performance : Cette mesure indique à quel point notre classifica-
tion automatique s’est améliorée depuis le mois dernier, elle est mesurée par
le nombre de prédictions correctes par rapport au manuel étiqueté.

Les métriques calculées dans un premier temps considèrent que la prédiction au-
tomatique est correcte, et à chaque tag manuel, elle s’ajuste en fonction de celle-ci.
Sous les quatre mesures, nous voyons notre graphique de Business Performance :

Figure 51 – capture d’écran détaillée de la courbe

Il est interactif et affiche la valeur lorsque l’utilisateur passe la souris au-dessus


(hover), il montre la valeur de Business Performance pour les 8 derniers mois.
Sur sa droite se trouvent nos graphiques à barres de performances de l’algorithme,
mesurant la correspondance entre la prédiction automatique et la classification réelle,
pour chaque mois.
En bas, nous trouvons les Top pages de l’entreprise, elles sont affichées avec le
nombre de commentaires positifs, le total des commentaires. Elles sont classées en
fonction du ratio. Le Bounce Rate indique l’amélioration du mois dernier à celui-ci.

ESI 111
CHAPITRE 6. REALISATION

Interface de la liste de pages

Figure 52 – Capture d’écran de visualisation des pages

Lorsque l’utilisateur clique sur la Pages List située dans le menu de gauche, il
obtient cette page ; Cette page affiche simplement la liste des pages facebook des
clients de GEN-42 accompagnée du nombre de commentaires positifs, du nombre total
de commentaires, de la performance de la page et de la précision d’apprentissage pour
chaque page.

Interface de la liste de Posts pour une page


Après avoir cliqué sur une page, l’utilisateur obtient cette page, qui montre la
liste des posts publiés par cette page facebook, ils sont classés du plus récent au plus
ancien.
Les posts qui ne sont pas traités sont étiquetés comme ’NEW’.
Chaque post sera accompagné de sa photo, du message, du nombre de likes, de
partages et de commentaires et du nombre de commentaires traités (manuellement)
et de la performance de Post.

ESI 112
CHAPITRE 6. REALISATION

Figure 53 – Capture d’écran de visualisation des posts

Interface de la liste de commentaires d’un post


En cliquant sur un Post, l’utilisateur obtient cette page, qui contient la liste de
tous les commentaires Facebook pour ce Post.
C’est la page où l’utilisateur voit la classification prédite (automatique) de la
polarité et de la catégorie pour chaque commentaire.
L’utilisateur peut également corriger l’un ou l’autre, les deux aussi.

ESI 113
CHAPITRE 6. REALISATION

Figure 54 – Capture d’écran de visualisation des commentaires

Voici l’écran résultant l’utilisateur corrige les faux commentaires prédits :

Figure 55 – Capture d’écran pour pour l’opération de tag des commentaires

Après les changements nécessaires, l’utilisateur enregistre ses modifications et les cal-
culs pour toutes les métriques changeront en fonction des corrections apportées.
Les commentaires faussement prédits seront ajoutés aux données d’entraînement,
pour améliorer la classification.

l’interface de réponse à un commentaire


Si la page sur laquelle l’utilisateur travaille a donné à GEN-42 l’autorisation de
répondre aux commentaires, Le bouton REPLY sera vert et apparaîtra comme suit :

ESI 114
CHAPITRE 6. REALISATION

Figure 56 – un commentaire avec l’autorisation/permission de répondre

En cliquant sur la réponse, nous obtenons la fenêtre suivante :

Figure 57 – Capture d’écran de la fenêtre ouverte lors de la réponse

Nous écrivons la réponse que nous souhaitons et cliquons sur le bouton Send Reply,
et la réponse sera envoyée sur ce commentaire et publiée sur Facebook.

ESI 115
CHAPITRE 6. REALISATION

Interfaces de transfert d’un commentaire


La première interface s’affiche lorsque l’utilisateur choisit à qui transférer le com-
mentaire, la deuxième s’affiche juste avant de l’envoyer (le commentaire).

Figure 58 – Capture d’écran de la fenêtre ouverte lors du choix de l’utilisateur


destinataire

Figure 59 – Capture d’écran de la fenêtre ouverte lors du transfert

ESI 116
CHAPITRE 6. REALISATION

Figure 60 – Capture d’écran du menu de notification reçues

Le rapport Excel généré pour les clients

Figure 61 – Capture d’écran de la fenêtre lors de gnération du rapport

Figure 62 – Capture d’écran de la fenêtre aprés la génération du rapport

ESI 117
CHAPITRE 6. REALISATION

Pour chaque page client facebook, un rapport Excel sera généré avec un bouton.
Ce rapport ressemble à ceci :

Figure 63 – Contenu du rapport Excel

Nous pouvons voir dans la capture d’écran que le rapport contient des informations
générales sur la page, et les chiffres des 6 derniers mois. Il a les chiffres pour la
classification automatique effectuée et le nombre de commentaires corrigés.
Et aussi, les 10 meilleurs articles avec leurs liens réels afin que l’utilisateur puisse
les vérifier s’il vaut, ils sont classés en fonction du nombre de commentaires (décrois-
sant).

Interfaces d’un utilisateur Community Manager


A tout moment, le community manager peut avoir un menu déroulant depuis son
profil

Figure 64 – Dropdown Menu d’un utilisateur

tout community manger, n’a pas le bouton ’Manage Users’.

ESI 118
CHAPITRE 6. REALISATION

Figure 65 – Page profil d’un utilisateur du système

Il peut voir son profil :


Et consulter son Historique d’activité en cliquant sur ’View Recent Activity’

Figure 66 – Page de l’historique d’activités d’un utilisateur

ESI 119
CHAPITRE 6. REALISATION

Interfaces de gestion pour le Super-Admin


Seul le Super-Admin peut avoir la page de gestion des utilisateurs ’Manage Users’,
voici une capture d’écran :

Figure 67 – Page de gestion des utilisateurs

Lorsque le super-administrateur clique sur le classement (Users Rankings), voici la


fenêtre qu’il obtient :

Figure 68 – Page de classement des contributions des utilisateurs

ESI 120
CHAPITRE 6. REALISATION

Lorsque le super-administrateur clique sur Ajouter un utilisateur (Add New Uers),


voici la fenêtre qu’il obtient :

Figure 69 – Fenêtre d’ajouter un utilisateur

Le super administrateur peut également consulter l’historique des activités de


chaque utilisateur individuel.

Figure 70 – Page de l’historique d’activité consulté par le Super-Admin

ESI 121
CHAPITRE 6. REALISATION

Le super administrateur peut accéder à d’autres profils utilisateurs, afin qu’il


puisse modifier leurs comptes et leur attribuer des pages.
Voici une capture d’écran sur un super administrateur accédant au compte d’un
utilisateur

Figure 71 – Page de paramètres d’un utilisateurs du perspective du Super-Admin

Conclusion
A la fin de cet chapitre, nous avons expliqué les technologies et les bibliothèques
que nous avons utilisées, puis nous avons montré les interfaces de notre produit final,
en détaillant l’architecture globale de la solution.
Le prochaine chapitre sera dédié aux toutes les informations et statistiques sur les
différents données collectées, la documentation des tests effectués et résultats enre-
gistrés et la synthèse des meilleures résultats.

ESI 122
Chapitre 7

Tests et résultats

Introduction
Dans ce dernier chapitre, nous allons d’abord expliquer en détail tous les chiffres
nécessaires sur les données collectées, les jeux de données que nous avons construits à
partir de celles-ci, et comment le prétraitement a-t-il affecté ces données (en chiffres).
Nous passerons ensuite à une partie des tests très détaillée, où nous testerons sur
de nombreux jeux de données de données avec des propriétés différentes pour chacun
et expliquerons les résultats, nous ajouterons également un cas de test pratique réalisé
sur un fichier Excel basé sur le modèle que nous avons entraîné après les tests.

7.1 Description des données


Dans cette première partie, nous présenterons en statistiques les données collectées
et annotées, ainsi que les propriétés des Datasets (corpuses) qui seront utilisés pour
les tests

7.1.1 Recensement des données annotées collectées


Ces données sont un ensemble des corpuses, que nous avons collectés et que nous
allons utiliser pour construire les différents jeux de données sur lesquels nous allons
tester notre classification en termes de polarité et catégorie.

En terme de polarité, nous avons collecté quatre corpuses, comme le montre le tableau
suivant 34
Le corpus C1 (Mataoui et al. (2016)) est un corpus publique librement disponible
sur Internet et il a déjà été annoté.
Le corpus C2 (GEN-42) est un corpus privé ; il est le fruit des commentaires collec-
tés à travers les pages Facebook et de l’annotation faite sur Excel par les community
managers de GEN-42.
Le corpus C3 (GEN-42/ ENIEM), est le résultat d’une collaboration entre nous
et l’un des clients de GEN-42 : ENIEM, il a été annoté manuellement par nous en
collaboration avec certain membres de l’équipe de GEN-42 (en utilisant l’outil Tagtog
et Excel)
Le corpus C4 représente un petit nombre de commentaires que nous avons annotés
manuellement, les commentaires sur ce corpus représentent des phrases et termes
répétitifs fréquents qui sont facilement interprétés comme positifs ou négatifs.

123
CHAPITRE 7. TESTS ET RÉSULTATS

Code Corpus Positive Négative Neutre Vide Total


C1 Mataoui et al. (2016) 10987 1127 0 0 12114
C2 GEN-42 1457 275 1480 759 3971
C3 GEN-42, ENIEM 1144 161 1627 32 2964
C4 Extra Manuel 115 143 0 0 258
Total 13703 1706 3107 791 19307
Table 34: Les corpus collectés et annotés en termes de
polarité

En ce qui concerne les catégories, nos ressources étaient limitées à deux corpus
seulement, F1 (GEN-42] annotée par l’équipe GEN-42, et F2 GEN-42/ ENIEM) an-
notée par nous manuellement. Ces deux corpuses définies dans la table (35), seront
utilisés pour construire le jeux de données afin de tester également la classification
sur la catégorie.

Code Corpus Question Complaint Pricing Spam Unrelated Total


F1 GEN-42 199 45 171 773 2783 3971
F2 GEN-42, ENIEM 928 115 463 88 1370 2964
Total 1127 160 634 861 4153 6935
Table 35: Les corpus collectés et annotés en termes de
categorie

7.1.2 Construction d’ensemble de jeux de donnés


Sur la base des corpuses collectés, nous avons construit des différents jeux de
données pour la polarité et la catégorie.
La raison principale pour construire ces jeux de données et de ne pas tester direc-
tement sur les corpuses collectés et d’obtenir une meilleure lecture sur de nombreux
scénarios possibles (étiquetage équilibré ou non, jeux de données plus grands que
d’autre, jeux de données ne contient que des lettres latines), c’est donc un moyen
de vérifier si le modèle est suffisamment robuste pour donner de bons résultats de
classification malgré les différences existantes entre les jeux de données

En terme de polarité

Dataset (Corpus) Source Positive Negative Neutre Total


N % N % N %
D1 C1 1100 50 1100 50 0 0 2200
D2 C1 4400 80 1100 20 0 0 5500
D3 C2 1457 45,36 275 8,56 1480 46,08 3212
D4 C1 + C2 1300 33,33 1300 33,33 1300 33,33 3900
D5 C1 + C2 + C3 + C4 3215 41,64 1706 22,10 2800 36,26 7721
Table 36: Les jeux de données construits en termes de
polarité

ESI 124
CHAPITRE 7. TESTS ET RÉSULTATS

Et voici un aperçu plus détaillé de la construction de chaque jeu de données :

Figure 72 – Diagramme en secteurs qui montrent les pourcentages d’étiquettes pour


chaque jeu de données (Polarité) construit.

Nous avons construit cinq jeux de données différents à partir de nos différentes sources,
Les principales propriétés et différences que nous trouvons dans ces jeux de données
sont les suivantes :
• D1 est binaire (positif / négatif), équilibré et plus petit (2200).
• D2 est beaucoup plus grand et totalement déséquilibré.
• D3 a 3 étiquettes, et n’est pas totalement équilibré.
• D4 a 3 étiquettes et parfaitement équilibré.
• D5 a 3 étiquettes, est plus grand que les autres et équilibré à un certain degré.
• Tous les jeux de données contiennent des commentaires écrits principalement
en dialecte Algérien (Darja), certains en caractères latin et d’autres en carac-
tères arabes.

En terme de catégorie

Corpus Source Question Complaint Pricing Spam Unrelated Total


N % N % N % N % N %
G1 F1 199 14,06 45 3,18 171 12,08 500 35,34 500 35,34 1415
G2 F2 928 31,31 115 3,88 463 15,62 88 2,97 1370 46,22 2964
G3 F1 + F2 1127 25,72 160 3,65 634 14,47 861 19,65 1600 36,51 4382

Et voici un aperçu plus détaillé de la construction de chaque jeu de données :

ESI 125
CHAPITRE 7. TESTS ET RÉSULTATS

Figure 73 – Diagramme en secteurs qui montrent les pourcentages d’étiquettes pour


chaque jeu de données (Categories) construit.

Nous avons construit trois jeux de données différents à partir de nos différentes
sources, les principales propriétés et différences que nous trouvons dans ces jeux de
données sont les suivantes :
• Tous les jeux de données sont construits d’une manière non équilibrée, et cela
renvoie à la nature des données et au manque de données disponibles sur Inter-
net avec ces étiquettes (Commentaire en dialecte Algérien avec les étiquettes
de : SPAM / PRIX / QUESTION / PLAINTE)
• G3 est plus grand que les deux autres et il est le résultat de la combinaison de
F1 (GEN-42) et F2 (GEN-42/ENIEM).
• Tous les jeux de données contiennent 5 étiquettes.
• Tous les jeux de données contiennent des commentaires écrits principalement
en dialecte Algérien (Darja), certains en caractères latin et d’autres en carac-
tères arabes.

7.1.3 Statistiques sur le nombre de mots


Dans cette section, nous montrons les effets du prétraitement sur le nombre de
mots dans notre ensemble de jeux de données construits.
Voici deux graphiques qui montrent l’évolution du nombre de mots totaux et
uniques en fonction des phases de prétraitement. Nous avons choisi les chiffres du
début, une phase au milieu, et la finition pour avoir une vue plus claire.

ESI 126
CHAPITRE 7. TESTS ET RÉSULTATS

Figure 74 – Graphique qui montre l’évolution du nombre total de mots en fonction


des phases de prétraitement.

Figure 75 – Graphique qui montre l’évolution du nombre de mots uniques en fonction


des phases de prétraitement

Nous avons au total 8 jeux de données (5 pour l’étude de polarité et 3 pour l’étude
de catégorie) et le nombre de mots pour ces jeux de données, tous, varie et évolue en
fonction des phases de prétraitement.
Comme le montre le graphique, les jeux de données qui ont le plus grand nombre
de documents (commentaires) sont ceux qui possèdent le plus grand nombre de mots
et ce sont eux qui souffrent le plus de pertes de nombres de mots.
la réduction du nombre de mots pour tous les ensembles de données à travers le

ESI 127
CHAPITRE 7. TESTS ET RÉSULTATS

prétraitement est attendue vue la nature des phases du prétraitement telles que la
suppression de symboles, la suppression de mots en double, le regroupement phoné-
tique, etc.
Et un nombre moins de mots devrait aider à obtenir un meilleur résultat dans la
classification
Par la suite, nous vérifierons si c’est toujours le cas dans la partie des tests.

Le tableau suivant montre le nombre total de mots pour chaque jeu de données
distribué depuis le début du prétraitement, en passant par la phase : Suppression des
mots en double, et jusqu’à la dernière phase : l’élimination des chiffres et des lettres
isolées.
D1 - D2 - D3- D4 - D5 - G1- G2- G3 -
2200 5500 3212 3900 7721 1415 2964 4382
phase 0 25246 61767 15232 27270 53926 5814 19260 23302
phase 8
(Suppression des 22895 55682 14509 25127 50599 5592 18529 22423
mots en double)
phase 13
(Suppression 19938 47227 11060 20614 40760 4172 14367 17290
des chiffres)
Table 38: Les nombres de mots total dans les phases
0,8,13 pour tous les jeux de données.

D1 - D2 - D3- D4 - D5 - G1- G2- G3 -


2200 5500 3212 3900 7721 1415 2964 4382
phase 0 10931 20863 7275 12316 19193 3021 5712 7742
phase 8
(Suppression des 10526 19910 6771 11828 17564 2867 5382 7238
mots en double)
phase 13
(Suppression 6433 10943 3721 6759 9672 1808 3528 4374
des chiffres)
Table 39: Les nombres de mots uniques dans les phases
0,8,13 pour tous les jeux de données.

Nous remarquons que pendant les phases 8 à 13, que se produit la plus grande
réduction de mots pour la plupart des ensembles de données, qu’il s’agisse de mots
uniques ou totaux.
Les deux principales phases responsables de ceci sont la phase 8 : suppression
des mots en double et la phase 12 : suppression des voyelles. Après le regroupement
phonétique, nous retrouverons éventuellement les mêmes mots deux fois ou plus dans
un commentaire, donc tous les doublons du même mot dans le même commentaire
seront supprimés.
Et bien sûr après toutes les phases précédentes et la translittération et les chan-
gements qui se produisent, beaucoup de mots ne contiendront que des voyelles, ce qui
explique le changement des nombres.

ESI 128
CHAPITRE 7. TESTS ET RÉSULTATS

7.1.4 Les mots les plus fréquents à trouver


Dans cette section, nous présenterons les mots les plus fréquents (avec leurs oc-
currences) qui sont apparus dans le plus grand jeu de données dont nous disposons
(polarité, D5 - 7721).

Figure 76 – Graphique en barres qui montre les mots les plus fréquents dans l’en-
semble de données 7721 avant tout prétraitement effectué.

Figure 77 – Graphique en barres qui montre les mots les plus fréquents dans l’en-
semble de données 7721 après 13 phases de prétraitement.

Une autre façon de voir les résultats du prétraitement autre des variations de
nombre de mots, est de voir les mots les plus fréquents avant et après.
Nous avons exploré le jeux de données avec les 7721 documents (commentaires)
et extrait les mots (features) avec leur occurrences et nous les avons ordonnés.
Nous voyons les 30 premiers mots d’avant et après tout le prétraitement, et nous
pouvons remarquer que les totaux ont changé.

Exemples :
le mot áÓ qui était auparavant de 665 est passé à 726 écrit comme ’mn’, et et c’est
grâce à le regroupement phoentique pour des mots similaires, et à la suppression de
voyelle qui a abouti à des mots similaires à être regroupés avec lui.
Même chose avec ’merci’ qui en avait 165 et est passé à 213 avec ‘mrc’, regroupe-
ment phonétique et suppression de voyelle de variations telles que «merciiiii, marrcii,
mercccuuuu».
Même chose avec é<Ë@ de 590, passé à 713 avec ’lh’
D’autre part, certains mots sont complètement supprimés tels que ú¯ qui a eu le
plus grand nombre d’apparitions avec 819 et qui n’est même pas dans le top 30, la

ESI 129
CHAPITRE 7. TESTS ET RÉSULTATS

nature de ce mot est ce qui a causé cela, une fois translittéré, il devient ’ fi ’puis après
la suppression de la voyelle, il passe à’ f ’et f est une seule lettre isolée, il est donc
également supprimé à la phase 13.

7.2 Plan de test


Le tableau suivant est le plan de test complet que nous avons utilisé, il est composé
de 8 scénarios différents pour 8 jeux de données différents, chacun avec ses propres
propriétés, testés avec différentes variations d’algorithmes et de méthodes de repré-
sentation.
Cas Dataset Type Representation Pretraitmment Mesure Algorithme Validation Equilibré
NB / SVM
Toutes les Toutes les Accuracy K-Cross
1 D1 Polarité / DT OUI
méthodes phases F1 Validation
/ KNN / LG
NB / SVM
Toutes les Toutes les Accuracy K-Cross
2 D2 Polarité / DT NON
méthodes phases F1 Validation
/ KNN / LG
NB / SVM
Toutes les Toutes les Accuracy K-Cross
3 D3 Polarité / DT NON
méthodes phases F1 Validation
/ KNN / LG
NB / SVM
Toutes les Toutes les Accuracy K-Cross
4 D4 Polarité / DT OUI
méthodes phases F1 Validation
/ KNN / LG
NB / SVM
Toutes les Toutes les Accuracy K-Cross
5 D5 Polarité / DT OUI
méthodes phases F1 Validation
/ KNN / LG
NB / SVM
Toutes les Toutes les Accuracy K-Cross
6 G1 Catégorie / DT NON
méthodes phases F1 Validation
/ KNN / LG
NB / SVM
Toutes les Toutes les Accuracy K-Cross
7 G2 Catégorie / DT NON
méthodes phases F1 Validation
/ KNN / LG
NB / SVM
Toutes les Toutes les Accuracy K-Cross
8 G3 Catégorie / DT OUI
méthodes phases F1 Validation
/ KNN / LG

Table 40 – Le plan des tests suivi.

Nous avons testé sur chacun des 8 jeux de données construits (5 pour la polarité
et 3 pour la catégorie) sur 3 axes différents qui sont les suivants :

Premier axe : prétraitement


Nous avons utilisé l’ensemble des 13 phases de prétraitement, et testé pour cha-
cune d’entre elles pour déterminer laquelle augmente le score, laquelle le décrémente
et laquelle n’est pas nécessaire.

Les phases de prétraitement sont les suivantes :


• Phase 01 : Suppression du lien URL
• Phase 02 : Suppression des tirets
• Phase 03 : Translittération des caractères arabes vers le latin
• Phase 04 : Suppression des symboles
• Phase 05 : Suppression des lettres successives répétées
• Phase 06 : Rendre les lettres minuscules
• Phase 07 : Regroupement phonétique

ESI 130
CHAPITRE 7. TESTS ET RÉSULTATS

• Phase 08 : Suppression des mots en double


• Phase 09 : Suppression des mots vides
• Phase 10 : Désaccentuation (Suppression des accents)
• Phase 11 : Substitution de certains nombres par des caractères latins
• Phase 12 : Suppression des voyelles
• Phase 13 : Suppression des nombres et des lettres isolées

Deuxième axe : méthode de représentation


Nous l’avons testé pour voir laquelle donne le meilleur résultat en fonction des
données en main, les méthodes que nous avons testées sont :
• Méthode 1 : Binaire
• Méthode 2 : TF (fréquence du terme)
• Méthode 3 : TF-IDF (ffréquence du terme – fréquence inverse du document)

Troisième axe : algorithme


Les algorithmes sur lesquels nous avons testé sont :
• Algorithme 1 : Naive Bayes
• Algorithme 2 : SVM
• Algorithme 3 : KNN
• Algorithme 4 : Régression logistique
• Algorithme 5 : Arbre de décision

Nous avons testé en utilisant la méthode de validation k-cross (k-validation croisée),


et sur toutes les mesures d’évaluation, mais nous n’afficherons que les mesures : Exac-
titude (Accuracy) et mesure f1. L’exactitude parce qu’il est simple à interpréter mais
peut être imprécis avec des données déséquilibrées, c’est pourquoi nous avons éga-
lement choisi la mesure f1 qui combine la précision et le rappel est leur moyenne
harmonique, nous avons omis la précision et le rappel malgré leur extraction parce
qu’ils sont inclus dans le calcul de la mesure F1 et pour ne pas surcharger les tableaux
de résultats.
Nous explorerons nos résultats de classification sur 8 jeux de données différents, 5
pour la polarité et 3 pour la catégorie , certains d’entre eux sont étiquetés de manière
équilibrée et d’autres non. Toutes ces variations et combinaisons sont effectuées dans
le but d’atteindre un modèle robuste.

7.3 Difficultés rencontrées


Lors du test des différents algorithmes avec les combinaisons mentionnées, nous
avons rencontré des limitations et des difficultés.

Erreur de mémoire
La première difficulté majeure était la limitation de la mémoire (RAM).
Nous avons essayé de tester avec des jeux de données qui contenaient 31000 docu-
ments et 57000 documents (nous les avons construits simplement en doublant et en
combinant les jeux de données mentionnés précédemment).

Comme le montrent les captures d’écran suivantes :

ESI 131
CHAPITRE 7. TESTS ET RÉSULTATS

Figure 78 – L’erreur rencontrée lors de la tentative de classification de 31 000 com-


mentaires à la fois avec SVM.

Figure 79 – L’erreur rencontrée lors de la tentative de classification de 57 000 com-


mentaires à la fois avec SVM.

L’erreur indique qu’il n’y a pas assez de mémoire RAM pour classifier ce nombre
de commentaires, il fallait 12,7 Go de plus, d’où le choix d’un jeux de données extrê-
mement volumineux pouvait être problématique.

Le RAM utilisé lors de ce test est celui du serveur d’entreprise sur lequel nous al-
lons éventuellement déployer l’application : (8GB Total, dont seulement 500 Mo est
libre, 6 Go est disponible mais pourrait être utilisée par d’autres programmes dans le
serveur)

Figure 80 – propriétés de la mémoire RAM du serveur interne de GEN-42

ESI 132
CHAPITRE 7. TESTS ET RÉSULTATS

Temps d’exécution
Lors du test des différentes combinaisons, nous mentionnons que l’algorithme de
régression logistique prend plus de temps d’exécution que tous les autres.
La capture d’écran suivante a été prise lors du test de la régression logistique
avec la méthode de représentation binaire et sur l’ensemble de données de 2.200
commentaires sur 13 phases avec la validation croisée.

Figure 81 – Une capture d’écran montrant le temps d’exécution de 2 heures et 24


minutes résultat du test de l’algorithme de régression logistique sur 2200 documents.

Cet algorithme a mis beaucoup de temps à être exécuté comparer a d’autres, et il


a fait la même chose avec toutes les autres méthodes, c’est pourquoi nous l’avons
éliminé de nos choix.

7.4 Les résultats obtenus


7.4.1 Cas de test 01 : D1 – 2200

Jeux de données D1 - 2200 Etiquette Nombre


Classification basé sur Polarité Positive 1100
Equilibré OUI Négative 1100
Table 41: Description de jeux de données D1

Ce jeu de données est composé de commentaires collectés à partir de l’ensemble


de données public de Mataoui et al. (2016), Comme la plupart des commentaires de
ce jeux de données sont écrits en lettres arabes, ce sera donc un bon test pour voir
les résultats dans un tel ensemble de données.

ESI 133
CHAPITRE 7. TESTS ET RÉSULTATS

Figure 82 – Résultats de classification pour trois phases différentes et trois méthodes


différentes sur tous les algorithmes sur D1

Figure 83 – Graphique à barres pour récapituler les résultats de la métrique de


l’exactitude sur D1

L’ensemble de données est choisi comme étant parfaitement équilibré entre positif
et négatif.
Les meilleurs résultats sont observés dans les SVM, TF et TFIDF, phase 07 et
Naive Bayes phase 07 avec TFIDF, tous ces résultats étant de 77% sur l’exactitude.
L’algorithme KNN a donné les scores les plus faibles, tandis que les scores de
l’arbre de décision étaient au mieux modestes.
Pour un jeux de données équilibré, ces résultats sont plutôt encourageants.

ESI 134
CHAPITRE 7. TESTS ET RÉSULTATS

7.4.2 Cas de test 02 : D2 – 5500

Jeux de données D2 - 5500 Etiquette Nombre


Classification basé sur Polarité Positive 4400
Equilibré NON Négative 1100
Table 42: Description de jeux de données D2

Figure 84 – Résultats de classification pour trois phases différentes et trois méthodes


différentes sur tous les algorithmes sur D2

Figure 85 – Graphique à barres pour récapituler les résultats de la métrique de


l’exactitude sur D2

Ce jeu de données est composé de commentaires collectés à partir de l’ensemble


de données public de Mataoui et al. (2016).
L’ensemble de données choisi est non équilibré, il y a 4 fois plus de commentaires
positifs que négatifs.

ESI 135
CHAPITRE 7. TESTS ET RÉSULTATS

Les meilleurs résultats sont vus dans les SVM, TF et TFIDF, phases 07 et avec 84%
sur le score de l’exactitude, et Naive Bayes phase 07 avec TFIDF étant le deuxième
meilleur score de 81% sur l’exactitude.
L’algorithme KNN a donné les scores les plus faibles, tandis que les scores de
l’arbre de décision étaient au mieux modestes.
Pour un jeux de données non équilibré, ces résultats étaient attendus, car même
s’ils sont élevés, mais ils seulement reflètent que la classification serait bonne lorsque
la plupart des données sont positives,
Donc, dans ce cas, notre modèle sera surchargé de commentaires positifs ,et il
serait un risque d’entraîner le modèle sur ce type de jeux de données parce qu’il
pourrait trouver une grande quantité de commentaires négatifs et les identifier tous
comme positifs.

7.4.3 Cas de test 03 : D3 – 3212

Jeux de données D3 - 3212Etiquette Nombre


Classification basé sur Polarité Positive 1415
Equilibré NON Négative 275
Neutre 1480
Table 43: Description de jeux de données D3

Figure 86 – Résultats de classification pour trois phases différentes et trois méthodes


différentes sur tous les algorithmes sur D3

Ce jeu de données est entièrement composé des commentaires collectés à partir


du corpus privé GEN-42.
L’ensemble de données n’est pas vraiment équilibré, il y a beaucoup plus de positifs
et de neutres que de négatifs.

ESI 136
CHAPITRE 7. TESTS ET RÉSULTATS

Figure 87 – Graphique à barres pour récapituler les résultats de la métrique de


l’exactitude sur D3

Les meilleurs résultats sont vus dans le SVM, TFIDF, phase 13 : 72% sur le score
de l’exactitude. et Naive Bayes phase 13 avec TFIDF étant le deuxième meilleur score
de 71% sur l’exactitude.
L’algorithme KNN a donné les scores les plus faibles, tandis que les scores de
l’arbre de décision étaient au mieux modestes.
D’après les résultats, il est évident qu’une classification avec trois étiquettes sur
un jeu de données déséquilibré est plus difficile que qu’une classification binaire dés-
équilibrée.
Mais, puisque c’est fait sur des commentaires de dialecte Algérien, 72% est un
score toujours encourageant pour la classification automatique.

7.4.4 Cas de test 04 : D4 – 3900

Jeux de données D4 - 3900 Etiquette Nombre


Classification basé sur Polarité Positive 1300
Equilibré OUI Négative 1300
Neutre 1300
Table 44: Description de jeux de données D4

Ce jeu de données est composé d’un mélange, la plupart des commentaires sont
ceux collectés à partir du corpus privé GEN-42, le reste (majoritairement les négatifs)
sont les données publiques de Mataoui et al. (2016).

ESI 137
CHAPITRE 7. TESTS ET RÉSULTATS

Figure 88 – Résultats de classification pour trois phases différentes et trois méthodes


différentes sur tous les algorithmes sur D4

Figure 89 – Graphique à barres pour récapituler les résultats de la métrique de


l’exactitude sur D4

Nous avons ajouté des commentaires de (Mataoui et al. (2016)) pour atteindre
1300 négatifs et en avons retiré certains des deux autres classes (positif et neutre), le
jeu de données est parfaitement équilibré entre les trois étiquettes.
Les meilleurs résultats sont observés dans les SVM, TF et TFIDF, phase 7 et 13
avec 70% sur le score de l’exactitude, et Naive Bayes phase 13 avec TF-IDF étant le
deuxième meilleur score de 69% sur l’exactitude.
L’algorithme KNN a donné les scores les plus faibles, tandis que les scores de
l’arbre de décision étaient au mieux modestes.
Les résultats reflètent qu’il est plus difficile de classifier entre trois étiquettes,
surtout lorsque on a un équilibre entre ce étiquettes, cependant, avoir un exactitude
de 70% sur les commentaires du dialecte Algérien pour classifier la polarité entre 3
classes différentes est certainement encourageant.

ESI 138
CHAPITRE 7. TESTS ET RÉSULTATS

7.4.5 Cas de test 05 : D5 – 7721

Jeux de données D5 - 7721 Etiquette Nombre


Classification basé sur Polarité Positive 3215
Equilibré OUI Négative 1706
Neutre 2800
Table 45: Description de jeux de données D5

Figure 90 – Résultats de classification pour trois phases différentes et trois méthodes


différentes sur tous les algorithmes sur D5

Figure 91 – Graphique à barres pour récapituler les résultats de la métrique de


l’exactitude sur D5

Ce jeu de données est composé d’un mélange : Mataoui et al. (2016), Pages de
GEN-42, commentaires de la page ENIEM et quelques commentaires manuels que

ESI 139
CHAPITRE 7. TESTS ET RÉSULTATS

nous-mêmes avons ajoutés. Ce jeux de données peut être considéré équilibré à un


certain degré.
Les meilleurs résultats sont observés dans le SVM et Naive Bayes, TF et TFIDF,
phase 7 et 13 avec 75% à la fois sur l’exactitude et le score F1.
L’algorithme KNN a donné les scores les plus faibles, tandis que les scores de
l’arbre de décision étaient au mieux modestes.
Ces résultats de 75% d’exactitude sont vraiment encourageants compte tenu de la
nature des données (équilibré, 3 étiquettes, dialecte Algérien).
Nous mentionnons également que les futurs commentaires attendues (dans le pages
Facebook) sont vraiment similaires à celles de ce jeu de données, par conséquent, les
résultats de la classification sur ce jeu de données sont très utiles et prometteurs.

7.4.6 Cas de test 06 : G1 – 1415

Jeux de données G1 - 1415 Etiquette Nombre


Classification basé sur Catégorie Question 199
Equilibré NON Complaint 45
Price 171
Spam 500
Unrelated 500
Table 46: Description de jeux de données G1

Figure 92 – Résultats de classification pour trois phases différentes et trois méthodes


différentes sur tous les algorithmes sur G1

Ce jeu de données n’est pas équilibré et se compose de 1415 commentaires de


dialecte Algérien recueillis à partir des pages GEN-42. Il se compose de 5 étiquettes
différentes de catégories des commentaires.

ESI 140
CHAPITRE 7. TESTS ET RÉSULTATS

Figure 93 – Graphique à barres pour récapituler les résultats de la métrique de


l’exactitude sur G1

Les meilleurs résultats sont observés dans SVM, TFIDF, phase 7 avec 78% à la
fois en exactitude et en F1.
Le KNN continue de donner les résultats les plus bas, et l’arbre de décision et le
Naive-bayes sont loin derrière cette fois.
Globalement ces résultats sont très prometteurs, nous verrons comment il en sera
lorsque l’équilibrage des étiquettes sera différent.

7.4.7 Cas de test 07 : G2 – 2964

Jeux de données G2 - 2964 Etiquette Nombre


Classification basé sur Catégorie Question 928
Equilibré NON Complaint 115
Price 463
Spam 88
Unrelated 1370
Table 47: Description de jeux de données G2

ESI 141
CHAPITRE 7. TESTS ET RÉSULTATS

Figure 94 – Résultats de classification pour trois phases différentes et trois méthodes


différentes sur tous les algorithmes sur G2

Figure 95 – Graphique à barres pour récapituler les résultats de la métrique de


l’exactitude sur G2

Ce jeu de données n’est pas équilibré et se compose de 2964 commentaires Darja


collectés à partir de la page ENIEM, l’un des clients GEN-42.
Il se compose de 5 étiquettes différentes de catégories des commentaires.
Il est différent du jeu de données G1, celui-ci a moins de spams et plus de non-liés
(unrelated) et de plaintes (complaints).
Nous verrons les résultats dans ce genre de distribution d’étiquettes :
Les meilleurs résultats sont observés dans SVM, TFIDF, phase 7 avec 81% à la
fois en exactitude et en F1.
Naive bayes est le deuxième meilleure avec 79% comme meilleur résultat.
Le KNN continue de donner les résultats les plus bas, et l’arbre de décision est
loin derrière cette fois.
81% est un résultat prometteur pour l’exactitude sur un type de jeu de données
déséquilibré, Jusqu’à présent, notre modèle est toujours robuste. nous allons ensuite
le tester sur un jeu de données équilibré dans les catégories.

ESI 142
CHAPITRE 7. TESTS ET RÉSULTATS

7.4.8 Cas de test 08 : G3 – 4382

Jeux de données G3 - 4382 Etiquette Nombre


Classification basé sur Catégorie Question 1127
Equilibré NON Complaint 160
Price 634
Spam 861
Unrelated 1600
Table 48: Description de jeux de données G3

Figure 96 – Résultats de classification pour trois phases différentes et trois méthodes


différentes sur tous les algorithmes sur G3

Figure 97 – Graphique à barres pour récapituler les résultats de la métrique de


l’exactitude sur G3

Ce jeu de données est équilibré à un certain degré, il se compose de 4382 com-


mentaires de dialecte Algérien, il est le résultats de la combinaison des deux jeux de

ESI 143
CHAPITRE 7. TESTS ET RÉSULTATS

données précédents.
Il se compose de 5 étiquettes différentes pour les catégories des commentaires.
Les meilleurs résultats sont observés dans SVM, TFIDF, phase 7 avec 80% à la
fois sur l’exactitude et la F1. Naive Bayes est le deuxième meilleur avec 78% sur la
phase 07 du TFIDF.
Le KNN et l’arbre de décision continuent de donner les résultats les plus bas.
Considérant qu’il s’agit d’un jeux de données équilibré, et celui avec les commen-
taires les plus similaires à ceux que nous attendons dans pages Facebook, et que nous
classifions entre 5 classes, Le score de 80% de exactitude et 79% en F1 est considéré
comme très satisfaisant.

7.4.9 Meilleures résultats et synthése

Jeux de données Meilleur combinaison Score


SVM / TF / Phase 07
D1 – 2200 Exactitude : 77% / F1 : 77%
NB / TF-IDF / Phase 07
D2 – 5500 SVM / TF-IDF / Phase 13 Exactitude : 84% / F1 : 82%
D3 – 3212 SVM / TF-IDF / Phase 13 Exactitude : 72% / F1 : 72%
D4 – 3900 SVM / TF-IDF / Phase 13 Exactitude : 70% / F1 : 70%
D5 – 7721 SVM / TF-IDF / Phase 07 Exactitude : 75% / F1 : 75%
G1 – 1415 SVM / TF-IDF / Phase 07 Exactitude : 78% / F1 : 78%
G2 – 2964 SVM / TF-IDF / Phase 07 Exactitude : 81% / F1 : 80%
G3 – 4382 SVM / TF-IDF / Phase 07 Exactitude : 80% / F1 : 79%
Table 49: Résumé des meilleurs scores sur tous les tests

Après avoir testé sur 8 jeux de données différents, en utilisant de nombreuses com-
binaisons (3 méthode de représentation X 4 Algorithme X 8 Jeux de données = 96
Test), nous avons beaucoup de résultats qui varient selon les méthodes et algorithmes
et jeux données, mais le résultat le plus fréquent est que l’algorithme SVM avec le
TF-IDF donne les meilleurs scores.
En ce qui concerne le prétraitement, on a vu des résultats presque égaux entre la fin
de la phase 08 (suppression des mots en double), et la fin du prétraitement (phase
13).
Étant donné que tous les jeux de données sont constitués de commentaires du dia-
lecte Algérien (Darja), obtenir des scores tels que 75%, 80% et 84% est extrêmement
encourageant et considéré comme un bon résultat.
À la fin de ces tests, nous utiliserons le jeu de données de D5-7721 sur lequel nous
avons obtenu le score de 75% pour entraîner notre modèle, pour la prédiction de fu-
turs commentaires.
Nous avons choisi le D5-7721 car c’est un jeux de données qui a 3 étiquettes diffé-
rentes, il est équilibré, et il est le plus similaire à ce qui est attendu dans les données
à venir ; Et biensur nous utiliserons le SVM avec la représentation TF-IDF avec un
prétraitement complet.

ESI 144
CHAPITRE 7. TESTS ET RÉSULTATS

7.4.10 Cas de test pratique : Corpus C3


Ce test est effectué pour vérifier les performances de notre classificateur lors de la
classification des commentaires Darja.
Nous avons utilisé le corpus C3 (2900 commentaires d’ENIEM) comme échantillon
de test, nous allons tester notre classificateur sur ses commentaires. Les prédictions
et les résultats seront écrits sur le fichier Excel et nous calculerons le nombre de
prédictions correspondantes (correctes) sur le même fichier.
Les données avec lesquelles nous avons fait l’entraînement de notre modèle sont le
jeu de données D5 - 7721, parce qu’il a trois étiquettes (positive, négative, Neutre),
a donné des résultats très prometteurs, et celui avec le plus de similitude avec les
commentaires attendus.
Nous avons utilisé SVM avec TFIDF et un prétraitement complet.
La capture d’écran suivante est pour le fichier excel du corpus, avant de prédire
ses commentaires automatiquement :

Figure 98 – Capture d’écran du fichier Excel initial avant modifications.

Les colonnes de sentiments et de catégories ont été annotées en collaboration entre


nous et certains membres de l’équipe GEN-42, tandis que les autres colonnes affichées
(Attitude, Produit, Marque, Insight) ont été annotées par eux, car elles contribuent
à une étude différente qu’ils font.

ESI 145
CHAPITRE 7. TESTS ET RÉSULTATS

Voici une capture d’écran du fichier, après avoir effectué la classification automa-
tique et inséré les résultats dans le fichier Excel :

Figure 99 – Capture d’écran pour le fichier Excel après avoir inséré les résultats.

Après avoir prédit le sentiment et les catégories dans notre classificateur, nous
avons réinséré dans Excel en ajoutant les colonnes affichées à l’écran.
• La colonne Sentiment Predicted : est le sentiment généré automatiquement par
notre classificateur.
• La colonne de Sentiment Correct : vaut 1 si le sentiment prédit égal à celui
marqué manuellement, sinon 0 ;
et la somme de cette colonne est le nombre de commentaires correctement
prédits.
• La colonne Sentiment Exist : tous remplis par 1, et c’est juste un moyen de
calculer le nombre de commentaires.
• La colonne de Field predicted : est la catégorie / champ généré automatique-
ment par notre classfier.
• La colonne du Field Correct : vaut 1 si la catégorie prédite est égal à celui
marquée manuellement, sinon 0 ;
et la somme de cette colonne est le nombre de commentaires correctement
prédits.
’Sentiment Correct’ et ’Sentiment Exist’ et ’Field Correct’ étaient remplies par des
formules Excel.
’Sentiment Predicted’ et ’Field Predicted’ ont été copiées à partir de fichiers générés
par notre classification.

ESI 146
CHAPITRE 7. TESTS ET RÉSULTATS

Résultats

Figure 100 – Capture d’écran pour les cellules de résultats du fichier Excel.

Selon le même fichier Excel et les calculs effectués :


• Sur 2964 commentaires : 2419 des catégories ont été prédites correctement
(81.61%)
• Sur 2964 commentaires : 2564 des sentiments ont été correctement prédits
(86.50%)
Les résultats sont très satisfaisants ce qui prouve que la combinaison de SVM, TF-IDF
et de prétraitement complet était en effet un bon choix,
Et bien sûr, cela montre que le jeu de données D5 - 7721 est le choix le plus ap-
proprié comme ensemble d’apprentissage pour les prochains commentaires similaires
de dialecte Algérien pour la polarité, et le G3 - 4382 est le plus approprié pour les
catégories.

Conclusion
À la fin de ce chapitre, nous avons montré en détail nos données collectées et nos
jeux de données construits.
Nous avons suivi un plan de test, interprété les différents résultats et à la fin
nous sommes arrivés avec un ensemble d’entrainement principal, un algorithme et
une méthode de représentation ; pour nous, ce sera le SVM avec le TF-IDF.

ESI 147
Conclusion

À la fin de cette partie, nous sommes maintenant familiarisés avec l’entreprise, ses
différents rôles et perspectives d’avenir à développer, ses besoins et les objectifs que
notre système devrait atteindre.

Nous avons présenté un dessin détaillé de la solution, de l’analyse des sentiments


et du système global, nous avons expliqué chaque détail de chaque phase et conclu
avec la structure de la base de données.
Ensuite Nous avons expliqué les technologies et les bibliothèques que nous avons
utilisées, puis nous avons montré les interfaces de notre produit final, en détaillant
l’architecture globale de la solution. Nous avions aussi un chapitre dédié aux toutes
les informations et statistiques sur les différents données collectées, la documentation
des tests effectués et résultats enregistré et la synthèse des meilleures résultats.
Par conséquent nous sommes arrivés avec un ensemble d’entrainement principal, un
algorithme et une méthode de représentation ; pour nous, ce sera le SVM avec le
TF-IDF.

148
Conclusion générale et perspectives

Dans ce rapport, nous avons présenté dans un premier temps une étude biblio-
graphique, nous avons mis en lumière les domaines de l’analyse des sentiments et de
l’apprentissage automatique, illustrant leurs différentes applications et propriétés.
Nous avons ensuite effectué un travail de synthèse où nous avons expliqué en détail les
étapes de l’approche d’apprentissage automatique en analyse de sentiment en citant
les travaux importants dans le contexte.
Nous avons montré la difficulté de travailler sur la langue arabe, et nous avons cité
les travaux qui ont fait l’analyse de sentiments sur le dialecte Algérien.

Après l’étude bibliographique, nous avons présenté une étude détaillée des besoins
suivie d’une conception de notre solution d’analyse des sentiments.
Nous avons également présenté des tests détaillés, documenté les technologies utilisées
et présenté des captures d’écran de l’outil réalisé.

Nous avons donc atteint et achevé nos objectifs.


Nous avons construit avec succès un système qui :
• Récupère les données de Facebook et les affiche.
• Classifie automatiquement les commentaires du dialecte Algérien selon leur
polarité (Positif, Négatif, Neutre) et leur catégorie (Spam, Prix, Plainte, Ques-
tion, Autre).
• Permet à l’utilisateur de corriger les commentaires mal prédits.
• Utilise les commentaires corrigés par l’utilisateur pour l’amélioration de la
prédiction (Les commentaires seront ajoutés aux ensembles d’apprentissage à
condition que ce nouveaux ensemble d’apprentissage obtient un meilleur résul-
tat et que les étiquettes de jeux de données ne deviennent pas trop déséquili-
brées)
• Affiche différentes statistiques sur les chiffres de classification sur un tableau
de bord.
• Montre le taux de satisfaction sur chaque Post et sur chaque page.
• Donne le contrôle au super administrateur pour surveiller, attribuer des pages,
voir l’historique des contributions et le classement.
• Permet aux utilisateurs de transférer des commentaires entre eux et les notifier
de tout transfert.
• Donne à l’utilisateur la possibilité de générer des rapports Excel contenant des
statistiques pour chaque page client Facebook.

Mais même si ce projet était satisfaisant pour le client et répond à tous ses besoins,
il y a toujours des choses à améliorer,
En tant que futures perspectives pour l’élargir, nous suggérons ce qui suit :

149
CONCLUSION GÉNÉRALE ET PERSPECTIVES

• Agrandir le dictionnaire utilisé pour la phase 07 : regroupement phonétique


qui ne contient actuellement que 188 combinaisons.
• Connecter l’outil à différentes API de sites Web de médias sociaux (tels que
Twitter, LinkedIn, Instagram ...)
• Utiliser la méthode lexicale au lieu de la méthode automatique pour comparer
les résultats.
• Travailler profondément sur plusieurs phases de prétraitement, comme la trans-
littération avancée et le stemming avancé pour le dialecte.

ESI 150
Bibliographie

Abbasi, A., Chen, H., and Salem, A. (2008). Sentiment analysis in multiple languages :
Feature selection for opinion classification in web forums. ACM Trans. Inf. Syst.,
26(3).

Abdelhamid, N., Ayesh, A., and Hadi, W. (2014). Multi-label rules algorithm based
associative classification. Parallel Processing Letters, 24.

Abdul-Mageed, M., Kuebler, S., and Diab, M. (2012). SAMAR : A system for sub-
jectivity and sentiment analysis of Arabic social media. In Proceedings of the 3rd
Workshop in Computational Approaches to Subjectivity and Sentiment Analysis,
pages 19–28, Jeju, Korea. Association for Computational Linguistics.

Barretto, M. (2017). Sentiment analysis tools and techniques : A comprehensive


survey. International Journal for Research in Applied Science and Engineering
Technology, V :3030–3035.

Ben Salamah, J. and Elkhlifi, A. (2014). Microblogging opinion mining approach for
kuwaiti dialect. international conference of computer technology and information
management.

Bettiche, M., Mouffok, M., and Zakaria, C. (2018). Opinion Mining in Social Networks
for Algerian Dialect, pages 629–641.

Bishop, C. (2001). Pattern Recognition and Machine Learning.

Boiy, E. and Moens, M.-F. (2009). A machine learning approach to sentiment analysis
in multilingual web texts. Inf. Retr., 12 :526–558.

Cejuela, J. M., McQuilton, P., Ponting, L., Marygold, S. J., Stefancsik, R., Millburn,
G. H., Rost, B., and the FlyBase Consortium (2014). tagtog : interactive and text-
mining-assisted annotation of gene mentions in PLOS full-text articles. Database,
2014. bau033.

Chader, A., Dihia, L., Hamdad, L., Belkheir, M., and Hennoune, W. (2019). Sentiment
analysis for arabizi : Application to algerian dialect. pages 475–482.

Chen, K., Zhang, Z., Long, J., and Zhang, H. (2016). Turning from tf-idf to tf-igm
for term weighting in text classification. Expert Systems with Applications, 66 :245
– 260.

Cherif, W., Madani, A., and Kissi, M. (2015). A new modeling approach for arabic
opinion mining recognition. 2015 Intelligent Systems and Computer Vision, ISCV
2015.

151
BIBLIOGRAPHIE

Cord, M. and Cunningham, P. (2008). Machine learning techniques for multimedia :


case studies on organization and retrieval. Springer Science & Business Media.

D’Andrea, A., Ferri, F., Grifoni, P., and Guzzo, T. (2015). Approaches, tools and
applications for sentiment analysis implementation. International Journal of Com-
puter Applications, 125 :26–33.

Dror, G. (2005). Analysis of gene expression data spring semester. 2002 Lecture.

Duwairi, R., Marji, R., Sha’ban, N., and Rushaidat, S. (2014). Sentiment analysis in
arabic tweets. pages 1–6.

Elouardighi, A., Maghfour, M., Hammia, H., and Aazi, F.-Z. (2018). Analyse des sen-
timents à partir des commentaires facebook publiés en arabe standard ou dialectal
marocain par une approche d’apprentissage automatique.

Guellil, I., Azouaou, F., Saadane, H., and Semmar, N. (2018). Une approche fondée
sur les lexiques d’analyse de sentiments du dialecte algérien. TAL Traitement
Automatique des Langues, 58 :41 à 65.

Itani, M., Hamandi, L., Zantout, R., and Elkabani, I. (2012). Classifying sentiment
in arabic social networks : Naïve search versus naïve bayes. pages 192–197.

Jagtap, V. and Pawar, K. (2013). Analysis of different approaches to sentence-level


sentiment classification. International Journal of Scientific Engineering and Tech-
nology, 2 :164–170.

Japkowicz, N. (2006). Why question machine learning evaluation methods ? ( an


illustrative review of the shortcomings of current methods ).

Kang, H., Yoo, S. J., and il Han, D. (2012). Senti-lexicon and improved naïve bayes al-
gorithms for sentiment analysis of restaurant reviews. Expert Syst. Appl., 39 :6000–
6010.

Kaur, H. (2019). Top 10 algorithms every machine learning engi-


neer should know. Disponible sur [Link]
top-10-algorithms-every-machine-learning-engineer-should-know/
dernier accès 07/01/2020.

Kim, S., Han, K., and Rim, H.-C. (2006). Some effective techniques for naive
bayes text classification. IEEE Transactions on Knowledge and Data Engineering,
18(11) :1457–1466.

Kowsari, K., Jafari Meimandi, K., Heidarysafa, M., Mendu, S., Barnes, L., Brown, D.,
Id, L., and Barnes (2019). Text classification algorithms : A survey. Information
(Switzerland), 10.

Larousse (2012). opinion. Disponible sur [Link]


fr/posts/10150860016106710?_r&_rdc=2&_rdr dernier accès 4/12/2019.

Larousse (2019). émotion. Disponible sur [Link]


dictionnaires/francais/émotion/28829 dernier accès 2/12/2019.

Liu, B. and Zhang, L. (2013). A survey of opinion mining and sentiment analysis.
Mining Text Data, pages 415–463.

ESI 152
BIBLIOGRAPHIE

Lodhi, H., Saunders, C., Shawe-Taylor, J., Cristianini, N., and Watkins, C. (2002).
Text classification using string kernels. Journal of Machine Learning Research, 2.

Madigan, D., Genkin, A., Lewis, D., and Fradkin, D. (2005). Bayesian multinomial lo-
gistic regression for author identification. 25th International Workshop on Bayesian
Inference and Maximum Entropy Methods in Science and Engineering.

Magliani, F., Fontanini, T., Fornacciari, P., Manicardi, S., and Iotti, E. (2016). A
comparison between preprocessing techniques for sentiment analysis in twitter.

Mataoui, M., Zelmati, O., and Boumechache, M. (2016). A proposed lexicon-based


sentiment analysis approach for the vernacular algerian arabic. Research in Com-
puting Science, 110 :55–70.

Maynard, D. and Funk, A. (2011). Automatic detection of political opinions in


tweets. In Proceedings of the 8th International Conference on The Semantic Web,
ESWC’11, page 88–99, Berlin, Heidelberg. Springer-Verlag.

Mdhaffar, S., Bougares, F., Estève, Y., and Belguith, L. (2017). Sentiment analysis
of tunisian dialects : Linguistic ressources and experiments. pages 55–61.

Medhat, W., Hassan, A., and Korashy, H. (2014). Sentiment analysis algorithms and
applications : A survey. Ain Shams Engineering Journal, 5(4) :1093 – 1113.

Mitchell, T. M. (1997). Machine Learning. McGraw-Hill, Inc., USA, 1 edition.

Mukherjee, S. and Bhattacharyya, P. (2013). Sentiment analysis : A literature survey.


CoRR, abs/1304.4520.

Myers, D. G. (2004). Theories of emotion. Psychology : Seventh Edition, New York,


NY : Worth Publishers, 500.

Mylavarapu, B. (2018). Collaborative filtering and artificial neural network based


recommendation system for advanced applications.

Oladipupo Ayodele, T. (2010). Types of Machine Learning Algorithms, New Advances


in Machine Learning.

Pak, A. and Paroubek, P. (2010). Twitter as a corpus for sentiment analysis and
opinion mining. volume 10.

Pang, B. and Lee, L. (2004). A sentimental education : Sentiment analysis using


subjectivity summarization based on minimum cuts. In Proceedings of the 42nd
Annual Meeting of the Association for Computational Linguistics (ACL-04), pages
271–278, Barcelona, Spain.

Pang, B., Lee, L., and Vaithyanathan, S. (2002). Thumbs up ? sentiment classification
using machine learning techniques. In Proceedings of the ACL-02 Conference on
Empirical Methods in Natural Language Processing - Volume 10, EMNLP ’02, page
79–86, USA. Association for Computational Linguistics.

Petrillo, M. and Baycroft, J. (2010). Introduction to manual annotation. Fairview


research, page 9.

ESI 153
BIBLIOGRAPHIE

Rosenberg, M. and Turner, R. H. (1990). Social psychology : Sociological perspectives.


Transaction Publishers.

Sablonnière, B. (2015). La chimie des sentiments. Odile Jacob.

Saleh, M., Martín-Valdivia, M., Montejo-Ráez, A., and López, L. (2011). Experiments
with svm to classify opinions in different domains. Expert Syst. Appl., 38 :14799–
14804.

Sammut, C. and Webb, G. I. (2017). Encyclopedia of machine learning and data


mining. Springer Publishing Company, Incorporated.

Samuel, A. L. (1959). Some studies in machine learning using the game of checkers.
IBM Journal of Research and Development, 3(3) :210–229.

Shalev-Shwartz, S. and Ben-David, S. (2014). Understanding Machine Learning :


From Theory to Algorithms. Cambridge University Press.

Shoukry, A. and Rafea, A. (2012). Sentence-level arabic sentiment analysis.

Singh, A. K. and Shashi, M. (2019). Vectorization of text documents for identifying


unifiable news articles. International Journal of Advanced Computer Science and
Applications, 10(7).

Singh, R. and Kaur, R. (2015). Sentiment analysis on social media and online review.
International Journal of Computer Applications, 121 :44–48.

Turney, P. (2002). Thumbs up or thumbs down ? Semantic orientation applied to


unsupervised classification of reviews. Computing Research Repository - CORR,
pages 417–424.

Wang, R. (2020). Implementing decision tree in python using id3.

Wang, R. and Li, J. (2019). Bayes test of precision, recall, and f1 measure for compa-
rison of two natural language processing models. In Proceedings of the 57th Annual
Meeting of the Association for Computational Linguistics, pages 4135–4145.

Yamamoto, H., Isogai, S., and Sagisaka, Y. (2003). Multi-class composite n-gram
language model. Speech Communication, 41(2) :369 – 379.

ESI 154
Troisième partie

Annexe

155
ANNEXE

Annexe A : Méthodologie de travail


Afin d’assurer la bonne planification de notre projet, nous devons adapter des
méthodes et stratégies connues, nous avons suivi la méthode du machine learning
canvas pour simplifier notre approche machine learning, et la méthode CRISP pour
planifier le projet.

Méthodologie Machine Learning : Machine Learning Canvas


Machine Learning Canvas est un modèle pour la conception et la documentation
de systèmes d’apprentissage automatique. Il présente un avantage par rapport à un
document texte simple car le canevas aborde les composants clés d’un système d’ap-
prentissage automatique avec des blocs simples qui sont organisés en fonction de
leur pertinence les uns par rapport aux autres. Cet outil est devenu populaire car il
simplifie la visualisation d’un projet complexe et aide à démarrer une conversation
structurée à ce sujet. Nous présentons le canevas d’apprentissage automatique que
nous avons utilisé pour le projet, rempli des informations appropriées en fonction de
notre projet.

Figure 101 – Le canevas Machine Learning de notre projet

Les éléments présentés sur le canevas sont :


• Les décisions
Comment les prédictions sont-elles utilisées pour prendre des décisions qui
fournissent la valeur proposée à l’utilisateur final ?
• Tâche ML
Entrée, sortie à prévoir, type de problème.

ESI 156
ANNEXE

• Propositions de valeur
Qu’essayons-nous de faire pour les utilisateurs finaux du système prédictif ?
Quels objectifs servons-nous ?
• Source de données
Quelles sources de données brutes pouvons-nous utiliser ?
• La collecte de données
Comment obtenons-nous de nouvelles données dont nous apprenons ?
• Faire des prédictions
Quand faisons-nous des prédictions sur les nouvelles entrées ?
Combien de temps avons-nous pour représenter une nouvelle entrée comme
features et faire une prédiction ?
• Évaluation hors ligne (offline Evaluation)
Méthodes et métriques pour évaluer le système avant le déploiement.
• Évaluation et surveillance en direct (Live Evalution and monitoring)
Méthodes et métriques pour évaluer le système après son déploiement et pour
quantifier la valeur crée.
• Features
Représentations d’entrée extraites des sources de données brutes.
• Building models
Quand créons-nous / mettons-nous à jour des modèles avec de nouvelles don-
nées d’entraînement ?
Combien de temps avons-nous pour représenter les données de training en
features et créer un modèle ?

Méthodologie de planification de projet : CRISP-DM


Pour garantir la qualité de tout projet de science des données, nous devons nous
assurer que nous appliquons une méthodologie standard.
Le processus standard intersectoriel pour l’exploration de données, (Cross-industry
standard process for data mining) appelé CRISP-DM, est un modèle de processus
standard ouvert qui décrit les approches courantes utilisées par les experts de l’ex-
ploration de données. C’est le modèle analytique le plus utilisé.
En 2015, IBM a publié une nouvelle méthodologie appelée Analytics Solutions
Unified Method for Data Mining / Predictive Analytics (également appelée ASUM-
DM) qui affine et étend CRISP-DM.

ESI 157
ANNEXE

Figure 102 – Les étapes de la méthode CRISP

CRISP-DM divise son processus en six phases principales :

1. Compréhension commerciale
Se concentre sur la compréhension des objectifs et des exigences du projet d’un point
de vue commercial, puis sur la conversion de ces connaissances en une définition de
problème d’exploration de données et un plan préliminaire.

2. Compréhension des données


Commence par une première collecte de données et poursuit les activités afin de
se familiariser avec les données, d’identifier les problèmes de qualité des données, de
découvrir les premières informations sur les données ou de détecter des sous-ensembles
intéressants pour former des hypothèses d’informations cachées.

3. Préparation des données


La phase de préparation des données couvre toutes les activités de construction du
jeu de données final à partir des données brutes initiales.

4. Modélisation
Les techniques de modélisation sont sélectionnées et appliquées. Étant donné que
certaines techniques comme les réseaux de neurones ont des exigences spécifiques
concernant la forme des données, il peut y avoir une boucle de retour ici pour la
préparation des données.

ESI 158
ANNEXE

5. Évaluation
Une fois qu’un ou plusieurs modèles ont été construits qui semblent être de haute
qualité en fonction des métriques sélectionnées, ils doivent être testés pour s’assu-
rer qu’ils se généralisent par rapport aux données invisibles. Le résultat final est la
sélection du (des) modèle (s) champion (s).

6. Déploiement
Généralement, cela impliquera de déployer une représentation de code du modèle
dans un système d’exploitation pour noter ou classer les nouvelles données invisibles
au fur et à mesure qu’elles se présentent et pour créer un mécanisme pour l’utilisation
de ces nouvelles informations dans la solution du problème commercial d’origine.

Annexe B : Documents utilisés pour le briefing d’avan-


cement
Outre l’envoi d’e-mails, nous avons utilisé différents documents pour suivre les
progrès et les informer. Tels que les mini-rapports, voici un exemple :

Mini Report
Un mini-rapport est un document de deux pages, avec lequel nous et le PDG
avons convenu de l’utiliser comme moyen de communication pour informer de l’état
d’avancement au cours d’une certaine période passée (une semaine à trois semaines)

ESI 159
ANNEXE

Figure 103 – Capture d’écran sur un mini-rapport, page 1

ESI 160
ANNEXE

Figure 104 – Capture d’écran sur un mini-rapport, page 2

ESI 161
ANNEXE

PV de reunion
Afin de garder une trace des priorités et des tâches, nous écrivions des PV à chaque
réunion que ce soit avec l’entreprise ou l’encadrante, voici un modèle de PV réalisé
en GEN-42 :

Figure 105 – Modèle d’un PV de réunion faite avec l’équipe de GEN-42

Annexe C : Organisation des fichiers liés à la classifi-


cation
Jeux de données (Datasets)
Comme expliqué dans notre projet, nous avons utilisé de nombreux jeux de données
pour tester les différents aspects et obtenir les résultats, nous avons stocké ces jeux

ESI 162
ANNEXE

de données dans un dossier et avons nommé chacun avec le format suivant :


[Link]
Où XXXX représente le nombre de commentaires (2200,5500 ... etc) dans le jeux
de données et YY représente le numéro de phase (de 00 à 13). Dans l’ensemble, nous
nous sommes retrouvés avec plus de 270 fichiers (y compris les versions CSV et Json).

Figure 106 – Une capture d’écran du dossier contenant les différents fichiers de jeux
de données

Sauvegarde des résultats des tests


Comme il y avait beaucoup de tests à faire, nous avons stocké les fichiers dans une
certaine hiérarchie. Nous avons utilisé des dossiers pour chaque jeux de données, et
dans chaque dossier, nous avons enregistré les différents résultats pour les algorithmes
et les représentations, et à l’intérieur de chaque fichier de résultats, nous avons enre-
gistré les quatre métriques, plus tard, nous n’utiliserons que l’exactitude et la F1.

ESI 163
ANNEXE

Les images suivantes montrent la hiérarchie de la façon dont nous avons enregistré
les résultats.

Figure 107 – Les différents dossiers représentant chacun un jeu de données.

Figure 108 – Les différents fichiers contiennent chacun le résultat du test pour cette
combinaison particulière.

ESI 164
ANNEXE

Figure 109 – Les résultats pour un test particulier avec les 4 métriques sur les 13
phases de prétraitement.

Et ce qui suit est une capture d’écran de la page d’instructions du fichier txt que
nous avons écrit et envoyé aux Community Managers pour annoter les fichiers Excel
du Dataset GEN42 (Corpus C2)

Figure 110 – Le fichier d’instructions que nous avons créé et que les Community
Managers du GEN-42 ont suivi pour annoter le corpus C2.

ESI 165
ANNEXE

Générer les graphiques avec Excel


Après avoir extrait les résultats dans les fichiers csv affichés dans la section précé-
dente, nous les importons maintenant sur Excel. Nous les avons importés en utilisant
chaque feuil de calculs pour les résultats d’un jeu de données, et nous avons aligné
les résultats de chaque algorithme horizontalement.
Ensuite, pour ne pas surcharger le rapport, nous avons extrait les résultats des
phases 0,7 et 13 pour chaque algorithme et formé le tableau qui apparaît en couleur
à droite.
C’est le tableau que nous utilisions pour chaque jeu de données dans le rapport et
ce sont les étapes pour l’obtenir, nous avons ensuite généré la barre graphique pour
chaque table pour une meilleure visualisation et nous avons exporté le tableau et le
graphique pour chaque jeu de données pour les documenter dans le rapport.

Figure 111 – Le fichier Excel qui contient tous les résultats détaillés des tests, capture
d’écran de Microsoft Excel.

Annexe D : Clients GEN-42 sur Facebook


La liste des clients GEN-42 qui possède une page facebook gérée par l’entreprise,
selon les données actuelles collectées par Facebook Graph API sont :

Catégorie Page# Page Name Page Id


Page Client 1 Heineken 7174672354
Page Client 2 Les Hauteurs de Blida 101353651239823
Page Client 3 Gosto Dima 101809834524128
Page Client 4 Peugeot 102942379830983
Page Client 5 Salon de la Maternité et pe- 105482760980761
tite enfance
Page Client 6 SPAR Labastide-Saint- 117508432966642
Pierre

ESI 166
ANNEXE

Page Client 7 ENIEM 131929074101137


Page Client 8 Castel Beer Algérie 140648813281372
Page Client 9 Aladin Soummam 157213051511759
Page Client 10 Tawe3na 221804721211694
Page Client 11 Ambassade d’Ukraine en 250531492276771
Algérie/
Page Client 12 Samir Bellik Digital 278036409485459
Page Client 13 Margarine Sol 280391715466053
Page Client 14 Brandt 285878038443415
Page Client 15 Tradistuff 291815351413127
Page Client 16 Brandt Mobile 312420642905216
Page Client 17 Oriflame 323570567727180
Page Client 18 Société Générale 389944341442171
Page Client 19 Margarine Line Healthy 392384634926533
Page Client 20 Stella Artois Algérie 432671140261154
Page Client 21 Atct agency 441434582648194
Page Client 22 SKOR 442504153183228
Page Client 23 Samba Bière Blonde 540514889395106
Page Client 24 XXL Energy Algérie 643468332381693
Page Client 25 [Link] 643949689043729
Page Client 26 ENIEM 681242505639852
Page Client 27 BNP Paribas El Djazaïr 722955517714618
Page Client 28 AXA 782438418537585
Page Client 29 Elle & elle 872498406097498
Page Client 30 LG Mobile Algérie 894285500628611
Page Client 31 Beck’s Algérie 1088682621204393
Page Client 32 Beaufort Lager Algérie 1298125483604537
Page Client 33 Laiterie Soummam 1602606576702549
Page Client 34 Issad Rebrab 1707210982892482
Page Client 35 33 Export Algérie 1803522099869576
Page Client 36 Ô FISH poissonnerie trai- 1971348782945955
teur FISH& CHIPS
Page Possédée 37 Super Bidoune Ta3lik 100517594778015
Page Possédée 38 GEN 42 420171028123844
Page Possédée 39 Ads Technology 234649863611376
Page Possédée 40 Film au ciné 1720040901581162
Page Possédée 41 Samsung 320937081286263
Table 50: Pages Facebook des clients de GEN-42

Annexe E : Conception de l’interface graphique


1/ Interaction de l’interface graphique avec le reste de l’envi-
ronnement
L’interface de l’ensemble de l’application jouera un rôle très important dans l’at-
tribution des données utilisateur et la communication avec le backend. Le front-end

ESI 167
ANNEXE

ne récupérera que les fichiers de données que l’api lui enverra. Tout processus ne peut
être effectué que si l’utilisateur est d’abord connecté. Ensuite, l’utilisateur commence
à assigner de nouvelles données aux éléments récupérés. tout ce qu’il modifie sera
communiqué à l’API. une réponse de succès sera donnée par cette dernière.

Figure 112 – schéma des interactions de l’interface graphique

2/ Spécifications fonctionnelles de cette partie du système (In-


terface Graphique)
— Le système doit demander à l’utilisateur de s’authentifier avant d’accéder au
tableau de bord.
— Une fois que l’utilisateur est connecté, le système doit le diriger vers la page
d’accueil qui est un tableau de bord présentant des informations et des mesures
sur les pages qu’il gère en sorte d’éléments. Ces éléments sont :
• Une carte indiquant le nombre de feedbacks positifs ou aussi appelés im-
pressions pour toutes les pages attribuées à l’utilisateur, y compris le pour-
centage d’augmentation ou de diminution par rapport au mois précédent.
• Une carte indiquant le domaine d’activité avec le plus grand nombre d’im-
pressions pour le total des pages attribuées à l’utilisateur, y compris le
pourcentage d’augmentation ou de diminution par rapport au mois précé-
dent.
• Une carte indiquant la performance totale de l’entreprise ou aussi appelée
santé pour toutes les pages assignées à l’utilisateur, y compris le pourcen-
tage d’augmentation ou de diminution par rapport au mois précédent.

ESI 168
ANNEXE

• Une carte indiquant la performance d’apprentissage (le pourcentage de pré-


dictions correctes pour les 6 derniers mois) pour toutes les pages assignées
à l’utilisateur, y compris le pourcentage d’augmentation ou de diminution
par rapport au mois [Link] graphique montrant l’évolution des perfor-
mances de l’entreprise au cours des 6 derniers mois (concernant les pages
attribuées)
• Un histogramme montrant la progression des performances d’apprentissage
au cours des 6 derniers mois (concernant les pages assignées).
• Une liste montrant les pages les plus performantes de l’entreprise, d’autres
informations sont également affichées comme (nombre de retours, retours
positifs et taux de rebond du mois dernier).
• Une liste présentant des statistiques sur les plateformes gérées par le sys-
tème.
— Une page présentant la liste de toutes les pages attribuées à l’utilisateur (dans
laquelle il est directeur d’entreprise)
— Lorsque l’utilisateur clique sur l’une des pages, il est dirigé vers une autre page
qui contient des métriques : retour positif (toutes les pages), champ avec la plu-
part des questions, performance des affaires et performance de l’apprentissage.
Suivie par les articles récents
— Lorsque l’on clique sur un post, on est dirigé vers une page où se trouvent des
informations sur le post suivi de ses commentaires
— Chaque commentaire comporte 4 sections : prédiction de champ, saisie ma-
nuelle de champ, prédiction de la polarité et saisie de la polarité)
— L’utilisateur commence à marquer et à classer les commentaires. Et lorsqu’il a
terminé, il clique sur le bouton "enregistrer les modifications" pour enregistrer
sa progression.
— L’utilisateur peut répondre à un commentaire s’il le souhaite en cliquant sur
les trois points et répondre.

Annexe F : Planning prévisionnel du projet

Figure 113 – Planning prévisionnel de notre projet de fin d’études

ESI 169

Vous aimerez peut-être aussi