Vous êtes sur la page 1sur 93

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR

ET DE LA RECHERCHE SCIENTIFIQUE
UNIVERSITE DE SOUSSE

‫المعهد العالي لإلعالمية و تقنيات االتصال بحمام سوسة‬

INSTITUT SUPERIEUR D’INFORMATIQUE


ET DES TECHNIQUES DE COMMUNICATION – HAMMAM SOUSSE
Département Réseaux et Multimédia

MEMOIRE DE STAGE FIN D’ETUDES


Présenté en vue de l’obtention du diplôme de Master
Professionnel en Service Web et Multimédia

Conception et développement d’une API


« Feedback / Rating Service »
Réalisé par :
Fatma SASSI

Encadré par :
Mr. Lotfi Ben Romdhane

Société d’accueil

Année Universitaire 2019-2020


MINISTERE DE L’ENSEIGNEMENT SUPERIEUR
ET DE LA RECHERCHE SCIENTIFIQUE
UNIVERSITE DE SOUSSE

‫المعهد العالي لإلعالمية و تقنيات االتصال بحمام سوسة‬

INSTITUT SUPERIEUR D’INFORMATIQUE


ET DES TECHNIQUES DE COMMUNICATION – HAMMAM SOUSSE
Département Réseaux et Multimédia

MEMOIRE DE STAGE FIN D’ETUDES


Présenté en vue de l’obtention du diplôme de Master
Professionnel en Service Web et Multimédia

Conception et développement d’une API


« Feedback / Rating Service »

Réalisé par :
Fatma SASSI

Encadrant et Superviseur : …………………………….


Date : …………………… Signature : …………………

Année Universitaire 2019-2020


Dédicaces
Je remercie avant tout ALLAH
Le tout puissant qui m’a donné les capacités physiques et intellectuelles
nécessaires à la réalisation de ce projet.

A mon cher papa et ma chère maman


Pour tous les sacrifices que vous m’avez consentis, pour toutes les prières que
vous m’aviez faites pour tout l’encouragement, le soutien et l’amour que vous
m’aviez toujours apportés tout au long de mes études pour faire de moi une
personne couronnée de succès. Je vous dédie ce travail en signe de mon éternel
attachement et amour.

A mon frère et mes sœurs


Vous étiez toujours la source de ma motivation. Tous mes remerciements ne
vous suffisent pas, vous êtes toujours là pour moi. Votre soutien inconditionnel
et vos encouragements ont été d’une grande aide.

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.

Je vous aime tous

 … Fatma
Remerciements
Le résultat de mon travail est le fruit des efforts des gens qui m’entourent par

leur confiance et leur soutien inestimable.

Je remercie infiniment toute personne ayant contribué de loin ou de près le long

de mon cursus académique.

J’adresse mes vifs remerciements à :

Monsieur Lotfi Ben Romdhane

Pour la confiance qu’il nous a donné ainsi que pour tous ses conseils et son

soutien pour la réalisation de ce projet. Et pour son encadrement technique, qui

m’a guidée avec sa patience et ses directives judicieuses qui m’ont beaucoup

aidé beaucoup dans l’élaboration de ce travail.

Enfin, j’adresse ma reconnaissance à tous mes enseignants de l’Institut

Supérieur d'Informatique et des Technologies de Communication de Hammam

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

de juger mon travail.

 … Fatma
Table des matières

Introduction générale .................................................................................................................. 1

Chapitre 1 : Présentation générale .............................................................................................. 3

Introduction ......................................................................................................................... 4

1. Présentation de l’organisme......................................................................................... 4

1. 1. Les responsables de l'entreprise ........................................................................... 5

1. 2. Cordonnées de l'entreprise ................................................................................... 5

1. 3. Organigramme de l’entreprise .............................................................................. 5

2. Etude du contexte du projet ......................................................................................... 6

2.1. Etude de l’existant ............................................................................................ 6

2.2. Critique de l’existant ........................................................................................ 7

2.3. Objectif du projet .............................................................................................. 7

2.4. Définition de l’API ........................................................................................ 8

3. Choix de la méthode de travail .................................................................................... 9

3.1. Méthodes classiques Vs méthodes agiles ..................................................... 9

3.2. Etude comparatives des méthodes agiles ...................................................... 9

3.3. La méthodologie agile « Scrum » ............................................................... 10

3.3.1. Planification et Processus ....................................................................... 10

3.3.2. Rôle dans l’équipe Scrum ...................................................................... 12

3.3.3. Notre équipe Scrum ................................................................................ 12

Conclusion ........................................................................................................................ 13

Chapitre 2 : Sprint 0 : Lancement du projet ............................................................................. 14

Introduction ....................................................................................................................... 15

1. Spécification des besoins ........................................................................................... 15


1. 1. Les besoins fonctionnels .................................................................................... 15

1. 2. Les besoins non fonctionnels ............................................................................. 17

2. Les formes générales de traitement de langage Natural ............................................ 17

3. Planification des sprints ............................................................................................. 18

4. Modélisation des besoins ........................................................................................... 22

4.1. Identification des acteurs ....................................................................... 22

4.2. Diagramme de cas d’utilisation général ................................................ 23

5. Architecture de l’application ..................................................................................... 24

5.1. Modèle MVC ..................................................................................... 24

5.2. Avantages .......................................................................................... 25

5.3. Inconvénients ..................................................................................... 25

6. Outils et environnement de travail............................................................................. 25

6.1. Environnement matériel ............................................................................................ 25

6.2. Environnement logiciel.............................................................................................. 25

Conclusion ........................................................................................................................ 29

Chapitre 3 : Sprint 1 : Traitement du langage naturel (NLP) ................................................... 30

Introduction ....................................................................................................................... 31

1. Backlog du sprint ....................................................................................................... 31

2. Traitement du Langage Naturel (NLP) ...................................................................... 31

2.1. Définition ........................................................................................................ 31

2.2. Les types de NLP ............................................................................................ 32

2.3. Les avantages de NLP .................................................................................... 32

2.4. Les techniques de NLP ................................................................................... 32

3. Le fonctionnement de traitement du langage naturel ................................................ 33

4. Les taches d’analyse de données ............................................................................. 34

5. Les problèmes d’analyse de données ......................................................................... 35

Conclusion ........................................................................................................................ 36
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU) ...................................... 37

Introduction ....................................................................................................................... 38

1. Backlog du sprint ....................................................................................................... 38

2. NLU (La compréhension du Langage Naturel) ......................................................... 38

