Académique Documents
Professionnel Documents
Culture Documents
ET DE LA RECHERCHE SCIENTIFIQUE
UNIVERSITE DE SOUSSE
Encadré par :
Mr. Lotfi Ben Romdhane
Société d’accueil
Réalisé par :
Fatma SASSI
A toute la famille SASSI, à tous mes amis de stage, a tous ceux qui ont su
m’apporter aide et soutien aux moments propices.
A tous mes amies, pour les agréables moments passés ensemble, pour le soutien
moral et pour la noblesse de vos actes.
… Fatma
Remerciements
Le résultat de mon travail est le fruit des efforts des gens qui m’entourent par
Pour la confiance qu’il nous a donné ainsi que pour tous ses conseils et son
m’a guidée avec sa patience et ses directives judicieuses qui m’ont beaucoup
Sousse (ISITCom) pour la formation qu’ils m’ont procurée durant mes années
d’étude.
Sans oublier bien sûr de remercier mes honorables membres du jury d’accepter
… Fatma
Table des matières
Introduction ......................................................................................................................... 4
1. Présentation de l’organisme......................................................................................... 4
Conclusion ........................................................................................................................ 13
Introduction ....................................................................................................................... 15
Conclusion ........................................................................................................................ 29
Introduction ....................................................................................................................... 31
Conclusion ........................................................................................................................ 36
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU) ...................................... 37
Introduction ....................................................................................................................... 38
4.1. Définition............................................................................................... 41
Conclusion ........................................................................................................................ 50
Introduction ....................................................................................................................... 52
3. Conception ................................................................................................................. 65
4. Réalisation ................................................................................................................. 71
Conclusion ........................................................................................................................ 78
IA : Intelligence artificielle
La popularité des médias sociaux est liée à la demande d’information. C'est important pour
notre société, car nous savons que ce genre de sites diffuse l’information très rapidement et le
rend disponible partout dans le monde. En général, nous constatons que les gens aiment
consulter les réactions des autres, à travers leurs points de vue par exemple, avant de prendre
une décision ou d’exprimer leur propre opinion, même s’ils ne connaissent pas ces personnes.
En particulier le cas de l’extraction des opinions des gens et de leur façon de penser sur
n’importe quel sujet de la vie. Le terme extraction fait référence à la tâche d’échange
d’informations et d’opinions qui permet l’apparition de certains types d’applications
informatiques de façon croissante. Ces applications sont conçues pour analyser, détecter et
récupérer les émotions et les expressions des gens sur Internet, et les présenter sous forme
d’opinion (Opinion Mining en Anglais) ou d'analyse du sentiment (Sentiment Analysis en
Anglais). Parmi de nombreuses autres tâches, l’analyse du sentiment consiste à déterminer
l’opinion des gens sur les sites web et les réseaux sociaux, dans le but de faire diverses choses
comme extraire le comportement des personnes et expliquer des résultats. Il recherche des
données textuelles à caractère évaluatif sur Internet, telles que les revues, les commentaires,
etc. Par conséquent, il est devenu important de concevoir des systèmes et des applications
automatiques capables d’analyser et de détecter les sentiments et les opinions personnels
exprimés sur les réseaux sociaux.
Dans ce contexte, nous rappelons l'intelligence artificielle (IA). L’IA est un ensemble des
techniques qui visent à imiter le raisonnement humain. En raison de son efficacité et à la
pertinence de ses résultats, l'IA a connu un accroissement de ses domaines d'utilisation.
Aujourd’hui, les utilisateurs partagent leurs sentiments, leurs opinions ou leurs points de vue
sur la plateforme, sous forme de commentaires pour que les autres en profitent. Pour cette
raison, la plateforme « 3almadmoon Services » est développée, c’est une plateforme qui
regroupe des services.
L'objectif de notre projet « Feedback / Rating Service » qu’est une partie de la plateforme
qui collecte les retours clients sur les services ou bien sur les fournisseurs lui-même est
1
analysé et classé selon des modèles spécifiques pour indiquer s'il s'agit de retour positif ou
négatif.
Le présent rapport s’articule autour des différentes étapes de la mise en œuvre de ces
modules, qui vont être regroupés dans une plateforme. Ces étapes sont ventilées sur cinq
chapitres illustrant une démarche de travail.
Nous clôturons ce rapport par une conclusion générale rappelant les principaux résultats de
notre application.
2
Chapitre 1 : Présentation générale
3
Chapitre 1 : Présentation générale
Introduction
Dans le premier chapitré, nous commençons par une présentation générale de la société
« ProfVeca » qui va nous permettre de prendre une idée générale sur ses activités. Par la suite,
nous procédons à l’étude de contexte du projet tel que l’étude de l’existant et l’objectif
générale de notre projet et nous clôturons par la spécification de la méthodologie de travail
adoptée lors de la réalisation du projet.
1. Présentation de l’organisme
« ProfVeca » est une entreprise considérée comme l'une des premières sociétés indépendantes
pour le développement de logiciels et de solutions à Sousse. Elle contient les travailleurs les
plus qualifiés, qui sont prêts à aller à des niveaux plus élevés avec cette entreprise.
4
Chapitre 1 : Présentation générale
1. 2. Cordonnées de l'entreprise
1. 3. Organigramme de l’entreprise
5
Chapitre 1 : Présentation générale
Les retours d’information des clients désignent l'ensemble des observations, des évaluations et
des critiques. Afin de recueillir des retours clients de qualité, il est essentiel d'identifier les
différentes étapes du parcours utilisateur au cours desquelles les clients ressentiront le besoin
de partager leurs avis. Vous pouvez utiliser plusieurs méthodes, par exemple :
6
Chapitre 1 : Présentation générale
✓ Les sondages slide-out : Ces enquêtes nous permettent d'interagir de manière non
intrusive tout au long du parcours de l'utilisateur. Vous pouvez poser les bonnes
questions aux bonnes personnes au bon moment pour obtenir des commentaires
pertinents.
Afin de mettre en place une solution d’acquisition de classer les retours clients nous
constatons les différents points faibles dans le système existant :
Dans le cadre de ce projet de fin d’études, nous sommes amenés à réaliser une API web qui
est une partie du projet « 3almadmoon Services ».
Feedback / Rating Service est une API pour classifier les commentaires trouvons sur les
services des fournisseurs qui inscrivent dans la plateforme, c’est un commentaire positif ou
bien négatif selon les modèles trouvés. Cette tâche est effectuée par l’administrateur de
l’application. Ce dernier, vous permet de gérer les clients, leurs commentaires et leurs
réponses et gérer aussi les fournisseurs qui sont déjà inscrit.
La plateforme autorise l’inscrit aux utilisateurs en tant que client pour donner leur avis sur le
fournisseur et leur service, de répondre sur un commentaire et donner la permission d’ajouter
leur point de vie sur les commentaires d’autres clients, et en tant que fournisseur pour ajouter
leur service et répondre aux commentaires présentées sur son service.
7
Chapitre 1 : Présentation générale
L’objectif de notre projet de réunir les retours d'information (feedback) des clients sur les
services ou bien sur les fournisseurs lui-même et le classer selon des modèles précis pour
montrer qu'est un retour positif ou négatif.
Le client peut être une application (site Web, application mobile) ou un développeur qui
interroge directement l'API.
Le système source peut être une ou plusieurs bases de données, telles que des applications,
des bases de données opérationnelles ou d'autres bases de données.
L'API reçoit les appels et les données du client et se connecte au système source.
Techniquement, ils sont constitués d'un ensemble de bibliothèques et de fonctions qui
permettent ces fameuses interactions.
8
Chapitre 1 : Présentation générale
Pour bien diriger notre projet, nous avons choisi un processus de développement itératif qui
consiste à composer notre projet en plusieurs étapes. Nous avons intéressé donc à donner un
aperçu sur les méthodologies dans cette section. Puis nous faisons une étude détaillée sur la
méthodologie Scrum, celle utilisée dans notre projet.
Il existe une large différence entre les méthodes traditionnelles et les méthodes agiles,
chacune est adoptée dans des conditions précises de réalisation de projets.
• Les méthodes classiques seront plus utilisées si vous avez une idée très claire de votre
projet avec un cahier des charges détaillé.
• Les méthodes agiles seront plus utilisées pour les gros projets ou les nouveaux projets.
En effet les méthodes agiles offrent une meilleure visibilité et gestion des risques.
Elles pourraient aussi être utilisées pour les projets où il n’y pas de documentations
détaillées, le client peut alors voir l’évolution du projet et l’adapter au fur et à mesure
selon ses besoins.
Aujourd'hui, les méthodes agiles permettent de mieux répondre aux attentes des gestionnaires
de projets concernés par des problèmes. C’est pour ces raisons nous la choisissons comme
méthode de travail.
Maintenant, nous procédons au choix de la méthode agile à utiliser pour la réalisation de notre
projet. Pour cela, nous élaborons un tableau comparatif entre les méthodes agiles les plus
connues qui sont Scrum, XP et DSDM et qui sont utilisées fréquemment dans les sociétés.
9
Chapitre 1 : Présentation générale
productivité
• Découpage en sprint
• Fait une large place aux • Une implication forte de
XP prototype et tests client
• Documentation Complexe
DSDM • Gestion de projet efficace • Consommation du temps
La méthode Scrum est un cadre de travail qui s’inscrit dans la liste des méthodes agiles les
plus utilisées pour la gestion des projets informatiques.
Dans la méthode Scrum, le produit logiciel est développé ou évolue sous formes de sprints qui
sont des phases de développement de quelques semaines qui se concentrent généralement sur
quelques fonctionnalités, voire parfois sur une fonctionnalité unique. Les fonctionnalités à
développer lors des sprints sont notamment répertoriées et priorisées dans le cadre d'un
backlog produit. [2]
Scrum a des avantages par rapport aux autres méthodologies :
✓ Propriété et Autonomie : chaque membre de l’équipe peut prendre une tâche de travail
hors de sa zone de confort pour maitriser des nouvelles compétences.
✓ Contact direct avec le client
✓ L’attitude de l’équipe : cette méthode est basée sur le travail en équipe.
10
Chapitre 1 : Présentation générale
Les fonctionnalités demandées sont collectées dans le Back log de produit et classées par
priorité. Le Sprint est défini par l’équipe de développement avec le propriétaire de produit,
basé sur leurs priorités et la capacité de l’équipe. L’équipe définit les tâches pour réaliser les
fonctionnalités sélectionnées pour le Sprint. Pendant un sprint, des points de contrôle sur
l’avancement sont effectués lors des réunions quotidiennes. À la fin de chaque Sprint,
l’équipe produit un incrément potentiellement utilisable pour ajuster le Backlog pour le Sprint
suivant.
11
Chapitre 1 : Présentation générale
On ne peut pas terminer cette section sans définir les membres de notre équipe Scrum qui est
une chose très intéressante pour notre travail qui donne le rôle de chaque membre de l’équipe.
12
Chapitre 1 : Présentation générale
Conclusion
13
Chapitre 2 : Sprint 0 : Lancement
du projet
14
Chapitre 2 : Sprint 0 : Lancement du projet
Introduction
Au cours de ce chapitre, nous commençons par présenter les besoins fonctionnels et non
fonctionnels de notre travail. Ainsi, nous décrivons les formes générales de traitement de
langage Natural et la planification des sprints, après nous avons donné le diagramme de cas
d’utilisation général, et nous mettons l'accent sur l’architecture de l’application. Finalement,
nous dégageons les différents outils et environnements qu’il utilisait.
Cette phase consiste à déterminer les différents besoins fonctionnels et non fonctionnels du
projet.
Dans cette étape, nous allons donner les différentes fonctionnalités qu’offrira notre API :
16
Chapitre 2 : Sprint 0 : Lancement du projet
Les besoins non fonctionnels représentent les exigences implicites auxquelles le système doit
répondre dont on peut citer :
❖ Sécurité : L’API utilise des informations confidentielles elle doit gérer les différents
droits d’accès.
❖ Performance : L’API doit fonctionner dans les meilleures conditions sans
s’interrompre pour ceci il faut minimiser les pannes, gérer les erreurs et les exceptions
et la réponse doit être la plus courte possible.
❖ Évolutivité : Le code source doit être clair pour permettre de futures évolutions ou
améliorations.
Dans ce projet nous avons intéressé par la partie NLP et la partie NLU seulement.
17
Chapitre 2 : Sprint 0 : Lancement du projet
Après la définition des besoins du client, c’est le moment de répartir le travail tout au long
de la période du stage, et ceci en définissant notre Product Backlog qui est très important
dans notre méthode de travail SCRUM. Nous allons les décrire en détail dans les tableaux
suivants:
Degré
N° Titre de En tant de
Spri Sprint que Je souhaite Pour comple
nt xité
0 Lancement de Team -Analyser les besoins -Mieux 6
projet du projet (besoins Comprendre
fonctionnels et non l’idée de projet
fonctionnels) -Pour savoir
-Bien comprendre le l’orientation
Product Backlog technique de
-Faire le choix notre API
technologique -Pour
-Tracer le diagramme identifier mes
de cas d’utilisation acteurs et les
global de système cas
-Tracer les d’utilisations
diagrammes de sur lesquelles
séquence on va
-Tracer le diagramme travailler.
d’entité -Pour se
-Faire une auto familiariser
formation sur NodeJS avec le langage
et ReactJs. et ne pas
-Comprendre la trouver des
langage NLP et NLU. difficultés au
cours de
18
Chapitre 2 : Sprint 0 : Lancement du projet
codage
1 Traitement Team Les tâches du langage du -Mieux 10
automatique traitement naturel : Comprendre
du langage • Segmentation les tâches du
naturel • Racinisation ou modèle et
(NLP) lemmatisation applique.
• Enlever les mots
vides
19
Chapitre 2 : Sprint 0 : Lancement du projet
commentaires d’utilisateur et
• Modifier un les réponses.
commentaire de
la base des
commentaires
• Consulter les
commentaires de
la base des
commentaires
• Supprimer l’un
des
commentaires de
la base des
commentaires
• Répondre à un
commentaire :
ajouter une
réponse
• Consulter leurs
réponses :
o Ajouter une
réponse.
o Modifier une
réponse.
o Supprimer une
réponse
- Gérer les services :
• Ajouter un
service dans la
base des services
• Modifier un
service de la
base des services
20
Chapitre 2 : Sprint 0 : Lancement du projet
• Consulter les
services de la
base des services
• Supprimer l’un
des services de
la base des
services
-Activer et désactiver un
commentaire par
l’administrateur.
-Activer et désactiver
une réponse par
l’administrateur.
-Activer et désactiver un
utilisateur par
l’administrateur.
-Classifier les
commentaires selon deux
modelés (LSTM,
Random Forest)
La complexité de chaque sprint est évaluée selon la suite Fibonacci : 1,2,3,5,8,13,20 pour
éviter les valeurs très proches et garder des taches d’importance acceptables.
1 2 3 5 8 13 20 40 100
Facile ->simple->normal->difficile->très dur->délirant
21
Chapitre 2 : Sprint 0 : Lancement du projet
Nous allons modéliser les besoins de notre API à travers un diagramme de cas d’utilisation
général qui nous permet de donner une aperçue sur le fonctionnement global de notre API.
➢ Administrateur
➢ Fournisseur de service
➢ Client
22
Chapitre 2 : Sprint 0 : Lancement du projet
23
Chapitre 2 : Sprint 0 : Lancement du projet
5. Architecture de l’application
L’architecture Modèle Vue Contrôleur (MVC) est une méthode de conception pour le
développement d’application logicielle. Le concept du modèle est une décomposante en trois
sous-parties :
➢ Modèle : Cette partie contient les données de l’application qui sont structurées sous
forme d’entités. Les données peuvent être exploitées sous forme de classes ou des
ensembles des fonctions. Cette couche interagie directement avec la base des données.
➢ Vue : Cette partie s’occupe des interactions avec l’utilisateur : présentation, saisie et
validation des données. Il contient les interfaces qui nous voyons dans notre
navigateur web.
➢ Contrôleur : C’est la couche qui se trouve entre le modèle et la vue qui reçoit les
requêtes de l’utilisateur et choisit quelle méthode doit être déclenchée pour le
24
Chapitre 2 : Sprint 0 : Lancement du projet
traitement de cette requête. Par la suite ses traitements vont être envoyés à la vue
correspondante.
5.2. Avantages
5.3. Inconvénients
• Le modèle MVC n’est pas visible que pour la réalisation de petits projets
• La séparation des différentes couches nécessite la création de plus de fichier (fichier
pour le modèle, fichier pour le contrôleur, fichier pour la vue)
Dans cette section nous allons donner les outils et les technologies que nous avons utilisés au
cours de la réalisation de notre API.
Nous allons lister les différents logiciels ainsi quelles technologies utilisons-nous tout au long
de la réalisation de notre API.
❖ Outils utilisés
• Visual Studio Code
25
Chapitre 2 : Sprint 0 : Lancement du projet
• Postman
Postman est une extension du navigateur Google Chrome qui
vous permet de développer et de tester des API. Cette
application est gratuite, utilisée par environ 3,5 millions de
développeurs et plus de 30 000 entreprises dans le monde.
Options de test d'API simples et riches.
• Robo 3T
Robo 3T (anciennement Robomongo) est un outil de gestion
multiplateforme basé sur un shell pour MongoDB.
Contrairement à la plupart des autres outils d'interface utilisateur
de gestion MongoDB, Robo 3T intègre Mongo Shell dans une
interface à onglets avec accès à la ligne de commande Shell et
interaction avec l'interface graphique.
• Drawio
Draw.io est une application en ligne gratuite accessible via son
navigateur (protocole https), qui permet de dessiner des
diagrammes ou des organigrammes. L'outil conçoit pour vous
divers graphiques et diagrammes vectoriels, les enregistre au
format XML, puis les exporte.
26
Chapitre 2 : Sprint 0 : Lancement du projet
❖ Technologies utilisées
• Node Js
NodeJS est une plateforme basée sur le moteur JavaScript V8 de
Chrome, vous permettant de développer des applications à l'aide
de JavaScript. Il diffère des autres plates-formes, grâce à la
méthode non bloquante, qui permet d'effectuer des entrées /
sorties (E / S) de manière asynchrone. Il est gratuit et contient
plusieurs modules, on peut citer http, qui permet le
développement de serveurs HTTP.
• Express Js
• React Js
27
Chapitre 2 : Sprint 0 : Lancement du projet
• JavaScript
• HTML
• Python
Python est un langage puissant, facile à apprendre et riche en
possibilités. C'est un langage de programmation open source. Il
permet l'analyse des données dans le domaine du développement
logiciel. Python est utilisé dans différents domaines tels que: la
programmation d'applications, la création de services Web, la
génération de code et la méta programmation.
28
Chapitre 2 : Sprint 0 : Lancement du projet
• MongoDB
MongoDB est une base de données multi-plateforme orientée
document. Les données sont organisées sous forme de
documents JSON (équivalents lignes) avec des champs
(équivalents colonnes) qui sont regroupés dans des collections
(équivalents tables). Il utilise le format BSON pour stockager
des documents, ce qui étend la mise en œuvre JSON pour offrir
des types de données supplémentaires.
Conclusion
Dans ce chapitre, nous nous sommes intéressés à l’analyse des besoins de notre système qui
sont les besoins fonctionnels et non fonctionnels. Nous avons mis l’accent sur les formes
générales de traitement de langage Natural et après la planification des sprints et nous avons
spécifié les acteurs intervenant dans notre API, par la suite nous avons donné le diagramme de
cas d’utilisation général, ainsi que nous avons proposé l'architecture de notre API et nous
avons fini par les outils et technologies que nous allons utiliser.
29
Chapitre 3 : Sprint 1 : Traitement
du langage naturel (NLP)
30
Chapitre 3 : Sprint 1 : Traitement du langage naturel (NLP)
Introduction
Dans ce chapitre, nous nous concentrons sur la partie traitement du langage naturel. Nous
comprenons fondamentalement la technologie telle que ses types, ses avantages et ses
techniques. Puis nous avons confié la méthode de fonctionnement, les tâches utilisées et les
problèmes trouvés lors de son fonctionnement.
1. Backlog du sprint
La capture du backlog produit nous permet de nous recentrer sur les tâches à effectuer dans ce
Sprint.
Degré
N° Titre de En tant de
Spri Sprint que Je souhaite Pour comple
nt xité
1 Traitement Team Les tâches du langage du -Mieux 10
automatique traitement naturel : Comprendre
du langage • Segmentation les tâches du
naturel • Racinisation ou modèle et
(NLP) lemmatisation applique.
• Enlever les mots
vides
2.1. Définition
Le traitement du langage naturel est une branche de l'intelligence artificielle qui aide les
ordinateurs à comprendre et manipuler le langage humain. C'est une technologie dont le but
est de faire communiquer les ordinateurs et les gens au même niveau.
31
Chapitre 3 : Sprint 1 : Traitement du langage naturel (NLP)
La NLP semble être une chose très professionnelle, mais elle est très populaire. Vous pouvez
rencontrer un système de traitement du langage naturel dans votre vie quotidienne sans vous
en rendre compte.
Les deux principales techniques utilisées pour le traitement naturel du langage sont :
32
Chapitre 3 : Sprint 1 : Traitement du langage naturel (NLP)
❖ L'analyse sémantique : Les tâches sémantiques analysent la structure des phrases, les
interactions de mots et les concepts associés, dans le but de découvrir le sens des mots
et de comprendre le sujet d'un texte. [4]
En raison des nombreuses nuances et incohérences du langage humain, la NLP est très difficile.
Déterminer comment saisir ces nuances et le contexte qui les entoure dans le langage et contraint
des ordinateurs n'est pas facile.
• Prétraitement des données : Les données doivent être nettoyées et annotées pour
pouvoir être traitées par des algorithmes. Le nettoyage consiste généralement à
déconstruire les données en mots ou en morceaux, à supprimer les parties du discours
qui n'ont pas de signification (par exemple, StopWords comme la, du, ces, etc.), à
standardiser les données (par exemple, changer tous les mots en minuscules) et
grouper les mots en catégories prédéfinies, telles que le nom de la personne. Tout cela
peut être fait en utilisant la bibliothèque spaCy et/ou NLTK en Python. L'annotation se
résume à regarder les mots environnants et à utiliser des règles de langage ou des
statistiques pour marquer une partie du discours.
• Vectorisation : Après le prétraitement, les données non numériques seront converties
en données numériques, car les ordinateurs fonctionnent beaucoup plus rapidement sur
les vecteurs. Cela signifie que la vectorisation de texte peut être utilisée dans divers
contextes sans avoir à reconstruire à chaque fois un modèle spécifique à une
collection.
• Test : Une fois la base de référence créée, la validation est utilisée pour tester la précision de
sa prédiction. La validation croisée est une technique de validation de modèle qui divise les
données en sous-ensembles d'apprentissage et de test.
33
Chapitre 3 : Sprint 1 : Traitement du langage naturel (NLP)
Une fois que vous avez la liste de mots, la modification de ceux-ci peut être
une étape utile.
34
Chapitre 3 : Sprint 1 : Traitement du langage naturel (NLP)
remplacer Les mots «lenteur», «ralentir» où «lentement» sont composés de leur radical
«lent». La même idée peut être appliquée à différents mois de l'année (utilisez "mois" au
lieu de "juin" ou "juillet") ou nombre (remplacez "4" ou "7" par "num"). Donc nous
utilisons juste un moyen d'aider à sélectionner des tâches en supprimant les informations
non pertinentes c'est inutile. De même, une autre méthode de prétraitement
couramment utilisé consistée à enlever la majuscule du début de phrase et de garder
une majuscule aux noms propres.
✓ Enlever les mots vides (stop words) : Comme la lemmatisation, ce prétraitement est
optionnel et son utilisation dépend de nombre des tâches à accomplir. Les mots vides font
référence à aucune signification et sont généralement les plus courants dans le texte car
par exemple "le", "le" ou "de".
Vous pouvez également décider de créer une liste de mots vides utilisés pour des
domaines spécifiques. Pour certaines tâches, comme la classification pour les documents,
les mots vides peuvent être nuisibles et leur suppression peut aider.
L'analyse des sentiments est une tâche très complexe avec de nombreux problèmes non résolus.
Voici quelques-uns :
35
Chapitre 3 : Sprint 1 : Traitement du langage naturel (NLP)
Conclusion
Ce chapitre a pour but d'étudier la partie traitement du langage naturel, ses modes de
fonctionnement, les tâches utilisées dans cette partie et situées quelques problèmes existants dans
cette technologie et la partie compréhension du langage naturel dans le chapitre suivant on va
l'expliquer.
36
Chapitre 4 : Sprint 2 : La
compréhension du langage naturel
(NLU)
37
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU)
Introduction
1. Backlog du sprint
La capture du backlog produit nous permet de nous recentrer sur les tâches à effectuer dans ce
Sprint.
Degré
N° Titre de En tant de
Spri Sprint que Je souhaite Pour comple
nt xité
2 La Team - Classifier les -Mieux 13
compréhension du
commentaires par comprendre le
langage naturel
(NLU) l’algorithme phénomène et
LSTM choisir deux
- Classifier les modelés pour
commentaires par l’applique.
l’algorithme
Random Forest
La compréhension du langage naturel (NLU) est un sous domaine du traitement du langage naturel,
qui consiste à décomposer le langage humain en formats lisibles par machine.
Bien que la PNL et la NLU visent à comprendre les données non structurées, ce ne sont pas la
même chose. La PNL s'intéresse à la façon de programmer les ordinateurs pour traiter le langage et
faciliter les échanges « naturels» entre les ordinateurs et les personnes. D'autre part, la
38
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU)
La compréhension du langage naturel est une branche de l'intelligence artificielle qui utilise
un programme pour comprendre une entrée sous la forme de phrase (texte).
3. Le réseau neuronal
3.1. Définition
Le réseau neuronal ou réseau neuronal artificiel (ANN) est un réseau qui utilise des modèles
mathématiques complexes pour le traitement de l'information. Ils sont basés sur des modèles
du fonctionnement des neurones dans le cerveau humain. Semblables au cerveau humain, les
réseaux neuronaux connectent des nœuds simples, également appelés neurones ou unités.
L'ensemble de tels nœuds forme un réseau de nœuds et est donc appelé "réseau neuronal".
Dans un réseau neuronal, un ensemble d'algorithmes est utilisé pour identifier et reconnaître
les relations dans les ensembles de données. Les réseaux de neurones sont conçus pour
s'adapter aux scénarios d'entrée dynamiques.
Contrairement à d'autres types d'algorithmes, les réseaux de neurones ne peuvent pas être
directement programmés pour effectuer des tâches. Tout comme le développement du cerveau
d'un enfant, leur seul guide est l'apprentissage.
39
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU)
Réseaux Définition
40
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU)
4.1. Définition
Le réseau de longue mémoire à court terme(LSTM) est une version modifiée du réseau
neuronal récurrent qui peut facilement stocker les données passées en mémoire. Cela résout le
41
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU)
problème du gradient de fuite RNN. LSTM est très approprié pour classer, traiter et prédire
des séries temporelles basées sur le décalage temporel de durée inconnue. Il utilise la rétro
propagation pour entraîner le modèle.
➢ Porte d’oubli
42
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU)
Cette porte décide quelles informations doivent être conservées ou supprimées: connectez les
informations dans l'état précédemment masqué aux données d'entrée puis nous lui appliquons
la fonction Sigmoïde pour normaliser la valeur entre 0 et 1. Si la sortie en forme de S est
proche de 0, cela signifie que nous devons oublier l'information; si elle est proche de 1, nous
devons nous souvenir de l'information pour continuer.
➢ Porte d’entrée
Le rôle de la porte d'entrée est d'extraire des informations à partir des données courantes,
on va appliquer en parallèle une sigmoïde aux deux données concaténées et une tanh.
• Sigmoid renverra un vecteur dont les coordonnées proches de 0 signifient que les
coordonnées de la position équivalente dans le vecteur en cascade ne sont pas
importantes. A l'inverse, les coordonnées proches de 1 seront considérées comme
"importantes".
• Tanh normalisera simplement les valeurs comprises entre -1 et 1 pour éviter les
problèmes de surcharge informatique.
43
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU)
➢ Port de sortie
Dernière étape: la sortie doit déterminer le prochain état masqué, qui contient des
informations sur les entrées réseau précédentes, utilisé pour la prédiction. Pour ce faire, le
nouvel état de la cellule calculé juste avant et normalisé entre -1 et 1 grâce à tanh. En ce qui
concerne l'entrée courante, le vecteur de connexion à l'état caché précédent passe la fonction
sigmoïde, dont le but est de déterminer les informations à retenir.
Tout cela semble être magique dans le sens où le réseau semble devoir deviner ce qu'il faut
retenir dans le vecteur courant, mais rappelez-vous que la matrice de poids est utilisée comme
entrée.
4.3. Avantages
o Capable de modéliser la séquentielle à long terme
o Plus robuste pour les gradients de disparition qu’un RNN
4.4. Inconvénients
o Temps d’exécution lent
44
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU)
o Besoin de mémoire plus élevé que RNN en raison de cellules mémoire multiples
o Augmente la complexité informatique en comparant avec un RNN
5. Random Forest
5.1. Définition
L'algorithme « Forêts Aléatoires » ou « Random Forest » est parfois traduit par « Forêt d'arbre
de décisionnel ». Il peut être utilisé à la fois pour la classification et la régression. C'est un
algorithme qui réduit la variance de la prédiction d'un seul arbre de décision, améliorant ainsi
ses performances. Pour cela, il combine de nombreux arbres de décision dans une méthode de
type bagging (Le bagging est une technique utilisée pour améliorer la classification, en
particulier la classification des arbres de décision, qui est considérée comme un classificateur
faible).
Dans la formule la plus classique, il effectue un apprentissage parallèle sur plusieurs arbres de
décision qui sont construits de manière aléatoire et entraînés sur différents sous-ensembles de
données. Le nombre idéal d'arbres peut atteindre des centaines ou plus, ce qui est un paramètre
important: il varie énormément et dépend du problème. Plus précisément, selon le principe du
bagging, un sous-ensemble aléatoire de données est formé pour chaque arbre de la forêt
aléatoire, et un sous-ensemble aléatoire de caractéristiques est entraîné selon le principe de
"projection aléatoire". Dans le cas des arbres de classification, lorsque les données sont
quantitatives ou utilisées pour voter pour des données qualitatives, les prévisions sont
moyennées.
45
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU)
5.3. Avantages
o Facile à comprendre
o Facile à interpréter
o Temps d’exécution raisonnable : C'est un algorithme assez simple et peu coûteux en
temps de calcul.
5.4. Inconvénients
46
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU)
- TP (Vrai positif) : le résultat actuel est positif et l’algorithme prédit qu’il est positif
- FP (Faux positif) : le résultat actuel est négatif et l’algorithme prédit qu’il est positif
- FN (Faux négatif) : le résultat actuel est positif et l’algorithme prédit qu’il est négatif
- TN (Vrai négatif) : le résultat actuel est négatif et l’algorithme prédit qu’il est négatif
Résultat positif TP FP
Résultat négatif FN TN
= TP/(TP+FN)
= TN/(TN+FP)
47
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU)
Sensibilité
1 0.85
TPR (Taux de vrai positif)
Spécificité
1 0.7
FPR (taux de faux positif)
ROC est une courbe de probabilité. La sensibilité est tracée sur l'axe des y et la spécificité sur
l'axe des x. AUC indique le degré de séparation, c'est-à-dire le nombre de modèles pouvant
être classé.
48
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU)
✓ Le modèle LSTM
49
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU)
Conclusion
50
Chapitre 5 : Sprint 3 : Conception
et Réalisation de l’API
51
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
Introduction
Ce chapitre va contenir la partie d’analyse qui contient les diagrammes de cas d’utilisation
avec leur description détaillée par la suite on va passer à la partie conception où on trouve le
diagramme de classes et les diagrammes de séquence puis on passe à la partie réalisation où
on va mettre des captures d’écran de la réalisation des interfaces du Sprint.
1. Backlog du sprint
La capture du backlog produit nous permet de nous recentrer sur les tâches à effectuer dans ce
Sprint.
Degré
N° Titre de En de
Sp Sprint tant Je souhaite Pour compl
rin que exité
t
3 Conception et Team - S’enregistrer s’il n’y a pas un - Je peux 8
Réalisation compte client ou un compte du accéder à la
de l’API fournisseur pour accès à la plateforme.
plateforme. Pour prédire
-S’authentifier s’il a déjà un des données
compte client, un compte du nécessaires
fournisseur ou un compte dans la
d’administrateur conduite des
- Gérer les commentaires : projets.
• Ajouter un -Mettre à jour
commentaire dans la les sources de
base des commentaires données et
• Modifier un consulter.
commentaire de la -Activer et
base des commentaires désactiver les
• Consulter les états
commentaires de la d’utilisateur et
52
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
53
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
Nous allons modéliser les besoins de Sprint 5 à travers le raffinement des diagrammes de cas
d’utilisation.
54
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
A1 : champs vides
L’enchainement démarre du point 2 du scénario nominal :
Scénario alternatif ➢ Le système affiche un message d’erreur et indique
que l’un des champs est vide.
La séquence nominale démarre du point 2.
55
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
56
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
57
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
58
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
59
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
60
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
Acteur Administrateur
➢ L’administrateur doit s’authentifier avant
d’effectuer cette tâche.
Précondition ➢ La base de données est mise en place et contient
toutes les informations concernant tous les clients.
61
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
62
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
63
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
64
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
Ou bien
L’administrateur cliqué sur le bouton
« Classification » pour classifier le commentaire
par deux modelés LSTM et Random Forest et fait la
comparaison entre elles.
7. Le système enregistre les résultats
A1 : champs vides
L’enchainement démarre du point 2 du scénario nominal :
Scénario alternatif ➢ Le système affiche un message d’erreur et indique
que l’un des champs est vide.
La séquence nominale démarre du point 2.
3. Conception
Dans cette partie nous allons présenter le diagramme de classe ainsi que les diagrammes de
séquences de notre projet.
65
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
Diagramme de classe
66
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
67
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
68
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
69
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
70
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
4. Réalisation
Notre projet est une API, ce à dire sans la partie front end, mais j'ai développé des interfaces
pour réaliser un projet complet.
La première interface c’est l’interface d’authentification qui nous permet à l’accès à notre
plateforme. Un message d’erreur sera affiché si l’utilisateur est bloqué ou bien ses données est
incorrecte.
71
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
L’administrateur peut gérer les clients de l’application, peut supprimer, activer ou désactiver
un client et leurs commentaires et leurs réponses seront modifier automatiquement en fonction
de leur statut.
72
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
L'administrateur peut classifier le commentaire selon leur sens (négatif, positif) à partir de
deux modèles LSTM ou bien Random Forest.
73
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
Chaque fournisseur inscrit sur la plateforme peut ajouter son service avec ses coordonnés. Il
peut modifier ses données ou les supprimer et peut aussi consulter les commentaires qui sont
ajoutés sur ce service
74
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
Le fournisseur peut gérer les réponses qu’ajoute de telle sorte que peut le modifier ou bien le
supprimer.
Lorsque le client authentifie une liste des services sera affiché et peut dons ajouter un
commentaire.
75
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
Le client gérer son commentaire, peut le modifier, le supprimer et peut aussi consulter les
réponses c de cette commentaire.
Lorsque le client consulte les réponses une liste sera affichée et peut aussi ajouter une
réponse.
76
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
Le client peut gérer les commentaires des autres clients, et approuver par "j’aime" ou
désapprouver par "je n’aime pas", peut aussi afficher et ajouter une réponse
77
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API
Conclusion
Au cours de ce Chapitre nous avons d’abord étudié le sprint 3, et nous l’avons analysé puis
nous avons présenté le diagramme de classes ainsi que les diagrammes de séquences de notre
application et enfin nous avons fini achevé ce travail par des captures d’écran des interfaces
réalisé
78
Conclusion générale
Dans le cadre de notre projet de fin d’études, nous avons conçu et développé la plateforme
web Feedback / Rating Service qui consiste à un regroupement d’un ensemble d'outils
Avancés.
Dans ce contexte, notre projet fin d’étude s’est déroulé au sein de la société « ProfVeca » afin
de réaliser ce projet qui présente plusieurs objectifs, que ce soit sur le plan fonctionnel ou le
plan technique, sur le plan fonctionnel le projet consiste au développement une API qui
classifie les commentaires de plateforme selon des modelés spécifiques qu’ont une tâche
importante dans ce projet, avec les différentes tâches qui nous avons traités. Comme l’indique
notre projet est une API, ce à dire juste la réalisation de la partie back end mais pour réaliser
un projet complet nous avons développé la partie front end pour montrer l’objectif du projet.
Afin d’atteindre notre objectif, nous allons tout d’abord faire une étude de faisabilité, qui est
une phase de réflexion et de définition de la méthode du travail que nous allons l’adopter.
Suite à cette phase primordiale, nous avons spécifié les besoins, une phase très importante, qui
regroupe les besoins fonctionnels et non fonctionnels et quant à la dernière phase de la partie
théorique, on a fait la conception nécessaire pour définir les architectures et les modèles
nécessaires à l’exécution de la partie pratique.
Par la suite on a attaqué la phase réalisation de ce projet qui était bénéfique pour acquérir des
nouvelles compétences en développement web et surtout les Framework js telque nodejs et
reactjs, et aussi la partie de classification des commentaires qui traite par python et nous a
permis d’améliorer nos connaissances déjà acquis dans le développement web et
l’administration des système.
79
Webographie
[1]https://www.journaldunet.fr/web-tech/dictionnaire-du-webmastering/1203559-api-
[2]https://www.definitions-marketing.com/definition/methode-scrum/ (Consulter le
15/03/2020)
[3]https://experiences.microsoft.fr/business/intelligence-artificielle-ia-business/comprendre-
04/04/2020)
[6]https://medium.com/smileinnovation/lstm-intelligence-artificielle-9d302c723eda
(Consulter le 01/112020)
Résumé
Le présent rapport résume notre expérience de stage dans le cadre de mon projet de fin
d’étude pour l’obtention du diplôme de Mastère Professionnel au « Service Web et
Multimédia ». Ce stage est effectué au sein de la société « ProfVeca ». Le projet consiste à
développer une API web qu’est une partie de projet « 3almadmoon Services ». L’API permet
de réunir les retours d'information des clients et le classer selon des modèles précis pour
montre qu'est un retour positif ou négatif. Ce projet est conduit par la méthode Scrum.
Plus précisément, ce stage a été une occasion pour nous de trouver une expérience
professionnelle dans le milieu de développement.
La solution est développée dont la partie backend par le Framework Express JS et Python et
dans la partie frontend par React JS. Pour la base de donnés en utilise Mongodb.
Mots clés : Scrum, Express JS, Python, React JS, Mongodb
Abstract
This report summarizes our internship experience as part of my graduation project for the
Professional Master’s degree in Web and Multimedia Service. This internship is carried out
within the company « ProfVeca ». The project consists of developing a web-based API that is
part of the project «3almadmoon Services ». The API collects customer feedback and ranks it
according to specific models to show whether the feedback is positive or negative. This
project is led by the Scrum method.
More specifically, this internship was an opportunity for us to find professional experience in
the development environment.
The solution is developed including the backend part by the Express JS and Python
Framework and in the frontend part by React JS. For the database uses Mongodb.
Keywords: Scrum, Express JS, Python, React JS, Mongodb