Vous êtes sur la page 1sur 52

DÉDICACES

N ous dédions ce modeste travail de fin d’études à nos chers parents qui nous ont beaucoup
soutenues moralement dans les moments difficiles durant la formation.
Que Dieu les protège et leurs procure bonne santé et longue vie.

À nos frères qui ont toujours su nous soutenir.


À notre grande famille et à tous nos amis,
À vous tous,
Merci infinement !

Hela & Hadil

FS-SFAX Page i
REMERCIEMENTS

Nous remercions Dieu, le tout puissant, de nous avoir donné la santé et la volonté d’entamer
et de terminer notre projet de fin d’études.

Tout d’abord, ce travail, faut-il l’avouer, n’aurait pu être achevé et voir le jour sans l’aide
et l’encadrement de Monsieur Boulbaba Ben Ammar que nous remercions infiniment pour
l’exceptionnelle qualité de son encadrement, pour sa patience, sa rigueur et sa disponibilité
durant toute la période de notre ouvrage. Nous n’oublierons certainement jamais cette
extraordinaire collaboration.

Nous tenons à remercier Monsieur Ali SALEM qui a bien voulu nous faire l’honneur
de présider le jury. Nous remercions sincèrement Madame Raouia BOUABDALLAH d’avoir
accepté d’être l’examinatrice de ce manuscrit. Nos vifs remerciements s’adressent également à
nos enseignants et à nos amis, pour leur présence chaleureuse et leur encouragement.

Nos profondes reconnaissances vont également à tout le serviable, courageux et attentionné


personnel de notre Faculté des Sciences de Sfax.

FS-SFAX Page ii
TABLE DES MATIÈRES

LISTE DES FIGURES vi

INTRODUCTION GÉNÉRALE vii

1 ÉTUDE PRÉALABLE 2
1.1 I NTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 L’ INTELLIGENCE ARTIFICIELLE ( AI ) . . . . . . . . . . . . . . . . . . . . . . 3
1.3 L’apprentissage automatique . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.1 Apprentissage supervisé . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.2 Apprentissage non-supervisé . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Les différents types de l’apprentissage automatique . . . . . . . . . . . . . . . 5
1.4.1 La régression logistique (Logistic Regression) . . . . . . . . . . . . . 5
1.4.2 Machines à vecteurs de support (SVM) . . . . . . . . . . . . . . . . . 6
1.4.3 L’arbre de décision (Decision tree) . . . . . . . . . . . . . . . . . . . 7
1.4.4 Bayes naïf (Naive Bayes) . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.5 L’algorithme des k plus proches voisins (KNN : K-Nearest Neighbors) 8
1.5 L’A PPRENTISSAGE PROFOND ( DEEP LEARNING ) . . . . . . . . . . . . . . . . 8
1.6 L E T RAITEMENT AUTOMATIQUE DU L ANGAGE NATUREL (TALN) . . . . . 9
1.6.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.6.2 Les grands principes . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.7 L ES O UTILS ET L’ ENVIRONNEMENT DE PROGRAMMATION . . . . . . . . . . 10
1.7.1 P YTHON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.7.2 J UPYTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.7.3 G OOGLE C OLABORATORY . . . . . . . . . . . . . . . . . . . . . . . 11
1.7.4 Les Bibliothèques utilisées . . . . . . . . . . . . . . . . . . . . . . . . 11
1.8 A NALYSE E T S PÉCIFICATION D ES B ESOINS . . . . . . . . . . . . . . . . . . 12
1.8.1 L ES BESOINS FONCTIONNELS . . . . . . . . . . . . . . . . . . . . . 12
1.8.2 L ES BESOINS NON FONCTIONNELS . . . . . . . . . . . . . . . . . . . 12
1.9 C HOIX DE LA MÉTHODE DE S CRUM . . . . . . . . . . . . . . . . . . . . . . 13

FS-SFAX Page iii


TABLE DES MATIÈRES

1.10 C ONCLUSION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2 C ONSTRUCTION DE L’ APPLICATION DE PROFILAGE DES UTILISATEURS


SOCIAUX 14
2.1 I NTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 S PRINT 1 : C OLLECTION DES DONNÉES . . . . . . . . . . . . . . . . . . . . 15
2.3 S PRINT 2 : T RAITEMENT DES DONNÉES . . . . . . . . . . . . . . . . . . . . 16
2.3.1 M ODIFICATION DES CATÉGORIES . . . . . . . . . . . . . . . . . . . 16
2.3.2 P RÉ - TRAITEMENT DE TEXTES ARABES EN P YTHON . . . . . . . . . 18
2.3.2.1 N ETTOYAGE . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.2.2 É LIMINATION DES MOTS VIDES . . . . . . . . . . . . . . . 21
2.3.2.3 N ORMALISATION . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.2.4 S TEMMING . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4 Sprint 3 : Modèles d’Intelligence Artificielle . . . . . . . . . . . . . . . . . . . 25
2.4.1 T ECHNIQUES TRADITIONNELLES . . . . . . . . . . . . . . . . . . . . 26
2.4.1.1 Étape 1 : Transformation des données . . . . . . . . . . . . 28
2.4.1.2 Étape 2 : Division des données . . . . . . . . . . . . . . . . 29
2.4.1.3 Étape 3 : Exploitation des données . . . . . . . . . . . . . . 30
2.4.1.4 Étape 4 : Évaluation et validation des modèles . . . . . . . . 30
2.4.2 Arabert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.4.2.1 La Lecture et la segmentation des textes . . . . . . . . . . . 37
2.4.2.2 Transfert Learning du modéle ArabERT . . . . . . . . . . . 38
2.5 S PRINT 4 : P RÉSENTATION DE L’ APPLICATION RÉALISÉE . . . . . . . . . . . 39
2.5.1 Architecture de l’application Web . . . . . . . . . . . . . . . . . . . . 40
2.5.2 I NTERFACE D ’ ACCUEIL DE L’ APPLICATION . . . . . . . . . . . . . . 40
2.5.3 INTERFACE RÉSULTAT DE L’ APPLICATION . . . . . . . . . . . . . . 41
2.5.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

CONCLUSION ET PERSPECTIVES 43

BIBLIOGRAPHIE 43

FS-SFAX Page iv
LISTE DES FIGURES

1 Choix méthodologique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1 Les composants de l’intelligence artificielle . . . . . . . . . . . . . . . . . . . 4


1.2 Logo de Phyton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3 Logo de Jupyter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4 Logo de colab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5 Chronogramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.1 La base collectée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16


2.2 La base avant la classification . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 La base après la classification . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4 Script python pour la modification des labels . . . . . . . . . . . . . . . . . . . 17
2.5 Camembert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.6 Commentaire avant et après le pré-traitement . . . . . . . . . . . . . . . . . . 19
2.7 Supprimer les chiffres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.8 Supprimer les emojis et la ponctuation . . . . . . . . . . . . . . . . . . . . . . 20
2.9 Supprimer les espaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.10 Supprimer les mots non arabes . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.11 stopwords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.12 Normalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.13 ArabStemmer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.14 Arabert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.15 Processus de réalisation de système de détection des centres d’intérêt . . . . . . 27
2.16 Vectorisation du texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.17 Les matrices de confusion du modèle SVM . . . . . . . . . . . . . . . . . . . 32
2.18 Les matrices de confusion du modèle Logistic Regression . . . . . . . . . . . . 33
2.19 Les matrices de confusion du modèle KNN . . . . . . . . . . . . . . . . . . . 34
2.20 Les matrices de confusion du modèle Decision Tree . . . . . . . . . . . . . . . 35
2.21 Les matrices de confusion du modèle Naive Bayes . . . . . . . . . . . . . . . 36
2.22 Logo d’Arabert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