3. Le réseau neuronal ..................................................................................................... 39

3.1. Définition .................................................................................................... 39

3.2. Différences entre l’apprentissage supervisé et non supervisé ..................... 40

3.3. Les types du réseau neuronal ...................................................................... 40

4. Le réseau de longue mémoire à court terme (LSTM) ............................................... 41

4.1. Définition............................................................................................... 41

4.2. Structure du réseau LSTM .................................................................... 42

4.3. Avantages .............................................................................................. 44

4.4. Inconvénients ......................................................................................... 44

5. Random Forest ........................................................................................................... 45

5.1. Définition ........................................................................................... 45

5.2. Le fonctionnement de l’algorithme ................................................... 45

5.3. Avantages .......................................................................................... 46

5.4. Inconvénients ..................................................................................... 46

6. Mesure de performances des modelés ....................................................................... 47

6.1. Matrice de confusion ................................................................................................. 47

6.2. Courbe ROC ( Receiver Operating Characteristic) ................................................... 48

Conclusion ........................................................................................................................ 50

Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API ...................................................... 51

Introduction ....................................................................................................................... 52

1. Backlog du sprint ....................................................................................................... 52

2. Analyse et spécification des besoins ......................................................................... 54

2.1. Cas d’utilisation « S’authentifier » ................................................................. 54


2.2. Cas d’utilisation « Gérer son propre commentaire » .................................... 56

2.3. Cas d’utilisation « Gérer les commentaires des autres » ................................ 58

2.4. Cas d’utilisation « Gérer les services » ......................................................... 59

2.5. Cas d’utilisation « Gérer les clients » ............................................................. 61

2.6. Cas d’utilisation « Gérer les commentaires » ................................................. 63

3. Conception ................................................................................................................. 65

3.1. Diagramme de classe .................................................................................. 66

3.2. Diagramme de séquence ............................................................................. 67

4. Réalisation ................................................................................................................. 71

4.1. Interface d’authentification ................................................................... 71

4.2. Interface Gestion des clients .................................................................. 72

4.3. Interface Gestion des commentaires ...................................................... 72

4.4. Interface Classification de commentaire ............................................... 73

4.5. Interface Liste de service ....................................................................... 74

4.6. Interface Modifier un service ................................................................ 74

4.7. Interface Gestion de réponse ................................................................. 75

4.8. Interface Liste des services .................................................................... 75

4.9. Interface Liste des commentaires .......................................................... 76

4.10. Interface Liste des réponses ................................................................. 76

4.11. Interface Ajouter une réponse.............................................................. 77

4.12. Interface Liste des commentaires des autres clients ............................ 77

Conclusion ........................................................................................................................ 78

Conclusion générale ................................................................................................................. 79


Liste des Figures

Figure 1 : Logo de société .......................................................................................................... 4


Figure 2 : Organigramme de ProfVeca ...................................................................................... 6
Figure 3 : Logo du projet « 3almadmoon Services » ................................................................. 7
Figure 4 : Structure de l’API ...................................................................................................... 8
Figure 5 : Processus de développement Scrum ........................................................................ 11
Figure 6 : Diagramme de cas d’utilisation général................................................................... 23
Figure 7 : Architecture logique de la plateforme ..................................................................... 24
Figure 8 : Les taches d’analyse du texte .................................................................................. 34
Figure 9 : Structure du LSTM [6] ............................................................................................ 42
Figure 10 : Structure de porte d’oubli [6] ................................................................................ 42
Figure 11 : Structure de porte d’entrée [6] ............................................................................... 43
Figure 12 : Structure de porte de sortie [6] .............................................................................. 44
Figure 13 : Fonctionnement de Random Forest ....................................................................... 46
Figure 14 : Courbe ROC de LSTM .......................................................................................... 49
Figure 15 : Courbe Roc de Random Forest .............................................................................. 49
Figure 16 : Cas d’utilisation « S’authentifier » ........................................................................ 54
Figure 17 : Cas d’utilisation « Gérer son propre commentaire » ............................................. 56
Figure 18 : Cas d’utilisation « Gérer les commentaires des autres » ....................................... 58
Figure 19 : Cas d’utilisation « Gérer les services » .................................................................. 59
Figure 20 : Cas d’utilisation « Gérer les clients » .................................................................... 61
Figure 21 : Cas d’utilisation « Gérer les commentaires » ........................................................ 63
Figure 22 : Diagramme de classe ............................................................................................. 66
Figure 23 : Diagramme de séquence « S’authentifier » ........................................................... 67
Figure 24 : Diagramme de séquence « ajouter un commentaire » ........................................... 68
Figure 25 : Diagramme de séquence « supprimer un commentaire » ...................................... 69
Figure 26 : Diagramme de séquence « modifier un commentaire » ........................................ 70
Figure 27 : Interface d’authentification .................................................................................... 71
Figure 28 : Interface gestion de client ...................................................................................... 72
Figure 29 : Interface gestion de commentaires ........................................................................ 73
Figure 30 : Interface Classification de commentaire................................................................ 73
Figure 31 : Interface liste de service ........................................................................................ 74
Figure 32 : Interface modifier un service ................................................................................. 74
Figure 33 : Interface gestion de réponse .................................................................................. 75
Figure 34 : Interface liste des services ..................................................................................... 75
Figure 35 : Interface gestion des commentaires ....................................................................... 76
Figure 36 : Interface liste des réponses .................................................................................... 76
Figure 37 : Interface ajouter une réponse ................................................................................. 77
Figure 38 : Interface Liste des commentaires des autres clients .............................................. 77
Liste des tableaux

Tableau 1 : Avantages et inconvénients des méthodes agiles .................................................. 10


Tableau 2 : Notre équipe Scrum ............................................................................................... 12
Tableau 3 : Planification des sprints ........................................................................................ 21
Tableau 4 : Backlog du sprint 1 ............................................................................................... 31
Tableau 5 : Backlog du sprint 2 ............................................................................................... 38
Tableau 6 : Apprentissage supervisé et non supervisé ............................................................. 40
Tableau 7 : Types des réseaux neuronaux ................................................................................ 41
Tableau 8: Matrice de confusion .............................................................................................. 47
Tableau 9 : Résultat des modelés ............................................................................................. 48
Tableau 10 : Backlog du sprint 3 ............................................................................................. 54
Tableau 11 : Description Textuelle de CU : s'authentifier ....................................................... 55
Tableau 12 : Description Textuelle de CU : Gérer son propre commentaire .......................... 57
Tableau 13 : Description Textuelle de CU : Gérer les commentaires des autres ..................... 59
Tableau 14 : Description Textuelle de CU : Gérer les services ............................................... 60
Tableau 15 : Description Textuelle de CU : Gérer les clients .................................................. 62
Tableau 16 : Description Textuelle de CU : Gérer les commentaires ...................................... 65
Glossaire

IA : Intelligence artificielle

NLP : Traitement du langage naturel

NLU : Compréhension du langage naturel

NLG: Génération de langage naturel


Introduction générale

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.

Le premier chapitre « Présentation générale » porte sur la présentation de l’organisme


d’accueil, le cadre du projet et la méthodologie de travail utilisée.

Le deuxième chapitre « Lancement du projet » décrit les besoins fonctionnels et non


fonctionnels de notre application, les formes générales de traitement de langage Natural, la
planification des sprints, la modélisation des besoins, l’architecture, les outils et les
environnements utilisés.

Le troisième chapitre « Traitement du langage naturel (NLP) » regroupe le 1éme Sprint.

Le quatrième chapitre « La compréhension du langage naturel (NLU) » est consacré pour


la présentation du Sprint 2.

Le cinquième chapitre « Conception et Réalisation de l’API » est regroupé pour la


présentation du Sprint 3.

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

Figure 1 : Logo de société

« 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.

L'entreprise prend en charge six services principaux:

✓ Améliorez la qualité du site en utilisant de nouveaux logiciels de développement.


✓ Adopter plusieurs méthodes pour introduire l'informatique en tant que culture dans la
société.
✓ Utilisez un nouveau potentiel technologique puissant dans divers domaines tels que la
conception web et le marketing de réseau.
✓ Créer des sites web dynamiques pour intégrer les attentes des clients et améliorer
l'image de marque.
✓ Utilisez de nouvelles techniques de marketing (e-commerce) avec confidentialité,
fiabilité et efficacité.
✓ Développer des logiciels informatiques liés à la gestion d'entreprise au besoin.

4
Chapitre 1 : Présentation générale

1. 1. Les responsables de l'entreprise

Nasser Abu Alia : FONDATEUR


Entrepreneur avec une connaissance approfondie du marché des TIC.
Bashar Abu Ghannam (MBA,PhD): CO-FONDATEUR
Économiste, expert en données et comportement client.
Feda Nustas (MA,MBA) : CO-FONDATEUR
Expert en marketing, communication numérique et médias sociaux.
Saddam Abu Ghaida : CO-FONDATEUR
Programmeur chevronné et architecture logicielle.
Lotfi Ben Romdhane (Ing.,PhD) : CO-FONDATEUR
Scientifique des données.

1. 2. Cordonnées de l'entreprise

Raison Sociale : Société « ProfVeca» à Sousse.


Forme Juridique: Entreprise privée à caractère développement de logiciels.
Locaux de l'entreprise :
➢ Dans Tunisie : Hammam Sousse
➢ Dans Allemagne : Siemensstraße 23, 76275 Ettlingen
Tél : +49 07243/9475800 /+216 98192060
Fax: +49 07243/9475807
Site web : info@3almadmoon.com

1. 3. Organigramme de l’entreprise

Cet organigramme dans la figure 2 illustre l'organisation fonctionnelle possible à l’intérieur de


la société. Une rubrique verte encadre la direction générale de l’entreprise, sous l’encadré de
la direction générale sont placés deux rectangles violet : service technique qui contient le
service de marketing, comptabilité et le service de ressources humaines en suite le service
technique qui comporte deux service informatique et maintenance.

5
Chapitre 1 : Présentation générale

Figure 2 : Organigramme de ProfVeca

2. Etude du contexte du projet

2.1. Etude de l’existant

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 :

✓ Les formulaires de feedback traditionnels : En intégrant le bouton de rétroaction


dans votre site Web, vous pouvez laisser les clients faire des suggestions
spontanées.
✓ Des questions spécifiques : La fonction de capture d'écran permet à chaque
utilisateur de fournir des commentaires clairs et précis, quel que soit le contexte.
✓ In-page feedback : Les commentaires sur la page sont composés d'une série
d'icônes de satisfaction, qui nous permettent de déterminer rapidement la qualité
du contenu et des fonctionnalités du site.

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.

2.2. Critique de l’existant

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 :

✓ Recueillez les retours clients sans la classe


✓ N'utilisez pas des modèles de classification

2.3. Objectif du projet

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 ».

Figure 3 : Logo 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.

2.4. Définition de l’API

Figure 4 : Structure de l’API

API (Interface de Programmation Applicative) (Application Programming Interface). L'API peut


être résumée comme une solution informatique qui permet aux applications de communiquer entre
elles et d'échanger des services ou des données entre elles. Il s'agit en réalité d'un ensemble de
fonctions qui facilitent, via un langage de programmation, l'accès aux services d'une application.[1]

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

3. Choix de la méthode de travail

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.

3.1. Méthodes classiques Vs méthodes agiles

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.

3.2. Etude comparatives des méthodes agiles

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.

Méthodologies Avantages Inconvénients


• Intégration de client dans • Les clients à exiger de plus
toutes les étapes de en plus de fonctionnalités
Scrum réalisation de projet grâce à la présence dans
• Augmentation de la toutes les étapes de projet

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

Tableau 1 : Avantages et inconvénients des méthodes agiles


En comparant les différentes méthodologies, notre choix va s’orienter vers la méthodologie
Scrum qui assure une amélioration de la qualité du développement vu qu'elle permet de
s’adapter aux changements et aux évolutions des besoins.

3.3. La méthodologie agile « Scrum »

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.

3.3.1. Planification et Processus

Scrum propose une planification de trois niveaux :

❖ Release : la release regroupe un ensemble de sprints et représente une version livrable


prête et testé.

10
Chapitre 1 : Présentation générale

❖ Sprint : Le coeur de Scrum est le Sprint. Il regroupe un ensemble des tâches


élémentaires dans une période de temps déterminée pendant laquelle le travail
spécifique doit être complété.
❖ Quotidien : (Daily Meeting) : C’est une réunion quotidienne se fait au début de la
journée et qui dure à peu près un quart d’heure, son objectif est de déterminer les
missions à court et à moyen terme ainsi que les difficultés rencontrées.

Les étapes de Scrum se résume dans le schéma suivant :

Processus de développement Scrum

Figure 5 : Processus de développement Scrum

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

3.3.2. Rôle dans l’équipe Scrum

➢ Le Product Owner : C’est celui qui est le propriétaire du produit et représente le