FS-SFAX Page v
LISTE DES FIGURES

2.23 Image d’un exemple de texte segmenté par + . . . . . . . . . . . . . . . . . . . 38


2.24 Fine tuning du modéle AraBERT : partie d’apprentissage . . . . . . . . . . . . 39
2.25 Architecture de l’api REST . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.26 Interface d’accueil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.27 Interface résultat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

FS-SFAX Page vi
INTRODUCTION GÉNÉRALE

C ONTEXTE G ÉNÉRALE

Cadre du projet

Partout dans le monde, SUNEVIT travaille avec des entreprises de toutes tailles, des
entreprises privées en croissance à certains des plus grands groupes internationaux. En
combinant de vastes connaissances de l’industrie et une expertise considérable dans divers
domaines, SUNEVIT l’équipe offre des informations commerciales et des capacités techniques
inestimables.

Notre approche est toujours pratique et collaborative ,elle permet :

— De fournir une gamme complète de technologies, produits et services informatiques en


demande sur le marché.

— D’opérer dans presque tous les secteurs, avec de nombreux projets achevés dans son
portefeuille.

— D’offrir à ses clients des solutions robustes pour relever leurs défis commerciaux.

Présentation du projet

Problématique

1. L’extraction des données textuelles et leur analyse sont des tâches complexes.
2. L’utilisation d’une approche systématique et cohérente pour le développement de cette
application est nécessaire pour garantir un résultat fiable et efficace.

FS-SFAX Page vii


INTRODUCTION GÉNÉRALE

3. Cette analyse peut être effectuée en utilisant des méthodes de traitement de la langue
naturelle pour identifier les mots clés et les thèmes qui peuvent être liés aux centres
d’intérêt des utilisateurs.

Travail Demandé

L’analyse des centres d’intérêt des utilisateurs sociaux à partir de données textuelles est une
tâche complexe qui implique l’application de méthodes de traitement automatique du langage
naturel (ou NLP) pour extraire des informations à partir de grandes quantités de données
textuelles. Cette analyse peut fournir des informations précieuses pour comprendre les intérêts
des utilisateurs et leur comportement .

Voici quelques étapes pour analyser les intérêts des utilisateurs sociaux sur la base de
données textuelles :

1- Collecte des données : elle se fait à partir des statuts FACEBOOK en arabe

2- Pré-traitement des données : elles sont nettoyées en supprimant les éléments inutiles tels
que les liens, les mentions des utilisateurs, les émotions, les signes de ponctuation et les mots
non arabes. La normalisation du texte (telle que la suppression des mots vides ) peut également
être effectuée pour améliorer la qualité des données.

3- Classification de textes : une classification de textes peut être utilisée pour catégoriser
les données en fonction des centres d’intérêt, tels que la nourriture, les voyages, le sport, etc.
Cette classification peut être réalisée en utilisant des techniques de classification supervisée ou
non supervisée .

4- Visualisation des données : elle peut être utilisée pour présenter les résultats de l’analyse
d’une manière compréhensible et intuitive.

5- Analyse de thèmes : elle sert à identifier les sujets clés abordés dans les données
textuelles. Cette analyse peut être utile pour comprendre les tendances émergentes et les centres
d’intérêt dominants des utilisateurs.

FS-SFAX Page viii


INTRODUCTION GÉNÉRALE

Méthodologie adoptée

F IGURE 1 – Choix méthodologique

Plusieurs cycles de développement traditionnel ( cycle en V, cascade, etc.) nécessitent une


planification complète du projet mais la méthodologie de développement Agile Scrum offre le
potentiel de planifier des objectifs à court terme. Par conséquent, le projet est divisé en plusieurs
petites parties. Une fragmentation qui accélère la réalisation des tâches car chaque membre de
l’équipe ayant une tâche à accomplir sait qu’il doit la faire avant une certaine date limite fixée
d’avance. Dans la méthode de développement agile, il n’est pas nécessaire de tout spécifier dès
le début du projet et de suivre un cadre très rigide et non flexible. Ce sont spécifiquement ces
raisons qui nous ont poussées à choisir la méthode Agile Scrum. La Figure ci-dessus récapitule
le processus du modèle Scrum qui consiste à découper le projet en série d’itérations de deux à
quatre semaines appelées Sprint. De cette manière, le problème sera décomposé en un ensemble
de sous problèmes afin de diminuer sa complexité. Nous avons adopté les pratiques de la
méthodologie Scrum en termes d’organisation et de planification de réunions pour garantir une
meilleure productivité face aux exigences incrémentées et itératives du client sans définition au
préalable claire des fonctionnalités de chaque Sprint.

FS-SFAX Page 1
Chapitre

1
ÉTUDE PRÉALABLE