client généralement. Son rôle principal est la définition des différents besoins
fonctionnels de produit à développer. Il est responsable de maximiser la valeur du
produit résultant du travail de l’équipe de développement.
➢ Le Scrum Master : C’est le leader de l’équipe Scrum, son rôle est d’assurer la bonne
gestion du Product Backlog. Le Scrum Master aide tout le monde à comprendre la
théorie, les pratiques et les règles de Scrum.
➢ Le Scrum Team : L’équipe de Scrum est composée par des professionnels tel que les
développeurs, les testeurs, les infographistes. La taille optimale de l'équipe de Scrum
doit être suffisamment petite pour rester réactive et accomplir un travail significatif
durant le Sprint.

3.3.3. Notre équipe Scrum

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.

• Développeur : SASSI Fatma


Scrum Team • Intégrateur : SASSI Fatma
• Administrateur Base de données : SASSI Fatma
• Testeur : SASSI Fatma
• Encadrant technique et pédagogique:
Scrum Master M. Lotfi Ben Romdhane

Product Owner • Société d’accueil : ProfVeca

Tableau 2 : Notre équipe Scrum

12
Chapitre 1 : Présentation générale

Conclusion

Ce chapitre a donné l’occasion de présenter dans un premier temps la société « ProfVeca » au


sein de laquelle nous avons réalisé notre projet, puis le contexte et les objectifs du sujet, ainsi
que la méthodologie adoptée pour sa conduite.

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.

1. Spécification des besoins

Cette phase consiste à déterminer les différents besoins fonctionnels et non fonctionnels du
projet.

1. 1. Les besoins fonctionnels

Dans cette étape, nous allons donner les différentes fonctionnalités qu’offrira notre API :

L’API permet à l’administrateur de :


• Gérer les clients :
o Activer un client (activer leurs commentaires et activer les réponses de ses
commentaires)
o Désactiver un client (désactiver leurs commentaires et désactiver les réponses
de ses commentaires)
o Supprimer un client (supprimer leurs commentaires et supprimer les réponses
de ses commentaires)
• Gérer les fournisseurs
o Activer un fournisseur
o Désactiver un fournisseur
o Supprimer un fournisseur
o Consulter le service de chaque fournisseur
• Gérer les commentaires
o Activer un commentaire (activer leurs réponses)
o Désactiver un commentaire (désactiver leurs réponses)
o Supprimer un commentaire (supprimer leur réponses)
o Consulter les réponses de chaque commentaire :
15
Chapitre 2 : Sprint 0 : Lancement du projet

▪ Activer une réponse


▪ Désactiver une réponse
▪ Supprimer une réponse
o Classifier les commentaires par deux modèles différents (LSTM, Random
Forest) selon le choix
L’API permet au fournisseur de service de :
• S'inscrire
• S’authentifier
• Gérer le service :
o Ajouter un service
o Modifier un service
o Supprimer un service
• Lire les commentaires sur son service
• Gérer les réponses sur les commentaires de son service
o Ajouter une réponse
o Modifier sa réponse
o Supprimer sa réponse
L’API permet au client de :
• S'inscrire
• S’authentifier
• Consulter les services de la plateforme
o Consulter les commentaires sur chaque commentaire
• Gérer ses propres commentaires
o Modifier son commentaire
o Supprimer son commentaire
o Consulter les réponses de ce commentaire
▪ Ajouter une réponse
• Gérer les commentaires des autres
o "J'aime"
o "Je n'aime pas"
o Consulter les réponses de ce commentaire
• Ajouter une réponse

16
Chapitre 2 : Sprint 0 : Lancement du projet

1. 2. Les besoins non fonctionnels

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.

2. Les formes générales de traitement de langage Natural


Mathématiquement, on peut dire que la combinaison de NLU (Compréhension du langage
naturel) et NLG (Génération de langage naturel) aboutira à un moteur NLP (Traitement
du langage naturel) qui fonctionne.
▪ NLU prend la compréhension des données basée sur la grammaire, le contexte dans
lequel il a été décidé de l'intention et de l'entité. Des exemples d’application de
compréhension du langage naturel : Systèmes de réponse aux questions /
Exploration des ressources naturelles / Produits pharmaceutiques…

▪ NLG produise un récit facile à comprendre pour l'homme, le format du contenu


doit être décrit (via des modèles, des flux de travail basés sur des règles et des
approches sur l'intention), puis génère des données structurées à partir desquelles la
sortie est créée. Les domaines où la génération de langage naturel peut être d'une
grande utilité: Tableaux de bord Analytics / Chatbots / Création de contenu…
▪ NLP c’est une branche de l'intelligence artificielle qui aide les ordinateurs à comprendre,
manipuler et interpréter le langage humain et convertir le texte en données structurées.
Les domaines où le traitement de langage naturel peut apporter d'énormes utilité:
Analyse de sentiments / Analyse de texte / Classification de e-mail / Correction
automatique…

Dans ce projet nous avons intéressé par la partie NLP et la partie NLU seulement.

17
Chapitre 2 : Sprint 0 : Lancement du projet

3. Planification des sprints

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

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
3 Conception et Team - S’enregistrer s’il n’y a - Je peux 8
Réalisation de pas un compte client ou accéder à la
l’API un compte du fournisseur plateforme.
pour accès à la Pour prédire
plateforme. des données
-S’authentifier s’il a nécessaires
déjà un compte client, dans la
un compte du conduite des
fournisseur ou un projets.
compte -Mettre à jour
d’administrateur les sources de
- Gérer les données et
commentaires : consulter.
• Ajouter un -Activer et
commentaire désactiver les
dans la base des états

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)

Tableau 3 : Planification des sprints

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

4. Modélisation des besoins

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.

4.1. Identification des acteurs

Dans notre API on peut trouver 3 acteurs :

➢ Administrateur
➢ Fournisseur de service
➢ Client

22
Chapitre 2 : Sprint 0 : Lancement du projet

4.2. Diagramme de cas d’utilisation général

Figure 6 : Diagramme de cas d’utilisation général

23
Chapitre 2 : Sprint 0 : Lancement du projet

5. Architecture de l’application

5.1. Modèle MVC

L’architecture du modèle MVC

Figure 7 : Architecture logique de la plateforme

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

• Une grande souplesse


• Une conception claire grâce à la séparation des données
• Responsabilité unique

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)

6. Outils et environnement de travail

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.

6.1. Environnement matériel

Un pc portable pour le développement ayant les caractéristiques suivantes : Un PC ASUS :


• Processeur Intel core i5, 2.8 GHz
• Système d’exploitation Microsoft Windows 10 professionnel 64 bits

6.2. Environnement logiciel

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

Visual Studio Code est un éditeur de code gratuit et open source


qui peut prendre en charge plusieurs langues. Il est développé
par Microsoft pour Windows, Linux et Mac OS.

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

Express Js est un Framework back-end JavaScript pour la


création d'application web basée sur Node.js. Il fournit un
ensemble de méthodes pour traiter les requêtes HTTP et fournit
un système middleware pour étendre ses fonctions.

• React Js

React est une bibliothèque JavaScript open source pour la


création d'interfaces utilisateur spécifiquement pour les
applications monopages. Il est utilisé pour gérer la couche
d'affichage des applications Web et mobiles. React nous permet
également de créer des composants d'interface utilisateur
réutilisables. React a été créé par Jordan Walke, ingénieur
logiciel chez Facebook. React a été déployé pour la première
fois sur le fil d'actualité de Facebook en 2011 et sur
Instagram.com en 2012.

27
Chapitre 2 : Sprint 0 : Lancement du projet

• JavaScript

JavaScript est un langage de programmation basé sur les scripts


et il est employé essentiellement dans les pages web pour
l’interaction avec le client.

• HTML

HTML Est le langage de balise qui aide à la structuration de


contenu des pages web statique ou dynamique il est associé avec
une feuille de style CSS pour l’ajout de styles, des couleurs aux
pages web.

• 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

Tableau 4 : Backlog du sprint 1

2. Traitement du Langage Naturel (NLP)

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 combine la puissance de la linguistique et de l'informatique pour étudier les règles et


la structure du langage, et créer des systèmes intelligents capables de comprendre et
d'analyser le sens du texte et de la parole à travers des algorithmes.

2.2. Les types de 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.

➢ Répondre aux questions


➢ Reconnaissance vocale
➢ Traduction d’un langage à une autre
➢ Analyse de sentiment/ d’opinion
➢ Classification de texte

2.3. Les avantages de NLP

✓ Analyse à grande échelle : Le traitement du langage naturel aide les machines à


comprendre et à analyser automatiquement de grandes quantités des données textuelles
non structurées, telles que les commentaires sur les réseaux sociaux, les tickets
d'assistance client, les commentaires en ligne, les reportages, etc.
✓ Processus automatisés en temps réel : Les outils de traitement du langage naturel
peuvent aider les machines à apprendre à trier et à acheminer les informations
rapidement, efficacement, avec précision et 24 heures sur 24, sans aucune interaction
humaine.
✓ Adapté à votre industrie : Les algorithmes de traitement du langage naturel peuvent être
personnalisés en fonction de vos besoins et de vos normes, tels que les langages
complexes spécifiques à l'industrie, même la satire et les mots mal utilisés.

2.4. Les techniques de NLP

Les deux principales techniques utilisées pour le traitement naturel du langage sont :

❖ L'analyse syntaxique : Identifie la structure syntaxique d'un texte et les relations de


dépendance entre les mots, représentées sur un diagramme appelé arbre d'analyse.

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]

3. Le fonctionnement de traitement du langage naturel

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.

Alors, comment fonctionne ce traitement ?

• 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)

4. Les taches d’analyse de données

Figure 8 : Les taches d’analyse du texte

✓ Segmentation (Tokenisation) : Pour expliquer la segmentation dans le traitement


automatique du langage, nous redéfinissons le concept de «mot» pour inclure le
concept d'unités lexicales de base. Donc à partir de maintenant, un mot peut aussi
représenter des caractères tels que ".", ",", "l’", etc.
Le texte dans son format d'origine peut être considéré comme une simple
séquence de caractères. La segmentation comprend la reconnaissance des mots
de cette séquence afin de les convertir ensuite, cela devient une liste de mots.
Par exemple :

Texte Résultat de segmentation

« nice and professional person » "nice", "and", "professionnel", "person"

Une fois que vous avez la liste de mots, la modification de ceux-ci peut être
une étape utile.

✓ Racinisation ou lemmatisation (Lemmatisation et Stemming) : Cette étape n'est pas


toujours nécessaire et dépend largement On veut terminer. Le but de la lemmatisation est
de minimiser Des mots avec le même sens. Par exemple, vous souhaiterez peut-être

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.

5. Les problèmes d’analyse de données

L'analyse des sentiments est une tâche très complexe avec de nombreux problèmes non résolus.
Voici quelques-uns :

✓ Le traitement des comparaisons et le traitement de la négation : Des mots comme "non",


"not" et "never" sont difficiles à gérer correctement parce que mentionner le mot "not"
dans une phrase avant le mot "good", par exemple, conduira à un sentiment totalement
différent par rapport à une autre phrase qui ne contient que le mot "good".
✓ Le problème de la langue : Dans l’analyse du sentiment, la langue la plus
couramment utilisée est la langue Anglaise, ce qui motive les chercheurs à
travailler sur d’autres langues comme l’Arabe, le Chinois, l’Allemand, etc. Le défi
est de développer des ressources comme des dictionnaires et des corpus pour ces
langues.
✓ L’identification des parties subjectives du texte : Les éléments subjectifs
représentent des contenus porteurs des sentiments. Le même mot peut être
considéré comme subjectif dans une situation, et objectif dans un autre. Par
conséquent, il est difficile de traiter à cette situation et d’identifier les éléments
subjectifs mentionnés dans un texte donné.

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

Ce chapitre est imposé pour l’explication de technologie la compréhension du langage naturel


telle que le réseau neuronal et les différents types. Ensuite, nous intéressons aux modèles
LSTM et Random Forest et nous finir par la mesure de performance de ses modèles.

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

Tableau 5 : Backlog du sprint 2

2. NLU (La compréhension du Langage Naturel)

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)

compréhension du langage naturel se concentre sur la capacité des machines à comprendre le


langage humain. NLU fait référence à un moyen de réorganiser les données non structurées afin que
l'ordinateur puisse les comprendre et les analyser.

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).

Cette technologie de compréhension du langage humain naturel permet aux ordinateurs de


comprendre des commandes sans la syntaxe formelle des langages informatiques et de
communiquer en retour avec les humains dans leurs propres langues. [5]

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.

Cependant, il existe deux méthodes d'apprentissage différentes. Dans le cas d'un