Sommaire
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 L’intelligence artificielle (ai) . . . . . . . . . . . . . . . . 3
1.3 L’apprentissage automatique . . . . . . . . . . . . . . . . . . . . 4
1.3.1 Apprentissage supervisé . . . . . . . . . . . . . . . . . . . . . . 4
1.3.2 Apprentissage non-supervisé . . . . . . . . . . . . . . . . . . . . 5
1.4 Les différents types de l’apprentissage automatique . . . . . 5
1.4.1 La régression logistique (Logistic Regression) . . . . . . . . . . 5
1.4.2 Machines à vecteurs de support (SVM) . . . . . . . . . . . . . 6
1.4.3 L’arbre de décision (Decision tree) . . . . . . . . . . . . . . . . 7
1.4.4 Bayes naïf (Naive Bayes) . . . . . . . . . . . . . . . . . . . . . 7
1.4.5 L’algorithme des k plus proches voisins (KNN : K-Nearest
Neighbors) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 l’Apprentissage profond (deep learning) . . . . . . . . . 8
1.6 Le Traitement Automatique du Langage Naturel
(TALN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.6.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.6.2 Les grands principes . . . . . . . . . . . . . . . . . . . . . . . 9
1.7 Les Outils et l’environnement de programmation . . . 10
1.7.1 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.7.2 Jupyter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.7.3 Google Colaboratory . . . . . . . . . . . . . . . . . . . . . 11
1.7.4 Les Bibliothèques utilisées . . . . . . . . . . . . . . . . . . . . . 11
1.8 Analyse Et Spécification Des Besoins . . . . . . . . . . . 12
1.8.1 Les besoins fonctionnels . . . . . . . . . . . . . . . . . . . 12
1.8.2 Les besoins non fonctionnels . . . . . . . . . . . . . . . . 12
1.9 Choix de la méthode de Scrum . . . . . . . . . . . . . . . . 13
1.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

FS-SFAX Page 2
ÉTUDE PRÉALABLE

1.1 I NTRODUCTION

L’étude des principes théoriques qui se rattachent à notre projet et aux différents outils
dont nous disposons représente une phase décisive et déterminante menant à la réalisation des
objectifs de notre projet. Dans ce chapitre, nous définissons les principaux concepts de notre
travail, les différents outils utilisés puis nous développons une analyse des besoins.

1.2 L’ INTELLIGENCE ARTIFICIELLE ( AI )

C’est un terme utilisé pour désigner des applications capables d’effectuer des tâches
complexes autrefois réservées aux humains, comme la communication en ligne avec les clients
ou le jeu d’échecs. Il est parfois confondu avec d’autres domaines tels que le Machine Learning
et le Deep Learning. Le Machine Learning se concentre spécifiquement sur la création de
systèmes capables d’apprendre et d’améliorer leurs performances en fonction des données qu’ils
traitent. Il est important de noter que l’intelligence artificielle ne se limite pas uniquement au
Machine Learning et pour mieux l’exploiter, de nombreuses entreprises investissent dans des
équipes de Data Science.

Cette dernière est un domaine interdisciplinaire qui utilise des méthodes scientifiques pour
analyser et valoriser les données collectées à partir de différentes sources. Elle combine des
compétences en statistiques, en informatique et en connaissances commerciales pour tirer des
informations utiles des données.

FS-SFAX Page 3
ÉTUDE PRÉALABLE

F IGURE 1.1 – Les composants de l’intelligence artificielle

1.3 L’apprentissage automatique

Une des principales disciplines de l’intelligence artificielle est le Machine Learning, aussi
nommé l’apprentissage automatique. Il s’agit d’exploiter des données brutes, de les transformer
en connaissances et cela se fait de manière automatique afin de prendre de meilleures décisions
d’affaires. L’apprentissage automatique permet ainsi d’utiliser un modèle d’algorithmes
pour piloter des stratégies d’affaires (data-driven strategy).Il existe deux principaux types
d’apprentissages.

1.3.1 Apprentissage supervisé

L’apprentissage supervisé (en anglais : Supervised Learning) est le paradigme


d’apprentissage le plus populaire en Machine Learning et en Deep Learning. Comme son
nom l’indique, cela consiste à superviser l’apprentissage de la machine en lui montrant des
exemples (des données) de la tâche qu’elle doit réaliser. Les applications sont nombreuses :
reconnaissance vocale, vision par ordinateur, régressions, classification, etc. La grande majorité
des problèmes de Machine Learning utilise l’apprentissage supervisé. Il est donc essentiel de
bien comprendre son fonctionnement .

FS-SFAX Page 4
ÉTUDE PRÉALABLE

Comment fonctionne l’apprentissage supervisé ?

Avec l’apprentissage supervisé, la machine peut apprendre à accomplir une tâche spécifique
en étudiant des données d’entraînement. Par exemple, elle peut apprendre à reconnaître une
photo de chien après avoir été exposée à un grand nombre de données d’images de ce dernier.
De même, elle peut apprendre à traduire du français au chinois en utilisant un ensemble de
données comprenant des exemples de traductions français-chinois.

1.3.2 Apprentissage non-supervisé

En Machine Learning, la technique d’apprentissage non supervisé (ou unsupervised


learning) consiste à entraîner des modèles, sans réaliser d’étiquetage manuel ou automatique
des données au préalable. Les algorithmes regroupent les données en fonction de leur similitude,
sans aucune intervention humaine.

Comment fonctionne l’apprentissage non supervisé ?

Celui-ci détecte des données ou des individus présentant des caractéristiques ou des
structures communes. Typiquement, l’apprentissage non supervisé peut servir à développer un
moteur de recommandation, conçu pour proposer à un visiteur des produits en fonction des
préférences des clients partageant les mêmes caractéristiques.

Ce type d’apprentissage contient également deux tâches principales : clustering et


association.

1.4 Les différents types de l’apprentissage automatique

1.4.1 La régression logistique (Logistic Regression)

C’ est un algorithme d’apprentissage automatique utilisé pour prédire des variables binaires,
telles que oui/non ou vrai/faux, en fonction d’un ensemble de variables d’entrée. La fonction
mathématique appelée fonction logistique est utilisée pour calculer la probabilité qu’un exemple
de données appartienne à l’une ou l’autre des classes possibles. Le modèle est entraîné sur un

FS-SFAX Page 5
ÉTUDE PRÉALABLE

ensemble de données étiquetées, où chaque exemple d’entraînement comprend une entrée et


une sortie attendue.

La régression logistique peut être utilisée pour résoudre des problèmes de traitement de
textes, tels que la classification de documents. Dans ce cas, chaque document est représenté
par un vecteur de caractéristiques, telles que la fréquence des mots ou la présence de
certaines expressions, qui sont utilisées comme entrée pour ce modèle conduisant ainsi à une
catégorisation telle que "sport", "culture", "technologie", etc.

1.4.2 Machines à vecteurs de support (SVM)

C’est un algorithme d’apprentissage supervisé utilisé pour la classification ou la régression.


Son objectif principal est de trouver la meilleure séparation (ou hyperplan) entre deux classes
dans un espace multidimensionnel.

Son principe est de transformer les données d’entrée dans un espace de caractéristiques de
plus grande dimension, où il est plus facile de séparer les classes. L’algorithme cherche ensuite
l’hyperplan qui sépare les classes avec la marge maximale possible, c’est-à-dire la distance
maximale entre l’hyperplan et les points les plus proches de chaque classe (appelés vecteurs de
support).

En utilisant cette séparation optimale, SVM est capable de classer de nouveaux exemples en
les projetant dans l’espace de caractéristiques et en les plaçant de chaque côté de l’hyperplan.

Ce modèle est efficace pour traiter des ensembles de données complexes avec de nombreuses
variables et peut servir pour la classification binaire ou multi-classe. Il est également résistant
aux données aberrantes et peut être employé avec différents noyaux (linéaire, polynomial,
radial, etc) pour traiter différents types de données.

En résumé, c’est un algorithme d’apprentissage supervisé puissant et flexible qui est


largement utilisé dans de nombreux domaines tels que la reconnaissance de textes et d’images,
la biologie, la finance, etc.

FS-SFAX Page 6
ÉTUDE PRÉALABLE

1.4.3 L’arbre de décision (Decision tree)

C’est un algorithme qui permet de résoudre des problèmes de classification et de régression.


Il crée un arbre en utilisant des règles pour prendre des décisions successives sur les données
d’entrée jusqu’à ce qu’une décision finale soit prise.

Celui-ci est entraîné sur un ensemble de données étiquetées pour apprendre à diviser les
données en fonction des caractéristiques les plus importantes. Une fois qu’il est construit, il
peut être utilisé pour prédire les résultats pour de nouveaux exemples de données en traversant
l’arbre de décision à partir de la racine jusqu’à une feuille correspondante. Ce dernier est utilisé
dans divers domaines en raison de sa simplicité et de sa facilité d’interprétation, mais un arbre
trop profond peut conduire à un sur-apprentissage qui réduit la précision des prédictions.

1.4.4 Bayes naïf (Naive Bayes)

C’est un algorithme d’apprentissage supervisé qui est souvent utilisé pour la classification
de textes. Il est basé sur le théorème de Bayes et suppose que toutes les caractéristiques d’un
document sont indépendantes les unes des autres.

En pratique, le modèle de Bayes naïf calcule la probabilité qu’un document appartienne à


une classe donnée en utilisant la fréquence des termes dans ce dernier.

Ce modèle est souvent utilisé en combinaison avec une méthode de prétraitement de


textes telle que la suppression des stop-words et la lemmatisation. Cela permet de réduire la
dimensionnalité des données et d’améliorer les performances du modèle.

En résumé, le modèle de Bayes naïf est simple à mettre en œuvre et peut fournir des résultats
précis avec un petit ensemble de données.

FS-SFAX Page 7
ÉTUDE PRÉALABLE

1.4.5 L’algorithme des k plus proches voisins (KNN : K-Nearest

Neighbors)

C’est un algorithme d’apprentissage supervisé utilisé pour la classification et la régression.


Il est couramment employé dans des applications telles que la recommandation de produits, la
classification de textes, la reconnaissance de visages, etc.

Le modèle KNN fonctionne en calculant la distance entre un échantillon de test et tous les
échantillons d’entraînement, puis en sélectionnant les k échantillons d’entraînement les plus
proches (les plus similaires) à l’échantillon de test. Il attribue ensuite, à ce dernier la classe la
plus fréquente parmi les k échantillons les plus proches.

Le choix de la valeur de k est un paramètre important dans le modèle KNN, car une valeur
k trop petite peut conduire à une sensibilité excessive aux points aberrants (outliers), tandis
qu’une valeur k trop grande peut conduire à une sous-représentation des variations locales.

En résumé, le modèle KNN est un algorithme simple et facile à comprendre. Il est


particulièrement utile pour les ensembles de données de petite à moyenne taille et peut fournir
des résultats précis avec une bonne sélection des paramètres.

1.5 L’A PPRENTISSAGE PROFOND ( DEEP LEARNING )

C’est une sous-catégorie de l’apprentissage automatique adapté particulièrement aux tâches


complexes. C’est aussi une combinaison de méthodes d’apprentissage automatique de modèles
de données qui tente de modéliser avec un haut niveau d’abstraction des données grâce à
des architectures. Le système est composé de plusieurs couches de réseaux de neurones,
inspiré du cerveau et du système nerveux humain. Cette approche est capable de travailler à
partir de données non structurées en identifiant elle-même les caractéristiques discriminantes
des données sans aucune intervention du développeur. L’apprentissage profond est utilisé
dans plusieurs domaines comme la reconnaissance de l’écriture manuscrite, la reconnaissance
d’images et dans les défis de prévision comme le prix, le nombre ou le volume.

FS-SFAX Page 8
ÉTUDE PRÉALABLE

1.6 L E T RAITEMENT AUTOMATIQUE DU L ANGAGE

N ATUREL (TALN)

1.6.1 Définition

Le Traitement Automatique du Langage Naturel (TALN) ou Natural Language Processing


(NLP) en anglais est un domaine de recherche actif en science des données. Il combine
des techniques de Machine Learning et de linguistique pour extraire des informations et une
signification à partir d’un contenu textuel.

Le TALN trouve de nombreuses applications dans la vie quotidienne, telles que la traduction
de textes, le correcteur orthographique, la synthèse vocale, la classification de textes, l’analyse
d’opinion/sentiment, l’extraction d’entités nommées, etc.

Bien que la plupart des ressources disponibles soient en anglais et en français , il existe
également des outils en arabe pour accomplir ces tâches.

1.6.2 Les grands principes

Le TALN est généralement composé de deux à trois grandes étapes :

1- Le pré-traitement : Il vise à standardiser le texte pour faciliter son utilisation.

2- La représentation du texte comme un vecteur : Elle consiste à représenter le texte


sous forme de vecteur en utilisant des techniques de sac de mots (Bag of Words) ou de
Term Frequency-Inverse Document Frequency (Tf-IdF). Nous pouvons également apprendre
des représentations vectorielles (embedding) par apprentissage profond.

3- La classification ou la recherche de la phrase la plus similaire : Elle consiste à classer


ou à trouver la phrase la plus similaire à une requête donnée en utilisant des techniques de
Machine Learning telles que le modèle de Bayes naïf, le KNN, le SVM, etc.

FS-SFAX Page 9
ÉTUDE PRÉALABLE

1.7 L ES O UTILS ET L’ ENVIRONNEMENT DE

PROGRAMMATION

1.7.1 P YTHON

Python est un langage de programmation de haut niveau, interprété et orienté objet. Il a été
créé dans les années 1990 par Guido van Rossum. Python est connu pour sa syntaxe simple et
facile à apprendre, ainsi que pour sa grande polyvalence. Il peut être utilisé pour développer
une grande variété d’applications, telles que des applications Web, des logiciels de bureau,
des scripts système, des jeux et bien d’autres choses encore. Python est également utilisé pour
l’analyse de données, l’apprentissage automatique et l’intelligence artificielle.

F IGURE 1.2 – Logo de Phyton

1.7.2 J UPYTER

Jupyter est une application Web open source qui permet de créer et de partager des
documents dynamiques contenant : du code en direct, des équations, des visualisations de
données et du texte. Le nom "Jupyter" est un acronyme des langages de programmation pris
en charge : Julia, Python et R. Jupyter ont été conçu pour faciliter la science des données et
le développement de logiciels en permettant aux utilisateurs de travailler avec des notebooks
interactifs dans leur navigateur web.

FS-SFAX Page 10
ÉTUDE PRÉALABLE

F IGURE 1.3 – Logo de Jupyter

1.7.3 G OOGLE C OLABORATORY

Colab est en fait la version abrégée de "Google Colaboratory" qui est une plateforme de
cloud computing et un environnement de développement en ligne pour Python. Il permet aux
utilisateurs d’exécuter du code Python dans un environnement gratuit et partagé, ce qui peut
être très utile pour les projets de Data Science, de Machine Learning ou de développement de
logiciels. Les utilisateurs peuvent travailler en temps réel sur des notebooks Jupyter, collaborer
avec d’autres utilisateurs à distance et accéder à des ressources informatiques puissantes sans
avoir à installer quoi que ce soit sur leur propre ordinateur.

F IGURE 1.4 – Logo de colab

1.7.4 Les Bibliothèques utilisées

— NumPy : est une bibliothèque open-source Python conçue pour effectuer des calculs
numériques sur des tableaux multidimensionnels et des matrices.

— Pandas : est une bibliothèque open-source Python conçue pour la manipulation et


l’analyse de données structurées.

— re (regular expression) : est une bibliothèque open-source Python permettant la


manipulation de chaînes de caractères à travers des expressions régulières.

FS-SFAX Page 11
ÉTUDE PRÉALABLE

— Sklearn (scikit-learn) : est une bibliothèque open-source Python conçue pour réaliser
des tâches de machine learning telles que la classification, la régression et le clustering.

— Nltk (Natural Language Toolkit) : est une bibliothèque open-source Python utilisée
pour le traitement automatique du langage naturel (NLP) et la création de modèles de
langage.

— AraBERT : est une bibliothèque open-source Python conçue pour le traitement


automatique de la langue arabe, basée sur la modélisation de langage avec ’Transformer
et Fine-Tuning ’sur des tâches spécifiques.

— Seaborn : est une bibliothèque open-source Python basée sur Matplotlib, utilisée pour la
visualisation de données statistiques et la création de graphiques avancés.

1.8 A NALYSE E T S PÉCIFICATION D ES B ESOINS

1.8.1 L ES BESOINS FONCTIONNELS

Les besoins fonctionnels décrivent les fonctionnalités qui doivent être présentes pour
l’acteur comme :

— Écrire un commentaire.

— Recevoir une prédiction sur le contenu de la publication en retour.

1.8.2 L ES BESOINS NON FONCTIONNELS

Pour garantir l’assouvissement des utilisateurs de notre application, un ensemble


d’exigences non fonctionnelles doit être pris en compte telles que :

— La facilité et la pratique : L’utilisateur est capable de se familiariser rapidement avec


l’application.

— La fiabilité : Le système doit répondre correctement aux attentes de l’utilisateur.

FS-SFAX Page 12
ÉTUDE PRÉALABLE

1.9 C HOIX DE LA MÉTHODE DE S CRUM

Au cours de la création de notre projet, nous avons suivi le planning ci-dessous :

F IGURE 1.5 – Chronogramme

1.10 C ONCLUSION

Dans ce chapitre, nous avons donné une définition de l’intelligence artificielle et précisé
l’environnement matériel et logiciel utilisé. Nous avons aussi réalisé une analyse et une
spécification des besoins et détaillé la méthode de Scrum.

FS-SFAX Page 13
Chapitre

2
C ONSTRUCTION DE L’ APPLICATION
DE PROFILAGE DES UTILISATEURS
SOCIAUX

Sommaire
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Sprint 1 : Collection des données . . . . . . . . . . . . . 15
2.3 Sprint 2 : Traitement des données . . . . . . . . . . . . . 16
2.3.1 Modification des catégories . . . . . . . . . . . . . . . . . 16
2.3.2 Pré-traitement de textes arabes en Python . . . . . . 18
2.4 Sprint 3 : Modèles d’Intelligence Artificielle . . . . . . . . . . 25
2.4.1 Techniques traditionnelles . . . . . . . . . . . . . . . . . 26
2.4.2 Arabert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.5 Sprint 4 : Présentation de l’application réalisée . . . 39
2.5.1 Architecture de l’application Web . . . . . . . . . . . . . . . . . 40
2.5.2 Interface d’accueil de l’application . . . . . . . . . . . . 40
2.5.3 interface résultat de l’application . . . . . . . . . . . 41
2.5.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

FS-SFAX Page 14
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

2.1 I NTRODUCTION

L’objectif principal de ce chapitre est de concevoir un modèle d’analyse des centres d’intérêt
pour le texte en utilisant les techniques de traitement du langage naturel ,en limitant la
classification à des catégories telles que le sport, la culture, la santé, etc.

Nous allons également détailler chaque phase du processus, y compris celle de la préparation
des données et de l’extraction des fonctionnalités.

2.2 S PRINT 1 : C OLLECTION DES DONNÉES

Dans notre projet qui utilise l’intelligence artificielle, la première étape consiste à collecter
des données pour entraîner notre modèle. Elles sont indisponsables pour l’apprentissage
automatique et la prédiction de classes. Il est important de collecter autant de données que
possible à partir des statuts arabes dans Facebook. Cependant, pour garantir leur qualité, il est
essentiel que leurs sources soient fiables et correctement structurées.

En résumé, les données sont le carburant de l’apprentissage automatique et leur qualité est
cruciale pour la performance de notre modèle.

Dans notre cas, la première chose que nous avons faite est de collecter les données d’une
façon manuelle puisque dans Facebook il est un peu difficile de le faire automatiquement. Nous
en avons obtenues une quantité assez importante de taille (1799 lignes) à partir des profils et
des pages tels que ’Hannibal’ , ’ ’, ’Universal Library ’, etc...
. Puis nous avons attribué à chaque donnée une classe qui lui appartient comme la montre la
figure 2.6

FS-SFAX Page 15
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

F IGURE 2.1 – La base collectée

2.3 S PRINT 2 : T RAITEMENT DES DONNÉES

2.3.1 M ODIFICATION DES CATÉGORIES

Nous avons remarqué une large diversification des catégories (labels). Nous avons pensé à
les regrouper en 10 classes :

1. Sport
2. Shopping
3. Nourriture
4. Mode de vie
5. Bien-être
6. Loisir
7. Événement
8. Industrie
9. Culture
10. Voyage

Voici les deux figures ci-dessous de la base avant et après la classification :

FS-SFAX Page 16
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

F IGURE 2.3 – La base après la


F IGURE 2.2 – La base avant la classification classification

Pour obtenir ce résultat , nous avons utilisé la méthode ’ REPLACE ()’ (voir figure 2.4).

F IGURE 2.4 – Script python pour la modification des labels

Après un tel traitement, nous avons gardé les catégories présentées dans la figure suivante.
Ce "Camembert" représente les pourcentages respectifs des classes retenues.

F IGURE 2.5 – Camembert

FS-SFAX Page 17
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

2.3.2 P RÉ - TRAITEMENT DE TEXTES ARABES EN P YTHON

En effet, le pré-traitement des données est une étape essentielle dans la mise en place
d’algorithmes de Machine Learning. Il permet de nettoyer, transformer et préparer les données
avant de les utiliser pour entraîner un modèle.

2.3.2.1 N ETTOYAGE

— Suppression des chiffres

— Suppression des mots non arabes

— Suppression de la ponctuation

— Suppression des emojis

— Suppression des espaces

"Cette figure représente une annotation effectuée lors du pré-traitement."

FS-SFAX Page 18
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

F IGURE 2.6 – Commentaire avant et après le pré-traitement

— S UPPRESSION DES CHIFFRES

Supprimer tous les chiffres, tout ce qui est supprimé sera remplacé par un espace ’ ’ (voir figure
2.7).

FS-SFAX Page 19
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

F IGURE 2.7 – Supprimer les chiffres

— S UPPRESSION DES EMOJIS

Supprimer tous les emojis, tout ce qui est supprimé sera remplacé par un espace ’ ’ (voir figure
2.8).

F IGURE 2.8 – Supprimer les emojis et la ponctuation

— S UPPRESSION DES ESPACES

Supprimer tous les espaces qui ne sont pas nécessaires (voir figure 2.9).

FS-SFAX Page 20
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

F IGURE 2.9 – Supprimer les espaces

— S UPPRESSION DES MOTS NON ARABES

La suppression des mots non arabes permet d’éliminer ceux qui ne font pas partie de l’alphabet,
afin de faciliter l’analyse ou la recherche de textes dans cette langue (voir figure 2.10).

F IGURE 2.10 – Supprimer les mots non arabes

2.3.2.2 É LIMINATION DES MOTS VIDES

Lorsqu’un texte est volumineux et contient de nombreux mots, il est naturel que ces
derniers n’aient pas tous la même importance. Certains qui se répètent fréquemment peuvent
être considérés comme du bruit et ne portent pas de sens par leur seule présence. Il est donc
préférable de supprimer ces mots vides, également appelés "Stop-Words", pour améliorer la
qualité de l’analyse du texte.

FS-SFAX Page 21
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

En arabe, les lettres, outils et pronoms tels que , , , sont souvent utilisés
et peuvent être considérés comme bruyants dans le texte. Il est donc recommandé de les laisser
de côté. Cependant, concentrons-nous d’abord sur le cas général en nous focalisant uniquement
sur les lettres et les outils. Pour cela, nous pouvons utiliser la boîte à outils de traitement du
langage naturel (NLTK), qui fournit un ensemble général de mots vides pour un certain nombre
de langues, dont l’arabe et l’anglais (voir figure 2.11).

F IGURE 2.11 – stopwords

2.3.2.3 N ORMALISATION

Cette phase établit des règles et des conventions pour une écriture uniforme et cohérente de
la langue arabe. Cela inclut la standardisation de l’orthographe, des diacritiques et des formes de
caractères afin de faciliter la communication et la compréhension dans les différents contextes
où l’arabe est utilisé. La normalisation permet d’assurer une harmonie et une clarté dans la
langue. Elle facilite également la création de ressources linguistiques et la mise en place de
technologies de traitement automatique de cette langue (voir figure 2.12).

F IGURE 2.12 – Normalisation

FS-SFAX Page 22
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

2.3.2.4 S TEMMING

Le Stemming (ou racinisation) est une technique de traitement automatique du langage


naturel qui consiste à réduire les mots à leur racine ou à leur forme canonique. Cela peut se
faire en utilisant des algorithmes basés sur la morphologie de la langue arabe.

Chaque mot est formé à partir d’une racine, à laquelle nous ajoutons des affixes pour former
différents mots. Prenons par exemple, la racine (ktb) elle peut être utilisée pour former
les mots (kateb, écrivain), (kitab, livre), (kataba, il a écrit), etc.

Pour effectuer le Stemming en arabe, nous pouvons nous servir des algorithmes basés sur
la segmentation morphologique, qui permettent d’extraire la racine d’un mot en analysant sa
structure.

Cette méthode peut être utile dans de nombreux domaines tels que : la recherche
d’informations, l’analyse de sentiments, la classification de textes, la traduction automatique
et d’autres applications de traitement automatique du langage naturel.

Dans notre projet, pour la classification de textes nous avons utilisé deux types de
Stemming : Arabert et ArabStemmer.

ArabStemmer C’est une bibliothèque open source utilisée pour le traitement du langage
naturel arabe, qui fournit des fonctionnalités de radicalisation de cette langue. Elle implémente
l’algorithme de radical arabe, permettant de réduire les mots à leur racine ou à leur forme de
base en supprimant les préfixes et les suffixes. Les algorithmes de recherche de radicaux utilisés
dans Arabstemmer sont basés sur des règles grammaticales de l’arabe.

Arabstemmer est conçu pour être utilisé avec la bibliothèque de traitement du langage
naturel NLTK (Natural Language Toolkit) en Python. Cela permet aux développeurs de l’utiliser
pour les racines arabes dans leurs projets de traitement de textes.

Nous pouvons normaliser les mots arabes en les réduisant à leur forme de base, ce qui
peut améliorer la précision des modèles de traitement de textes pour des tâches telles que la
classification (voir figure 2.13).

FS-SFAX Page 23
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

F IGURE 2.13 – ArabStemmer

Arabert C’est un modèle de traitement du langage naturel pré-formé spécifiquement pour


l’arabe, basé sur Google Transformer. Il est formé sur un grand ensemble de données de langues
arabes et peut être utilisé pour plusieurs tâches telles que la classification et la génération de
textes ainsi que l’extraction d’entités nommées.

Concernant le Stemming dans Arabert, il n’y a pas de fonction dédiée à cette tâche.
Cependant, il prend en charge la tokenisation arabe qui divise le texte en mots individuels ou
"jetons". Cela signifie que les mots arabes sont normalisés et prêts à être utilisés par les modèles
de traitement de textes.

De plus, Arabert prend en charge la dérivation de mots, une technique similaire à Stemming
qui consiste à les réduire à leur forme racine ou de base. Cela permet au modèle de gérer les
variantes de mots et d’améliorer sa précision dans les tâches de traitement de textes.

En résumé, bien qu’Arabert n’ait pas de fonction Stemming dédiée, il prend en charge la
tokenisation et la dérivation des mots, ce qui aide à normaliser ceux qui sont en arabes pour une
utilisation efficace dans les modèles de traitement de textes (voir figure 2.14).

FS-SFAX Page 24
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

F IGURE 2.14 – Arabert

Arabert et ArabStemmer sont deux outils de traitement automatique du langage naturel pour
la langue arabe, mais ils utilisent des approches différentes pour le traitement des mots.

Arabert est un modèle de traitement de langage naturel basé sur l’apprentissage en


profondeur (Deep Learning), en particulier sur l’architecture de Transformer. Il est capable
de comprendre le contexte des mots dans une phrase ou un document.

D’un autre côté, ArabStemmer est un outil de Stemming (ou racinisation) pour la langue
arabe. Il utilise des algorithmes basés sur la segmentation morphologique pour extraire la racine
des mots et les réduire à leur forme canonique. Il est aussi utile pour regrouper les variantes d’un
même mot et faciliter le traitement de grandes quantités de textes arabes.

En résumé, Arabert est utilisé pour des tâches de traitement de langage naturel plus
complexes, tandis qu’ArabStemmer est employé pour la racinisation et la simplification des
mots arabes.

2.4 Sprint 3 : Modèles d’Intelligence Artificielle

Nous allons présenter une description générale de notre système de classification, en mettant
en évidence son aspect conceptuel. Nous allons également détailler chaque phase du processus
de classification en citant les principaux algorithmes et techniques utilisés.

FS-SFAX Page 25
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

2.4.1 T ECHNIQUES TRADITIONNELLES

La figure 2.15 décrit comment l’apprentissage automatique est utilisé pour identifier les
centres d’intérêt des utilisateurs, en suivant un ensemble de décisions stratégiques prises lors de
la conception de notre code Python.

FS-SFAX Page 26
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

F IGURE 2.15 – Processus de réalisation de système de détection des centres d’intérêt

FS-SFAX Page 27
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

2.4.1.1 Étape 1 : Transformation des données

Une fois que nous avons extrait les informations pertinentes, il est essentiel de passer à
la phase de Transformation pour pouvoir utiliser des algorithmes de Machine Learning. Les
machines ne peuvent pas comprendre directement les caractères et les mots présents dans
les données textuelles, c’est pourquoi nous devons les représenter sous forme de vecteurs
numériques afin qu’elles puissent être interprétées par la machine. Cette étape de transformation
est donc cruciale pour pouvoir utiliser efficacement les données textuelles dans le cadre d’un
modèle de Machine Learning.

Il existe en effet de nombreuses techniques pour la vectorisation de données textuelles.


Chacune a ses avantages et ses inconvénients en fonction du contexte d’utilisation et des
objectifs de l’analyse.

Voici une des méthodes que nous avons choisies :

. Tf-idf-Vectorizer : est un outil largement utilisé en traitement de textes dans le domaine


du Machine Learning et du NLP (Natural Language Processing). Il permet de convertir un
texte brut en une représentation numérique utilisable par des algorithmes de classification, de
clustering, de régression, etc.

TF-IDF (Term Frequency-Inverse Document Frequency) est une mesure statistique utilisée
pour évaluer l’importance d’un mot dans un document par rapport à un corpus de documents et
le TfidfVectorizer calcule cette mesure.

TF : mesure le nombre de fois qu’un mot apparaît dans un document et plus il apparaît plus
il est considéré comme important.

IDF : est l’inverse de la fréquence dans les documents (IDF). Il mesure le degré
d’importance du mot dans son corpus de documents. Celui-ci peut être plus ou moins important.

Le TfidfVectorizer prend en entrée une liste de documents et crée une matrice creuse où
chaque ligne représente un document et chaque colonne représente un mot unique.

FS-SFAX Page 28
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

Les valeurs dans la matrice sont les scores TF-IDF pour chaque mot dans chaque document
(voir figure 2.16). Les documents qui ont des mots en commun recevront des scores similaires
à ces mots, ce qui permettra d’identifier des similarités et des différences entre les documents.

F IGURE 2.16 – Vectorisation du texte

2.4.1.2 Étape 2 : Division des données

Lors de la création d’un modèle d’apprentissage automatique, il est important de diviser les
données disponibles en deux ensembles distincts : un ensemble pour l’entraînement et un autre
pour l’évaluation ou les tests.

L’ensemble d’entraînement est utilisé pour former le modèle, en ajustant les paramètres et
les poids à l’aide d’algorithmes d’apprentissage. L’objectif est de créer un modèle capable de
prédire les sorties attendues pour de nouvelles données d’entrée.

L’ensemble de test, quant à lui, est utilisé pour évaluer la performance du modèle après
l’entraînement. Les données de test ne sont pas utilisées pour le former, ce qui permet de
mesurer sa précision et sa fiabilité sur des données inconnues.

Nous répartissons nos données comme suit : 80 % pour les données utilisées pour
l’apprentissage et 20 % pour les données de test.

FS-SFAX Page 29
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

2.4.1.3 Étape 3 : Exploitation des données

C’est une étape cruciale dans la création d’un projet d’intelligence artificielle qui est
souvent appréciée par les Data Scientists. Elle consiste à choisir, paramétrer et tester différents
algorithmes de Machine Learning afin de valoriser les données et d’entraîner les modèles.

Pour cela, il est important de bien définir les besoins et de choisir le bon algorithme en
fonction de la problématique. Dans le domaine du Machine Learning, il existe de nombreux
algorithmes tels que SVM, KNN, XGBoost, Adaboost, etc.

En fonction de notre problématique, nous avons choisi de travailler avec SVM, Logistic
Regression, KNN, L’arbre de décision et Naive Bayes.

2.4.1.4 Étape 4 : Évaluation et validation des modèles

L’évaluation et la validation d’un modèle de Machine Learning sont des étapes essentielles
pour s’assurer que le modèle apprenti est capable de prédire correctement même sur de
nouvelles données.

Cette étape consiste à mesurer les performances du modèle en utilisant des métriques
spécifiques.

Il existe plusieurs métriques pour évaluer la performance d’un modèle de Machine Learning,
en fonction du type de problème et des objectifs de la tâche.

Dans notre cas, nous avons choisi l’utlisation des métriques les plus fréquentes.

. Accuracy : mesure la proportion de prédictions correctes par rapport à l’ensemble des


prédictions effectuées par le modèle.

T P +T N (2.1)
Accuracy = T P +T N +F P +F N

. Precision : mesure la proportion de vrais positifs parmi toutes les prédictions positives
effectuées par le modèle.
TP (2.2)
P recision = T P +F P

FS-SFAX Page 30
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

. Recall : mesure la proportion de vrais positifs parmi toutes les occurrences réelles de la classe
positive dans les données.
TP (2.3)
Recall = T P +F N

. F1Score : une mesure combinée de la Precision et du Recall qui prend en compte à la fois les
vrais positifs et les faux positifs.

P recision+Recall (2.4)
F 1Score = 2 ∗ P recision+Recall

Dans ce qui suit, nous présentons les résultats de différents modèles utilisés dans notre
travail.

Résultats de l’algorithme SVM :

Le tableau 2.1 présente les résultats des métriques choisies de la classification à partir du
modèle SVM.

Stemming Accuracy Precision Recall F1-score

Arabert 0,9027 0,9204 0,8900 0,9014


Texte
Arabstemmer 0,8916 0,9107 0,8776 0,8883

TABLE 2.1 – Les mesures de performances du modèle SVM

La figure 2.17 présente une comparaison entre les matrices de confusion correspondantes
respectivement aux résultats de prédiction après un traitement par Arabert et Arbstremmer.

FS-SFAX Page 31
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

(a) La matrice de confusion Arabert (b) La matrice de confusion Arabstemmer

F IGURE 2.17 – Les matrices de confusion du modèle SVM

Résultats de l’algorithme LogisticRegression :

Le tableau 2.2 présente les résultats des métriques choisies de la classification à partir du
modèle LogisticRegression .

Stemming Accuracy Precision Recall F1-score

Arabert 0,8666 0,8961 0,8490 0,8627


Texte
Arabstemmer 0,8777 0,9073 0,8549 0,8703

TABLE 2.2 – Les mesures de performances du modèle LogisticRegression

La figure 2.18 présente une comparaison entre les matrices de confusion correspondantes
respectivement aux résultats de prédiction après un traitement par Arabert et Arbstremmer.

FS-SFAX Page 32
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

(a) La matrice de confusion Arabert (b) La matrice de confusion Arabstemmer

F IGURE 2.18 – Les matrices de confusion du modèle Logistic Regression

Résultats de l’algorithme KNN :

Le tableau 2.3 présente les résultats des métriques choisies de la classification à partir du
modèle KNN.

Stemming Accuracy Precision Recall F1-score

Arabert 0,8638 0,8616 0,8518 0,8507


Texte
Arabstemmer 0,8555 0,9107 0,8776 0,8883

TABLE 2.3 – Les mesures de performances du modèle KNN

La figure 2.19 présente une comparaison entre les matrices de confusion correspondantes
respectivement aux résultats de prédiction après un traitement par Arabert et Arbstremmer.

FS-SFAX Page 33
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

(a) La matrice de confusion Arabert (b) La matrice de confusion Arabstemmer

F IGURE 2.19 – Les matrices de confusion du modèle KNN

Résultats de l’algorithme Desicion Tree :

Le tableau 2.4 présente les résultats des métriques choisies de la classification à partir du
modèle Desicion Tree .

Stemming Accuracy Precision Recall F1-score

Arabert 0,6888 0,6951 0,6668 0,6727


Texte
Arabstemmer 0,7277 0,7183 0,7057 0,7056

TABLE 2.4 – Les mesures de performances du modèle Decision Tree

La figure 2.20 présente une comparaison entre les matrices de confusion correspondantes
respectivement aux résultats de prédiction après un traitement par Arabert et Arbstremmer.

FS-SFAX Page 34
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

(a) La matrice de confusion Arabert (b) La matrice de confusion Arabstemmer

F IGURE 2.20 – Les matrices de confusion du modèle Decision Tree

Résultats de l’algorithme Naive Bayes :

Le tableau 2.5 présente les résultats des métriques choisies de la classification à partir du
modèle Naive Bayes.

Stemming Accuracy Precision Recall F1-score

Arabert 0,8222 0,8769 0,7817 0,7879


Texte
Arabstemmer 0,8055 0,8732 0,7685 0,7804

TABLE 2.5 – Les mesures de performances du modèle Naive Bayes

La figure 2.21 présente une comparaison entre les matrices de confusion correspondantes
respectivement aux résultats de prédiction après un traitement par Arabert et Arabstemmer.

FS-SFAX Page 35
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

(a) La matrice de confusion Arabert (b) La matrice de confusion Arabstemmer

F IGURE 2.21 – Les matrices de confusion du modèle Naive Bayes

Après avoir réalisé cinq modèles différents, nous avons pu constater que le modèle SVM
(Support Vector Machine) se démarque nettement en termes de performances. Parmi tous les
modèles testés, il s’est avéré être le plus efficace pour notre problématique spécifique. Ses
capacités de classification et de séparation des données ont clairement surpassé celles des autres
modèles.

2.4.2 Arabert

Ce modèle, qui est le plus adéquat, est préformé pour le traitement du langage naturel arabe.

Nous avons choisi de l’utiliser et d’effectuer un Fine-Tuning sur lui en se réfèrant à notre
base de données collectée dans le premier sprint.

FS-SFAX Page 36
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

F IGURE 2.22 – Logo d’Arabert

2.4.2.1 La Lecture et la segmentation des textes

La lecture des textes consiste à lire un fichier .csv ligne par ligne. En effectuant à chaque
étape une segmentation sur le champ texte et en insérant des masques d’une façon aléatoire
permet de faciliter l’apprentissage du modèle et de créer des liaisons entre les parties segmentées
représentant ainsi le corps du traitement du Langage Naturel comme le montre la figure 2.23.

FS-SFAX Page 37
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

F IGURE 2.23 – Image d’un exemple de texte segmenté par +

2.4.2.2 Transfert Learning du modéle ArabERT

Le Transfer Learning ou apprentissage par transfert consiste à compléter l’apprentissage


d’un modèle de Machine Learning, préalablement entraîné à résoudre une tâche donnée, en vue
de lui permettre de résoudre une autre similaire.

En effet, les réseaux de neurones profonds, notamment utilisés en reconnaissance d’image


ou traitement automatique du langage (NLP), passent par une phase d’apprentissage gourmande
en puissance de calcul. Ce qui se traduit par des coûts élevés en ressources machines et surtout
des temps d’exécution longs pour aboutir à une intelligence artificielle de qualité. Le Transfer
Learning permet de mutualiser cette phase d’entraînement d’un modèle à l’autre. Il consiste à
figer une partie des poids des couches du réseau pré-entraîné, celles-ci recouvrant des variables
génériques telles que la détection de formes, de couleurs, etc.

FS-SFAX Page 38
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

Pour l’analyse des centres d’intérêt des utilisateurs sociaux, nous avons appliqué le transfert
transductif dont les tâches sont les mêmes, mais les domaines sont différents. Dans ce
contexte,nous avons utilisé 80% de la base de données pour la partie d’apprentissage illustrée
par la figure 2.24.

F IGURE 2.24 – Fine tuning du modéle AraBERT : partie d’apprentissage

2.5 S PRINT 4 : P RÉSENTATION DE L’ APPLICATION

RÉALISÉE

Pour rendre notre projet accessible à un public plus large, nous avons pris la décision de
créer un site web qui résume nos idées. Nous comprenons que tout le monde n’a pas une
compréhension approfondie de l’informatique, c’est pourquoi nous avons opté pour un moyen
plus simple dans la présentation de notre projet. En condensant les informations essentielles et
en utilisant un langage clair et accessible, nous pouvons communiquer nos idées de manière
plus compréhensible pour tous.

Notre application se compose de deux interfaces : une interface d’accueil et une interface
résultat. L’interface d’accueil permet à l’utilisateur de soumettre facilement le texte arabe à
analyser, tandis que l’interface résultat utilise des techniques avancées pour extraire et classifier
les centres d’intérêt.

FS-SFAX Page 39
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

2.5.1 Architecture de l’application Web

Nous avons proposé de suivre l’architecture api REST. Le terme API (Application
Programming Interface) est un ensemble standardisé de classes, méthodes, fonctions et
constantes qui servent de frontal à travers lequel le logiciel offre des services à d’autres
logiciels. Il est généralement accompagné d’une documentation qui explique comment les
consommateurs peuvent consommer les services offerts par le programme fournisseur. La mise
en place d’une API permet une répartition des rôles entre le client et le serveur. Ainsi, nous
pouvons imaginer une reformulation totale du design graphique de l’application sans avoir
recours au code coté client ou serveurs.

REST (Representational State Transfer) ou RESTful est un style d’architecture permettant


de dévélopper des applications. C’est un ensemble de bonnes pratiques à suivre et pas une
technologie indépendante utilisée. Elle emploie les protocoles HTTP pour un fonctionnement
total tel qu’il est illustré dans la figure 2.25.

F IGURE 2.25 – Architecture de l’api REST

2.5.2 I NTERFACE D ’ ACCUEIL DE L’ APPLICATION

L’interface principale de notre application offre à l’utilisateur la possibilité de construire son


propre processus, tel qu’il est illustré dans la figure 2.26 :

FS-SFAX Page 40
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

F IGURE 2.26 – Interface d’accueil

2.5.3 INTERFACE RÉSULTAT DE L’ APPLICATION

Cette interface se concentre sur l’analyse des centres d’intérêt présents dans le texte arabe
soumis.

Une fois que l’utilisateur a fourni le texte à analyser, notre application utilise des algorithmes
sophistiqués pour analyser le contenu, détecter les mots-clés, identifier les sujets dominants et
les regrouper en catégories pertinentes. Ces résultats sont ensuite présentés de manière claire et
compréhensible, permettant aux utilisateurs de visualiser le centre d’intérêt abordé dans le texte
comme le montre la figure 2.27 :

FS-SFAX Page 41
CONSTRUCTION DE L’APPLICATION DE PROFILAGE DES UTILISATEURS
SOCIAUX

F IGURE 2.27 – Interface résultat

2.5.4 Conclusion

Dans ce grand chapitre, nous avons expliqué l’architecture de l’application et détaillé le


contenu des quatre sprints qui ont donné vie à notre solution.

FS-SFAX Page 42
C ONCLUSION ET P ERSPECTIVES

Durant ce stage, nous nous sommes concentrées sur le problème du profilage des utilisateurs
des réseaux sociaux à partir de leurs données sociales partagées sur Facebook. Notre objectif
était de développer une application web capable d’analyser les posts partagés et d’identifier
les centres d’intérêt dégagés. Pour cela, nous avons commencé par établir le contexte général
du projet. Après avoir présenté la problématique de base, nous avons tenu à élaborer une
solution répondant aux besoins fonctionnels et non fonctionnels. Ensuite, nous avons procédé à
la collecte de notre base de données, suivi du développement de la solution, et enfin évalué nos
résultats.

La mise en place d’une telle solution s’est avérée complexe. Au cours de ce stage, nous
avons découvert les domaines du traitement du langage naturel (NLP), du développement web
et de l’analyse des profils utilisateurs. Le manque de données et de statistiques détaillées a
également été un frein pour notre projet. Malgré ces défis, nous avons réussi à répondre à la
problématique posée en utilisant les ressources à notre disposition.

En conclusion, la solution que nous avons proposée et développée répond aux attentes.
Cependant, il serait possible d’améliorer les résultats en mettant en place de nouvelles solutions
de collecte des données sociales. Cette amélioration permettrait d’obtenir des résultats plus
cohérents avec le marché en plein essor de l’analyse des réseaux sociaux.

FS-SFAX Page 43
BIBLIOGRAPHIE

[1] ANTOUN, Wissam, BALY, Fady, et HAJJ, Hazem. Arabert : Transformer-based model for
arabic language understanding. arXiv preprint arXiv :2003.00104, 2020.

[2] LARKEY, Leah S., BALLESTEROS, Lisa, et CONNELL, Margaret E. Improving


stemming for Arabic information retrieval : light stemming and co-occurrence analysis.
In : Proceedings of the 25th annual international ACM SIGIR conference on Research and
development in information retrieval. 2002. p. 275-282.

[3] KEERTHI, S.. Sathiya , SHEVADE, Shirish Krishnaj , BHATTACHARYYA, Chiranjib, et


al. Improvements to Platt’s SMO algorithm for SVM classifier design. Neural computation,
2001, vol. 13, no 3, p. 637-649.

[4] MATHIEU-DUPAS, Eve. Algorithme des k plus proches voisins pondérés et application en
diagnostic. In : 42èmes Journées de Statistique. 2010.

[5] FREUND, Yoav et MASON, Llew. The alternating decision tree learning algorithm. In :
icml. 1999. p. 124-133.

[6] DE CAIGNY, Arno, COUSSEMENT, Kristof, et DE BOCK, Koen W. A new hybrid


classification algorithm for customer churn prediction based on logistic regression and
decision trees. European Journal of Operational Research, 2018, vol. 269, no 2, p. 760-772.

[7] SARITAS, Mucahid Mustafa et YASAR, Ali. Performance analysis of ANN and Naive
Bayes classification algorithm for data classification. International journal of intelligent
systems and applications in engineering, 2019, vol. 7, no 2, p. 88-91.

FS-SFAX Page 44

Vous aimerez peut-être aussi