apprentissage supervisé, l'algorithme s'entraîne sur un ensemble de données étiquetées et le
modifie jusqu'à ce que l'ensemble de données puisse être traité pour obtenir le résultat
souhaité. Dans le cas d'un apprentissage non supervisé, les données ne seront pas étiquetées.
Le réseau neuronal analyse l'ensemble de données puis lui indique à quelle distance il se
trouve par rapport au résultat attendu via une fonction de coût. Ensuite, le réseau s'ajuste pour
améliorer la précision de l'algorithme.

39
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU)

3.2. Différences entre l’apprentissage supervisé et non supervisé

Apprentissage supervisé Apprentissage non supervisé


Données d’entrée Utilise les données connues et
étiquetées comme entrées Données inconnues en entrée
Complexité Très complexe Moins de complexité informatique
informatique
Temps réel Utilise l’analyse hors ligne Utilise l’analyse en temps réel des
données
Sous-domaines Classification et régression Exploitation de règles de clustering
et d’association
Précision Produit des résultats précis Génère des résultats modérés
Nombre de classes Nombre de classes connues Le nombre de classes n’est pas
connu

Tableau 6 : Apprentissage supervisé et non supervisé

3.3. Les types du réseau neuronal

Réseaux Définition

CNN suppose une structure spatiale particulière dans


son entrée. En particulier, il suppose que les entrées
Le réseau neuronal à qui sont proches les unes des autres dans l’entrée
convolution (CNN) originale sont sémantiquement liées. CNN est une
séquence de couches, et chaque couche transforme
un volume d’activation en un autre par une fonction
différentiable.

40
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU)

RNN est essentiellement récurrent car il remplit la


même fonction pour chaque entrée de données, et la
Le réseau neuronal récurrent sortie de l'entrée courante dépend du calcul final.
(RNN) Une fois la sortie produite, elle est copiée et
renvoyée au réseau récurrent. Pour prendre une
décision, il considère l'entrée courante et les sorties
apprises de l'entrée précédente.

Le réseau de longue mémoire à court terme (LSTM)


Le réseau de longue mémoire est une extension d'un réseau neuronal récurrent qui
à court terme (LSTM) peut étendre sa mémoire. Par conséquent, il est très
approprié pour apprendre des expériences
importantes qui ont un long délai entre elles.

C’est un algorithme d’apprentissage supervisé utilisé


pour les taches de classification ou de régression.
l’idée générale est de créer plusieurs arbres de
décision de sorte que chaque arbre est construit à
Random Forest partir d'un ensemble aléatoire des données et chaque
arbre prédit un résultat afin que l’algorithme fasse le
fusionnement des prédictions des arbres pour prendre
une décision finale.

Tableau 7 : Types des réseaux neuronaux

4. Le réseau de longue mémoire à court terme (LSTM)

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.

4.2. Structure du réseau LSTM

Figure 9 : Structure du LSTM [6]

➢ Porte d’oubli

Figure 10 : Structure de porte d’oubli [6]

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

Figure 11 : Structure de porte d’entrée [6]

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)

Par conséquent, le produit de deux permettra de ne retenir que les informations


importantes, tandis que les autres informations sont quasiment remplacées par zéro.

➢ Port de sortie

Figure 12 : Structure de porte de sortie [6]

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.

5.2. Le fonctionnement de l’algorithme

Cela fonctionne en quatre étapes:

1. Sélectionnez des échantillons aléatoires de l'ensemble de données donné.


2. Construisez un arbre de décision pour chaque échantillon et obtenez le résultat de la
prédiction de chaque arbre de décision.
3. Effectuez un vote pour chaque résultat prévu.
4. Choisissez le résultat de la prédiction avec le plus de votes comme prédiction finale

45
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU)

Figure 13 : Fonctionnement de Random Forest

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

o Faible performance : Manque de performances par rapport aux autres algorithmes.


Mais parfois, il est nécessaire de choisir entre performance et interopérabilité.
o Risque de sur-apprentissage : L’overfitting c’est-à-dire le sur-apprentissage
(l’algorithme apprend assez de précision sur les données d’entrainement qu’il ne
parvient pas à généraliser un résultat satisfaisant sur de nouvelles données). Pour
éviter cette situation, il est important d'élaguer correctement l'arbre de décision.

46
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU)

6. Mesure de performances des modelés

6.1. Matrice de confusion


La matrice de confusion, c’est un tableau croisé entre les valeurs actuelles et les prédictions.
Cette matrice permet d’identifier 4 catégories de résultats :

- 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

V. Actuel Résultat positif Résultat négatif


V. Prédit

Résultat positif TP FP

Résultat négatif FN TN

Tableau 8: Matrice de confusion

Sensibilité = TPR (Taux de vrai positif)

= TP/(TP+FN)

Spécificité = FPR (taux de faux positif)

= TN/(TN+FP)

47
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU)

LSTM Random Forest

Matrice de confusion [[1271 0] [[1267 4]


[0 233]] [222 11]]

Sensibilité
1 0.85
TPR (Taux de vrai positif)
Spécificité
1 0.7
FPR (taux de faux positif)

Tableau 9 : Résultat des modelés

6.2. Courbe ROC ( Receiver Operating Characteristic)

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é.

- Si AUC proche de 1 : Le modèle a une bonne séparabilité entre les classes


- Si AUC = 0,5 : Le modèle est incapable de séparer entre les classes
- Si AUC proche de 0 : Le modèle prédit que les classes positives sont négatives et
inversement

48
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU)

✓ Le modèle LSTM

Figure 14 : Courbe ROC de LSTM

Le modèle a une bonne séparabilité entre les classes

✓ Le modèle Random Forest

Figure 15 : Courbe Roc de Random Forest

49
Chapitre 4 : Sprint 2 : La compréhension du langage naturel (NLU)

Le modèle est incapable de séparer entre les classes

Conclusion

Ce chapitre est utilisé pour comprendre la norme de compréhension du langage naturel, le


réseau neuronal et les différents types. Après, nous expliquons les modèles utilisés dans le
travail et nous clôturons ce chapitre par la mesure de performance des modèles.

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

base des commentaires les réponses.


• 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
• 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=)

53
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API

Tableau 10 : Backlog du sprint 3

2. Analyse et spécification des besoins

Nous allons modéliser les besoins de Sprint 5 à travers le raffinement des diagrammes de cas
d’utilisation.

2.1. Cas d’utilisation « S’authentifier »

Figure 16 : Cas d’utilisation « S’authentifier »


➢ Description textuelle « S’authentifier »

Nom du cas S’authentifier


Résumer L’utilisateur doit s’authentifier avant d’accéder à la
plateforme.
Acteur Utilisateur
Précondition L’utilisateur du système doit être enregistrer avant de
s’authentifier.

54
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API

1. L’utilisateur accède à l’interface d’authentification


2. L’utilisateur remplie le formulaire
d’authentification en saisissant son login, son mot
Scénario nominal de passe et cliquer sur « Login »
3. Le système vérifie les données saisies
4. L’utilisateur accède à la plateforme

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.

E1 : Les informations entrées sont incorrectes


L’enchainement démarre du point 2 du scénario nominal :
➢ Le système affiche un message d’erreur et indique
Scénario d’erreur que l’un des champs est faux.
E2 : L’utilisateur est bloqué
L’enchainement démarre du point 2 du scénario nominal :
➢ Le système affiche un message d’erreur et indique
que l’utilisateur est bloqué.

Tableau 11 : Description Textuelle de CU : s'authentifier

55
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API

2.2. Cas d’utilisation « Gérer son propre commentaire »

Figure 17 : Cas d’utilisation « Gérer son propre commentaire »

➢ Description textuelle « Gérer son propre commentaire »

Nom du cas Gérer son propre commentaire


Le client de système peut gérer ses propres commentaires à
partir de l'interface client en ajoutant, modifiant et
Résumer supprimant des commentaires, et peut également répondre
aux commentaires.
Acteur Client
➢ Le client 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
commentaires.

56
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API

• Le commentaire est ajouté


Post condition • Le commentaire est supprimé et leurs réponses sera
supprimés.
• Le commentaire est modifié
• La réponse est ajoutée
5. Le client accède à l’interface de gestion des
services
6. Le client clique sur le bouton « Add review » il
remplit le formulaire d’ajout et valide son choix par
cliquer sur le bouton « Add »
7. Le client accède à l’interface de gestion de ses
commentaires et cliquer sur l’icône de modification
Scénario nominal pour modifier le contenu d’un commentaire
Ou bien
Le client clique sur l’icône de la suppression et
supprimer le commentaire et leurs réponses.
Ou bien
Le client clique sur le bouton « Replies » et la liste
des réponses affichée alors il peut ajouter une
réponse sur un commentaire.
8. 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.

Tableau 12 : Description Textuelle de CU : Gérer son propre commentaire

57
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API

2.3. Cas d’utilisation « Gérer les commentaires des autres »

Figure 18 : Cas d’utilisation « Gérer les commentaires des autres »

➢ Description textuelle « Gérer les commentaires des autres »

Nom du cas Gérer les commentaires des autres


Résumer Le client peut gérer les commentaires des autres tels que
peut répondre à un commentaire ça veut dire ajouter une
réponse, mentionner J'aime ou bien je n'aime pas.
Acteur Client
➢ Le client 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
commentaires.
Post condition • La réponse est ajoutée

58
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API

5. Le client accède à l’interface de gestion des


commentaires des autres et la liste des commentaires
sera affichée.
Scénario nominal 6. Le client cliqué sur le bouton « Replies » et la liste
des réponses affichée alors il peut ajouter une réponse.
Ou bien
Cliquez sur l'un des icônes "J'aime", "Je n'aime pas"
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.

Tableau 13 : Description Textuelle de CU : Gérer les commentaires des autres

2.4. Cas d’utilisation « Gérer les services »

Figure 19 : Cas d’utilisation « Gérer les services »

59
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API

➢ Description textuelle « Gérer les services »

Nom du cas Gérer les services


Résumer Le fournisseur peut gérer les services : ajouter, modifier,
supprimer un service.

Acteur Fournisseur de service


➢ Le fournisseur 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 services.

• Le service est ajouté


Post condition • Le service est supprimé
• Le service est modifié

5. Le fournisseur accède à l’interface de gestion des


services
6. Le fournisseur remplie le formulaire d’ajout d’un
service et valide son choix par cliquer sur le bouton
« Add »
Ou bien
Le fournisseur clique sur l’icône de suppression
Scénario nominal pour supprimer un service
Ou bien
Le fournisseur clique sur l’icône de modification
pour modifier le service
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.

Tableau 14 : Description Textuelle de CU : Gérer les services

60
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API

2.5. Cas d’utilisation « Gérer les clients »

Figure 20 : Cas d’utilisation « Gérer les clients »

➢ Description textuelle « Gérer les clients »

Nom du cas Gérer les clients


Résumer L’administrateur peut gérer les clients : activer, désactiver
ou bien supprimer un client.

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

• Le client est activé, leurs commentaires sont activés


et les réponses de ses commentaires sont activés.
• Le client est désactivé, leurs commentaires sont
Post condition désactivés et les réponses de ses commentaires sont
désactives.
• Le client est supprimé, leurs commentaires sont
supprimés et les réponses de ses commentaires sont
supprimées.
5. L’administrateur accède à l’interface de gestion des
clients
6. L’administrateur du projet coché l’icône
d’activation pour activer un client et
automatiquement leurs commentaires et les
réponses de ce commentaire ça sera activer.
Ou bien
Scénario nominal L’administrateur du projet décoché l’icône
d’activation pour désactiver un client et
automatiquement leurs commentaires et les
réponses de ce commentaire ça sera désactiver.
Ou bien
L’administrateur clique sur l’icône de suppression
pour supprimer un client et automatiquement leurs
commentaires et les réponses de ce commentaire ça
sera supprimer.
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.

Tableau 15 : Description Textuelle de CU : Gérer les clients

62
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API

2.6. Cas d’utilisation « Gérer les commentaires »

Figure 21 : Cas d’utilisation « Gérer les commentaires »

➢ Description textuelle « Gérer les commentaires »

Nom du cas Gérer les commentaires


Résumer L’administrateur peut gérer les commentaires : activer,
désactiver, supprimer, gérer leurs réponses et gérer
l’émotion du commentaire.
Acteur Administrateur

63
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API

➢ 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
commentaires.

• Le commentaire est activé


Post condition • Le commentaire est désactivé
• Le commentaire est supprimé et leurs réponses sera
supprimées.
• La réponse est activée
• La réponse est désactivée
• La réponse est supprimée
• Classifier le commentaire par le modèle LSTM
• Classifier le commentaire par le modèle Random
Forest
5. L’administrateur accède à l’interface de gestion des
commentaires
6. L’administrateur du projet coché l’icône
Scénario nominal d’activation pour activer un commentaire et
automatiquement leurs réponses ça sera activer.
Ou bien
L’administrateur du projet décoché l’icône
d’activation pour désactiver un commentaire et
automatiquement leurs réponses ça sera désactiver.
Ou bien
L’administrateur clique sur l’icône de suppression
pour supprimer un commentaire et
automatiquement leurs réponses sera supprimées.
Ou bien
L’administrateur clique sur le bouton « Replies » et
la liste des réponses du commentaire affiché et peut
activer, désactiver ou bien supprimer une réponse.

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.

Tableau 16 : Description Textuelle de CU : Gérer les commentaires

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

3.1. Diagramme de classe

La figure ci-dessous, présente le diagramme de classe élaboré pour notre application

Diagramme de classe

Figure 22 : Diagramme de classe

66
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API

3.2. Diagramme de séquence

▪ Diagramme de séquence « S’authentifier »

Figure 23 : Diagramme de séquence « S’authentifier »

La figure ci-dessus montre le diagramme de séquence système du cas d'utilisation «


S’authentifier ». Cette étape suit les étapes suivantes:

❖ Une fonction d'authentification envoyé au système avec le login et le mot de passe


❖ Le système vérifie les informations entrées, et les informations nécessitent un
fragment alternatif divisé en deux parties.
❖ Si l'authentification échoue, un autre fragment alternatif sera affiché
• Si les deux paramètres sont incorrects, un message d’erreur s’affiche

67
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API

• Si l’utilisateur est bloqué, un message d’erreur s’affiche


❖ Si l'authentification est réussie, l'utilisateur visite la page d'accueil de la plateforme

▪ Diagramme de séquence « ajouter un commentaire »

Figure 24 : Diagramme de séquence « ajouter un commentaire »

La figure ci-dessus montre le diagramme de séquence système du cas d'utilisation « ajouter un


commentaire ». Cette étape suit les étapes suivantes:

❖ Une fonction d’ajout « post » envoye au système avec l’identifiant du client et


l’identifiant de service, une autre fonction d’ajout envoye aussi

68
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API

« postReviewCustomer » avec l’identifiant de client et l’identifiant de commentaire


ajouter pour insère cette commentaire dans le table client. En plus, une autre fonction
envoyer « postReviewService » avec l’identifiant de service et l’identifiant de
commentaire ajouter pour insère cette commentaire dans le table service.
❖ Le système vérifie les informations entrées, et les informations nécessitent un
fragment alternatif divisé en deux parties :
• Si l’ajout est échoué, un message d’erreur s’affiche
• Si l’ajout est réussi, la liste des commentaires est modifiée.

▪ Diagramme de séquence « Supprimer un commentaire »

Figure 25 : Diagramme de séquence « supprimer un commentaire »

69
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API

La figure ci-dessus montre le diagramme de séquence système du cas d'utilisation « supprimer


un commentaire ». Cette étape suit les étapes suivantes:

❖ Une fonction de suppression « delete » envoyer au système avec l’identifiant du


commentaire, une autre fonction de suppression « deleteReplyByReview » envoyer au
système avec l’identifiant du commentaire et l’identifiant de réponse pour supprimer
les réponses de ce commentaire et une fonction de suppression
« deleteReviewCustomer » avec l’identifiant du commentaire et l’identifiant de client
envoyer au système pour supprimer l’identifiant de commentaire dans le table client.
❖ Le système vérifie les informations entrées, et les informations nécessitent un
fragment alternatif divisé en deux parties :
• Si la suppression échoue, un message d’erreur s’affiche
• Si la suppression est réussie, la liste des commentaires est modifiée

▪ Diagramme de séquence « modifier un commentaire »

Figure 26 : Diagramme de séquence « modifier un commentaire »

70
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API

La figure ci-dessus montre le diagramme de séquence système du cas d'utilisation « modifier


un commentaire ». Cette étape suit les étapes suivantes:

❖ Une fonction de modification « put » envoyer au système avec l’identifiant du


commentaire et les données modifiées
❖ Le système vérifie les informations entrées, et les informations nécessitent un
fragment alternatif divisé en deux parties :
• Si la modification échoue, un message d’erreur s’affiche
• Si la modification est réussie, la liste des commentaires est modifiée

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.

4.1. Interface d’authentification

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.

Figure 27 : Interface d’authentification

71
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API

4.2. Interface Gestion des clients

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.

Figure 28 : Interface gestion de client

4.3. Interface Gestion des commentaires

L’administrateur peut gérer les commentaires de l’application, peut supprimer, activer ou


désactiver un commentaire et automatiquement le statut de leurs réponses sera modifié, peut
aussi consulter leurs réponses et permet aussi de classifier le commentaire selon deux
modèles.

72
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API

Figure 29 : Interface gestion de commentaires

4.4. Interface Classification de commentaire

L'administrateur peut classifier le commentaire selon leur sens (négatif, positif) à partir de
deux modèles LSTM ou bien Random Forest.

Figure 30 : Interface Classification de commentaire

73
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API

4.5. Interface Liste de service

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

Figure 31 : Interface liste de service

4.6. Interface Modifier un service

Figure 32 : Interface modifier un service

74
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API

4.7. Interface Gestion de réponse

Le fournisseur peut gérer les réponses qu’ajoute de telle sorte que peut le modifier ou bien le
supprimer.

Figure 33 : Interface gestion de réponse

4.8. Interface Liste des services

Lorsque le client authentifie une liste des services sera affiché et peut dons ajouter un
commentaire.

Figure 34 : Interface liste des services

75
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API

4.9. Interface Liste des commentaires

Le client gérer son commentaire, peut le modifier, le supprimer et peut aussi consulter les
réponses c de cette commentaire.

Figure 35 : Interface gestion des commentaires

4.10. Interface Liste des réponses

Lorsque le client consulte les réponses une liste sera affichée et peut aussi ajouter une
réponse.

Figure 36 : Interface liste des réponses

76
Chapitre 5 : Sprint 3 : Conception et Réalisation de l’API

4.11. Interface Ajouter une réponse

Figure 37 : Interface ajouter une réponse

4.12. Interface Liste des commentaires des autres clients

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

Figure 38 : Interface Liste des commentaires des autres clients

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-

application-programming-interface-definition-traduction/ (Consulter le 02/02/2020)

[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-

utiliser-intelligence-artificielle/ (Consulter le 23/07/2020)

[4] https://monkeylearn.com/natural-language-processing/ (Consulter le 07/10/2020)

[5] https://www.lemagit.fr/definition/Comprehension-du-langage-naturel-CLN (Consulter le

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

Vous aimerez peut-être aussi