SlideShare une entreprise Scribd logo
Ministère de l’Enseignement Supérieur
et de la Recherche Scientifique
****
Université de Sousse
****
Ecole Supérieure des Sciences et de la Technologie de Hammam Sousse
Licence Appliquée en Sciences et Technologies de
l'Information et de la Communication
Rapport de Stage de Fin d’Etudes
Conception et Développement d’une application web pour la
personnalisation d’un chatbot Facebook
Réalisé par : Wassim Omrani
Zoubeyr Sahraoui
Soutenu le 27/07/2021, devant le jury composé de :
Rapporteur : Mme Améni Radhouane
Encadrant universitaire : Mme Samia Ben Ismail
Année Universitaire : 2020-2021
REMERCIMENTS
Tout d’abord, nous tenons à remercier Dieu le Tout-Puissant qui nous a donné la puissance afin
d’accomplir ce travail modeste.
En second lieu, nous tenons à remercier mes professeurs pour la qualité de l'enseignement qu'ils
m'ont assurée durant ces 3 dernières années à l'école. Je remercie particulièrement mon encadrant
universitaire " Mme Samia ben Ismail " qui m'a encouragé pour réaliser ce projet ainsi que nos
parents qui pour leur soutien inconditionnel, à la fois moral et économique.
Nous exprimons tous nos remerciements à Mme ElHamdi Nadia notre superviseur a la société
SPIMOB, d’avoir répondu à toutes nos questions et nous avoir fourni les informations
nécessaires à la réalisation de l’application.
Tous mes vœux de bonheur et de succès dans ta vie personnelle et professionnelle à mes amis et
mes collègues qui m'ont soutenu et encouragé, MERCI énormément pour la bonne compagnie, la
bonne humeur et les bons moments passés.
Finalement, nous remercions les membres des jurys et pour l’honneur qu’ils nous ont fait d’avoir
voulu examiner et évaluer ce travail.
Wassim & Zoubeyr
DEDICACE
Je dédie ce travail à mes parents pour tous leurs sacrifices, leur amour, leur tendresse, leur soutien
et leurs prières tout au long de mes études
À ma mère à qui je dois ma réussite et qui a sacrifié pour m'offrir les conditions propices pour
que je puisse réaliser mes études. Tes conseils permanents m’ont appris beaucoup de choses
toutes ces années. Les mots ne suffisent pas pour exprimer combien je suis reconnaissant à tes
efforts. Je voulais te dire MERCI d’avoir été et d’être,
À mon cher père, j’ai un énorme respect pour toi, MERCI d’avoir tout fait pour me garder dans
le droit chemin. Merci aussi d’avoir été, depuis mes premières minutes sur Terre jusqu’à
aujourd’hui, mon plus grand support dans la vie. J'espère que ce travail sera la récompense de
plusieurs années de sacrifice et de dévouement.
À ma grande sœur, MERCI d'être une sœur si merveilleuse, MERCI d'avoir partagé avec moi
tant des moments de joie et de bonheur, ta tendresse est un trésor. À mon binôme de ce projet et
mon binôme de logement à la fois.
Wassim
DEDICASE
Je dédie ce travail à mes parents pour tous leurs sacrifices, leur amour, leur tendresse, leur soutien
et leurs prières tout au long de mes études
À l'âme de ma mère, décédée très tôt, à la femme exceptionnelle qui a sacrifié sa vie pour sa
famille, qui m'a toujours poussé vers l'avant, qui m'a toujours soutenu et qui m'a toujours aidé à
avancer et à réaliser mes rêves. J'ai tant voulu qu'elle assiste aujourd'hui au résultat de plusieurs
années d'amour et d'affection. J'espère que de là-haut tu es fière de moi et que ton âme repose en
paix.
À mon cher père, ma source de noblesse, de courage et d'affection. Qui m'a appris à vivre et qui
ne cesse pas de me conseiller et de me diriger vers le bon chemin. Vous avez toujours été mon
école de patience et de persévérance. Que ce travail traduit ma gratitude et mon respect le plus
profond aux efforts que vous avez déployés durant toutes ces années.
À mon frère qui a toujours était à mes côtés et qui m'encourage à chaque fois que j'avais besoin.
Aucune dédicace ne peut exprimer mon amour et ma gratitude de t'avoir comme frère. Tu es le
grand frère qui assure son rôle comme il faut, je n'oublierai jamais ton coup d'épaule. Je te
souhaite une vie pleine de joie et de bonheur.
Zoubeyr
Table des matières
Liste des figures ..............................................................................................................................7
Liste des tableaux ...........................................................................................................................8
Introduction générale.....................................................................................................................9
Chapitre 1 : PRESENTATION GENERALE ET ETUDES PRELIMINIAIRE...................11
1. Introduction .......................................................................................................................12
2. Présentation du cadre de projet de fin d’études.............................................................12
2.1 Présentation de l’organisme de Stage.....................................................................................................12
2.2 Présentation du Projet............................................................................................................................. 14
2.2.1 Problématique....................................................................................................................................14
2.2.2 Objectifs de Projet ............................................................................................................................. 14
3. Agents conversationnels (Chatbot)..................................................................................14
3.1 Définition Chatbot..................................................................................................................................14
3.2 Types chatBots.......................................................................................................................................15
4. Etude de l’existant.............................................................................................................15
4.1 Système actuel........................................................................................................................................16
4.2 Critique de l’existant .............................................................................................................................. 17
4.3 Solutions proposées................................................................................................................................ 17
5. Capture des besoins...........................................................................................................18
5.1 Capture des besoins fonctionnels ...........................................................................................................18
5.2 Capture des besoins non fonctionnels ....................................................................................................19
6. Méthodologies de développement ....................................................................................19
6.1 Présentations de quelques méthodologies .............................................................................................. 19
6.2 Méthodologie adoptée............................................................................................................................ 20
6.3 Planning Prévisionnel............................................................................................................................. 21
7. Conclusion..........................................................................................................................21
Chapitre 2 : Etude Conceptuelle.................................................................................................22
1. Introduction .......................................................................................................................23
2. L’architecture de l’application ........................................................................................23
2.1 Le Modèle MVC ....................................................................................................................................23
3. Méthodologie de conception .............................................................................................24
3.1 Langage de modélisation UML..............................................................................................................24
4. Conception détaillée ..........................................................................................................25
4.1 Diagramme de cas d’utilisation..............................................................................................................25
4.1.1 Identification des acteurs ...................................................................................................................25
4.1.2 Identification des cas d’utilisation .....................................................................................................25
4.1.3 Diagramme des cas d’utilisation globale ........................................................................................... 26
4.1.4 Diagramme des cas d’utilisation pour la gestion des ChatBots.............................................................. 26
4.1.5 Description textuelle.......................................................................................................................... 26
4.2 Diagramme de classe.............................................................................................................................. 29
4.2.1 Dictionnaire de données..................................................................................................................... 30
4.2.2 Présentation du diagramme de classe.................................................................................................33
4.3 Diagramme de séquence......................................................................................................................... 34
4.3.1 Authentification .................................................................................................................................34
4.3.2 Automatiser un ChatBot ....................................................................................................................35
4.3.3 Suppression d’un chatbot...................................................................................................................35
4.3.4 Configurer d’un chatbot..................................................................................................................... 37
5. Conclusion..........................................................................................................................37
Chapitre3 : Réalisation de projet................................................................................................38
1. Introduction .......................................................................................................................39
2. Environnement de développement ..................................................................................39
2.1 Environnement Matériel......................................................................................................................... 39
2.2 Environnement Logiciel......................................................................................................................... 40
3. Présentation de l’application web « Chatbot.tn » ..........................................................42
3.1 Interface d’authentification ....................................................................................................................43
3.2 Page d’accueil ........................................................................................................................................43
3.3 Interface d’Automatisation..................................................................................................................... 44
3.4 Exporter la personnalisation...................................................................................................................45
3.5 Enregistrement de la personnalisation....................................................................................................45
3.5.1 Insertion .............................................................................................................................................45
3.5.2 Modification d’une personnalisation déjà enregistrée .......................................................................47
4. Conclusion..........................................................................................................................47
Conclusion générale .....................................................................................................................48
Annexe sur Traitement automatique des langues naturelles ...................................................50
1. Traitement automatique du Langage Naturel................................................................51
2. Définition du Spacy ...........................................................................................................52
3. Installation .........................................................................................................................52
4. Exemple du traitement des différentes étapes TALN avec Spacy ................................52
4.1 Tokenisation des mots (Word tokenization)........................................................................................... 52
4.2 Tokenisation des phrases (Sentence tokenization) .................................................................................53
4.3 Enlever les mots les plus fréquents (Stop words)...................................................................................53
4.4 Etiquetage morpho-syntaxique (Part Of Speech POS)...........................................................................54
4.5 Stemming (Lemmatization)....................................................................................................................55
4.6 Reconnaissance d’entités nommées (Entity Recognition NER)............................................................. 55
4.7 Vecteur par mot (Word Vector) .............................................................................................................56
4.8 Similarité des phrases (Computing Similarity) ...................................................................................... 57
4.9 Fréquence des mots (words frequency)..................................................................................................58
Bibliographie.................................................................................................................................59
Liste des figures
Figure 1: Logo de l'organisme de stage......................................................................................13
Figure 2: Emplacement géographique de l'entreprise Spimob................................................13
Figure 3: Le fonctionnement d'un chatbot ................................................................................15
Figure 4: Solution actuelle de personnalisation du bot.............................................................16
Figure 5: Fonctionnement Messenger d’un bloc .......................................................................16
Figure 6: Fonctionnement Messenger d'un menu.....................................................................17
Figure 7: Présentation de déroulement de méthodologie Scrum.............................................21
Figure 8: Diagramme de Gantt...................................................................................................21
Figure 9: Représentation des interactions entre le modèle, la vue et le contrôleur dans le cas
d'une application web. .................................................................................................................24
Figure 10: Logo UML ..................................................................................................................24
Figure 11:Diagramme de cas d'utilisation global......................................................................26
Figure 12: Diagramme de cas d'utilisation pour la gestion des chatBots ...............................26
Figure 13: Diagramme de classe global......................................................................................33
Figure 14: Diagramme de séquence : Authentification ............................................................34
Figure 15: Diagramme de séquence : Automatisation d'un chatbot .......................................35
Figure 16:Diagramme de séquence : Suppression d'un chatbot..............................................36
Figure 17: Diagramme de séquence : Configuration d'un chatbot .........................................37
Figure 18: Logo Angular .............................................................................................................40
Figure 19 : Logo NodeJS ............................................................................................................41
Figure 20: Logo PostgreSQL.......................................................................................................41
Figure 21: Logo Postman.............................................................................................................41
Figure 22: Logo GanttProject .....................................................................................................42
Figure 23: Logo de l'application .................................................................................................42
Figure 24: Interface d'authentification ......................................................................................43
Figure 25:Interface d'accueil.......................................................................................................43
Figure 26:Interface de personnalisation de chatBots................................................................44
Figure 27:Liste des éléments .......................................................................................................44
Figure 28: Exporter la personnalisation ....................................................................................45
Figure 29 Table vide.....................................................................................................................45
Figure 30: Enregistrement d'une personnalisation...................................................................46
Figure 31: Enregistrement dans la base de données .................................................................46
Figure 32:Modification de la personnalisation..........................................................................47
Liste des tableaux
Tableau 1: Présentation de quelques méthodologies ................................................................20
Tableau 2: Cas d'utilisation associé au Client ...........................................................................25
Tableau 3: Cas d’utilisation : Authentification .........................................................................27
Tableau 4: Cas d’utilisation : Gérer les chatBots......................................................................27
Tableau 5: Cas d’utilisation : Consulter les abonnées..............................................................28
Tableau 6: Cas d’utilisation : Consulter les abonnées..............................................................28
Tableau 7: Cas d’utilisation : Consulter les messages ..............................................................29
Tableau 8: Cas d’utilisation : Demander un pack ....................................................................29
Tableau 9: Dictionnaire de données ...........................................................................................32
Tableau 10: Environnement matériel.........................................................................................39
Introduction générale
Introduction générale
10
Après avoir atteindre la troisième année de la Licence Appliquée en Sciences et Technologies de
l’Information et la Communication, un projet final doit être achevé. Notre sélection se réfère à la
conception et le développement d’application web.
Après de nombreuses recherches et demandes de stage, nous avons réussi à obtenir l'approbation
de la direction de l'entreprise SPIMOB. Nous nous sommes lancés dans l’amélioration d’une
application web de vente de chabot.
C’est dans ce cadre que notre projet consiste à créer une application web qui sert à la
personnalisation du chatbot Facebook. Pour cela ce rapport définit les phases de mise en œuvre de
ce projet en se basant sur 3 chapitres :
• Le premier chapitre Présentation générale et étude préliminaire qui met en valeur le
cadre général du projet. Premièrement, présenter l’organisme de stage et dégager la
problématique ainsi que les solutions proposées, agents conversationnels, étude de
l’existant, besoins fonctionnels et finalement le planning prévisionnel.
• Le deuxième chapitre Etude conceptuelle nous présenterons une modélisation
conceptuelle détaillée de notre application et nous le clôturons par les différents
diagrammes
• Le troisième chapitre Réalisation de l’application qui définit les plusieurs méthodologies
de travail ainsi l’implémentation d’application en se basant sur des imprime écrans.
Notre rapport se termine par une conclusion générale et quelques perspectives.
Chapitre 1 :
PRESENTATION
GENERALE ET ETUDES
PRELIMINIAIRE
Chapitre 1 : Présentation générale et études préliminaire
12
1. Introduction
Ce chapitre couvre d'abord la présentation de l’organisme d’accueil, l’étude de l’existant qui
regroupe les parties qui permettent d’analyser l’existant et nous dégageons les critiques du système
actuel afin de développer une application web plus optimale dans le futur. Ensuite, examiner les
parties qui permettent de définir le champ de l’étude et le planning prévisionnel. Et enfin, nous
décrivons les objectifs à atteindre et les avantages de l’application.
2. Présentation du cadre de projet de fin d’études
Le travail élaboré dans ce rapport a été effectué dans le cadre d’un projet de fin d’études en vue de
l’obtention de Diplôme National de Licence Appliquée en Sciences et Technologies de
l’Information et de la Communication à Ecole Supérieure de Sciences et Technologies Hammam-
Sousse (ESSTHS), et a été réalisé à SPIMOB. Dans ce qui suit, nous détaillerons le cadre de notre
projet de fin des études.
2.1 Présentation de l’organisme de Stage
SPIMOB est une startup fondée en 2018. Elle est spécialisée dans le domaine de l'intelligence
artificielle et des applications mobiles éducatives.
Depuis sa création, SPIMOB s'est donnée pour mission de faire bénéficier de son savoir-faire en
intelligence artificielle et technologique à chacun de ses clients.
Les collaborateurs assurent un accompagnement individuel pour aider les clients à mettre en place
leurs stratégies. Réaliser des plateformes d'intelligence artificielle dédiée aux différents domaines
(finance, santé, éducation, transport...) est un objectif parmi tant d'autres pour SPIMOB.
Les réalisations d'applications SPIMOB se trouvent sur le site afrikamob.com. Parmi ses
réalisations web :
- www.engineer.tn
- www.oit.org.tn
- www.chatbot.tn
Chapitre 1 : Présentation générale et études préliminaire
13
Figure 1: Logo de l'organisme de stage
Fiche technique
Activité principale : Développement informatique basé sur l’intelligence artificielle
Taille de l’entreprise : 1-10 employés
Téléphone : +216 51 11 91 11
E-mail : contact@spimob.com
Web : https://www.spimob.io/
Type : Entreprise individuelle
Date de création : 2018
Figure 2: Emplacement géographique de l'entreprise Spimob
Chapitre 1 : Présentation générale et études préliminaire
14
2.2 Présentation du Projet
Le but principal de notre projet est de concevoir et mettre en œuvre une solution plus dynamique
de personnalisation d’un chatbot et l’intégration de l’apprentissage automatique du bot.
2.2.1 Problématique
De nos jours, grâce à l’évolution technologique la digitalisation devient un facteur fondamental
pour les personnes physiques et morales pour fournir un service de communication plus adopté.
D’où les chatbot ont fait ses preuves comme un outil solide pour effectuer cette tâche. Par contre
la personnalisation d’un tel outil est difficile ce qui empêche plusieurs individus à pouvoir utiliser
ce service.
2.2.2 Objectifs de Projet
L’objectif de ce projet consiste à développer et concevoir une page de personnalisation de chatbot
ainsi que l’apprentissage du bot.
▪ Utilisation d’une méthode Flowchart pour la facilitation de personnalisation
▪ L’ajout de l’apprentissage automatique au bot pour améliorer son rendement (NLP)
▪ Optimiser l’application web afin d’avoir un temps de réponse plus réduit.
3. Agents conversationnels (Chatbot)
Dans cette section, nous déterminons de façon détaillée et précise ce qu’est le chatbot et ce qui
devrait faire, ainsi que son rôle par rapport au service clientèle. Pour satisfaire de besoins réels qui
se font ressentir du côté client et aussi de côté société, la mise en place d’un chatbot est
indispensable.
3.1 Définition Chatbot
Afin d’élaborer une conversation entre homme et machine, cette conversation en langage naturel
existe et on l’appelle communément un chatbot ou agent conversationnel. Cette interface homme-
machine est influencée par la compétition sur le test de Turing 1
.
1
Donner l'illusion qu'un programme pense par un dialogue sensé.
Chapitre 1 : Présentation générale et études préliminaire
15
Cet outil est aujourd’hui largement utilisé par le service client des marques et des commerçants
en ligne via la messagerie instantanée. Afin de répondre au mieux aux besoins spécifiques des
internautes, tels que l’obtention d’information sur un certain sujet, la réservation, la commande,
la recherche, etc.
Un chatbot est donc une application conçue pour automatiser des tâches ou simuler des
conversations. Grâce à un ensemble de réponses préenregistrées, ce programme informatique peut
donc lire des messages (email, SMS, Chat, etc.) et y répondre en quelque seconde
Figure 3: Le fonctionnement d'un chatbot
3.2 Types chatBots
Les ChatBots sont classés selon leur connaissance :
• Les bots de reformulation : Ce sont les bots sans aucune connaissance qui sert à seulement
reformuler les questions.
• Les bots simples : Ce sont les bots qui se limitent à répondre uniquement aux questions déjà
configurer par son administrateur
• Les bots intelligents : Ce sont les bots qui apprennent de son interlocuteur et mémoriser les
informations
4. Etude de l’existant
L’étude de l’existant est une phase très importante dans le projet, elle consiste à mettre à plat de
façon aussi claire que possible le fonctionnement du système actuel. Cette étude permet de faciliter
la reconnaissance des besoins. Le but de cette section est de déduire les insuffisances ou problèmes
afin d’améliorer la qualité du service clientèle.
Chapitre 1 : Présentation générale et études préliminaire
16
4.1 Système actuel
Au sein de notre organisme de stage, SPIMOB dispose une solution de personnalisation d’un agent
conversationnel compliqué ou il s’agit de configurer les blocs et les menus. Les blocs sont
l’ensemble de messages/réponses définit par les éléments fournit par l’application et automatisé
par le client selon son besoin et les menus leur rôle essentielle d’aider les utilisateurs à découvrir
et à accéder plus facilement à des fonctionnalités tout au long de la conversation (catalogue, les
prix, etc.).
Figure 4: Solution actuelle de personnalisation du bot
Figure 5: Fonctionnement Messenger d’un bloc
Chapitre 1 : Présentation générale et études préliminaire
17
Figure 6: Fonctionnement Messenger d'un menu
4.2 Critique de l’existant
chatbot.tn cible d’agrandir la marge des utilisateurs où les chatbot Facebook devient un service
plus demandé. Par contre nous distinguons que la solution existante de personnalisation d’un
chatbot lutte quelques utilisateurs de bénéficier de ce service à cause de sa complexité. Nous
remarquons que chaque utilisateur doit configurer les listes des blocs, liste des menus et les
messages ce qui est difficile pour quelqu’un. Ainsi le système actuellement adopté n’assure pas la
disponibilité de réponses aux questions de client qui peut impliquer un grand temps d’attente peut
dépasser le temps voulu.
4.3 Solutions proposées
Afin de résoudre ces différents problèmes, on a proposé une solution qui consiste à la création
d’une deuxième méthode de personnalisation de chatbot :
• Faciliter la tâche à l’utilisateur en utilisant une méthode Flowchart plus simple (drag/drop)
De plus l’intégration de l’apprentissage automatique du bot afin d’améliorer son rendement :
Chapitre 1 : Présentation générale et études préliminaire
18
• Implémenter le traitement automatique des langues2
(NLP) aux agents conversationnels
5. Capture des besoins
Cette partie va servir à poser les bases du recueil des besoins du système à réaliser. Pour pouvoir
clarifier les besoins des utilisateurs de notre application, nous allons présenter les besoins
fonctionnels et les besoins non fonctionnels.
5.1 Capture des besoins fonctionnels
Dans cette partie, on va donner les différentes fonctionnalités qu’offrira Chatbot.tn. La solution
proposée nous permet de définir les rôles de l’acteur principal « Client » qui utilise cette application
web :
• Authentification : le client peut s’inscrire ou se connecter en utilisant Facebook.
• Consulter les notifications : le client peut consulter les notifications concernant ses bots
(création, suppression…etc.)
• Consulter les nombres des abonnés : Le client peut consulter le nombre d’abonnés qui
utilisent sont bots.
• Gérer les chatbot :
- Le client peut construire un chatbot personnalisé. En effet, il choisit les éléments ajoutés
dans son chatBot selon son besoin.
- Le client peut configurer son chatbot par l’intégrer dans n’importe page Facebook qu’il
possède
- Le client peut automatiser son chatbot selon son choix en utilisant les éléments fournis par
l’application
- Le client peut ajouter/supprimer des chatbot selon son choix
• Demander des packs : le client peut acheter un pack de l’application afin d’améliorer le
service des bots.
2
Une technologie qui permet aux machines de comprendre la langue humaine grâce à l’intelligence artificielle
Chapitre 1 : Présentation générale et études préliminaire
19
5.2 Capture des besoins non fonctionnels
Pour améliorer le rendement de l’application, elle doit répondre à quelques exigences non
fonctionnelles
• La Disponibilité : L’application doit être toujours disponible et fonctionnelle à tout
moment pour l’utilisateur.
• L’Accessibilité : Il suffit d’utiliser un navigateur web depuis un smartphone, tablette, pc
pour accéder à l’application
• La Performance : L’application doit être efficace, le temps de réponse doit être réduit et
les fonctionnalités doivent répondre à tous les besoins de l’utilisateur d’une manière
optimale.
• La Sécurité : L’application doit assurer la sécurité des clients par une authentification et
garantir la cohérence de leurs données.
• La Robustesse : L’application doit stocker toutes les informations des utilisateurs inscrits
et garantir une bonne gestion d’erreurs.
• L’homogénéité de l’interface graphique : L’application doit être bien organisée pour
permettre la mise en valeur rapide des informations
6. Méthodologies de développement
Le choix d’une méthodologie de développement est une phase essentielle pour garantir la qualité
de travail et éviter tout problème au niveau des délais. C’est pour cela on doit adapter une
méthodologie efficace qui permet de gérer le cycle de vie d’un projet.
6.1 Présentations de quelques méthodologies
Les méthodologies de développement se diverse selon le besoin de chaque projet ou les
méthodologies classiques sont souvent utilisés lors d’un projet avec un planning bien détaillé et
une anticipation de la totalité de risque possible. Cependant, les méthodologies agiles ont les
choisit souvent pour les gros projets ou ils offrent une meilleure adaptabilité, gestion de risque et
visibilité.
Chapitre 1 : Présentation générale et études préliminaire
20
Le tableau suivant montre une présentation de quelques méthodologies.
Méthodes Classiques Méthodes Agiles
Méthode en cascade :
Cascade est une méthodologie qui conseille de
dérouler ses tâches d’une manière séquentielle
et chaque phase possède une date de fin (pour
passer à la tache suivante que lorsque la
précédente est terminer)
XP :
XP est une méthodologie de gestion de projet
qui obéit les principes du développement
agile, se concentrer sur tous les besoins du
client, placer un développement itératif et
l'intégration continue
Méthode en V :
V est une méthodologie inspirée de cascade
ou les tâches se déroulent d’une manière
séquentielle et le test de produit se fait en
parallèle
Scrum :
Scrum est une méthodologie qui sert à
découper le projet en boîte de temps nommée
« Sprints », la durée d’un sprint est entre
quelques heures et un mois. Un sprint
commence par planification opérationnelle et
se termine par une démonstration de ce qui a
été établi.
Tableau 1: Présentation de quelques méthodologies
6.2 Méthodologie adoptée
Au cours de développement de notre application et jusqu’à la production on a utilisé la
méthodologie Scrum [1] pour la gestion de notre projet et l’objectif de cette méthodologie est de
développer uniquement les fonctionnalités qui ajoute de la valeur au produit en respectant les délais
et garantir la qualité.
❖ Product Owner : Il est le propriétaire du produit. Il définit toutes fonctionnalités et priorité
de la liste de tâches du produit. Il est la seule personne qui peut prendre des décisions sur
le projet. Pour notre cas est SPIMOB.
❖ Scrum Master : Il joue le rôle de facilitateur et gardien de la bonne application. Il est au
service du product owner. Il facilite les interactions entre les membres de l’équipe Scrum.
Il agit sur le processus de développement (développement, définition de la durée´ des
Sprints, de l’ordre du jour des réunions scrum, etc.). Dans notre cas SAMIA BEN ISMAIL.
Chapitre 1 : Présentation générale et études préliminaire
21
❖ Development team : C’est l’équipe ce qui est chargé de la réalisation du produit. Aucun
n’a un rôle particulier. Pour notre cas est Wassim Omrani et Zoubeyr Sahraoui.
Figure 7: Présentation de déroulement de méthodologie Scrum
6.3 Planning Prévisionnel
Le diagramme de Gantt [2] est l'un des diagrammes utilisés pour représenter graphiquement
l'avancement des différentes tâches constituant un projet. La colonne du diagramme de gauche
montre toutes les tâches à faire, tandis que la ligne d'en-tête montre les unités de temps les plus
appropriées pour le projet : jours, semaines, mois.
Figure 8: Diagramme de Gantt
7. Conclusion
Pour ce chapitre, on a commencé par la présentation d’organisme de stage et dégager la
problématique et citer nos objectifs, ensuite une étude sur les agents conversationnels ainsi que
l’existant. Enfin on explicite les spécifications des besoins et les méthodologies de développement.
Chapitre 2 : Etude
Conceptuelle
Chapitre 2 : Etude conceptuelle
23
1. Introduction
Après avoir identifié le cadre de notre projet et le choix de notre méthodologie de développement
« Scrum », on passe donc à présenter une conception générale qui est consacrée à l’architecture
générale de l’application et la conception UML [3], ainsi nous allons identifier les acteurs et
présenter les différents diagrammes.
2. L’architecture de l’application
Dans le premier chapitre, nous identifions Scrum comme notre méthodologie de développement,
la démarche de la conception sera conforme à l’architecture de l’application. Pour réussir un
développement professionnel, il faut choisir une architecture adéquate pour le système, dans notre
cas on choisit l’architecture MVC.
2.1 Le Modèle MVC
Le Modèle-Vue-Contrôleur (en abrégé MVC, de l’anglais Model-Vue-Controller). C’est un motif
d’architecture logicielle destiné aux interfaces graphiques pour les applications web. En général,
ce motif est utilisé par de plusieurs Frameworks.
L’architecture MVC est donc composée de trois types de modules ayant trois responsabilités
distinctes :
✓ Modèle
Il contient les données de l’application. Les objets de modèle servent à stocker et récupérer l’état
du modèle en base de données.
✓ Vue
Elle représente l’interface utilisateur, grâce au modèle elle sert à afficher les données d’affichage
et permet également à l’utilisateur de les modifiées.
✓ Contrôleur
Il sert à assurer la synchronisation entre le modèle et les vues. D’une manière générale le contrôleur
dirige les requêtes entrantes et fait appel aux processus correspondants.
Chapitre 2 : Etude conceptuelle
24
Figure 9: Représentation des interactions entre le modèle, la vue et le contrôleur dans le cas d'une application web.
3. Méthodologie de conception
Toute application nécessite une méthodologie de travail et un langage de modélisation. Comme
on a choisi notre méthodologie Scrum. Nous concentrons sur le langage de modélisation pour
cette application où notre choix se réfère au langage de modélisation UML.
3.1 Langage de modélisation UML
UML, abréviation de Unified Modeling Language, est un langage de modélisation normalisé
comprenant un ensemble intégré de diagrammes, développé pour aider les développeurs de
systèmes et de logiciels à spécifier, visualiser, construire et documenter les artefacts de systèmes
logiciels, ainsi que pour la modélisation et la gestion d'entreprise. Autres systèmes non logiciels.
Le langage UML représente un ensemble de meilleures pratiques d'ingénierie qui ont fait leurs
preuves dans la modélisation de systèmes vastes et complexes. Le langage UML est une partie très
importante du développement de logiciels orientés objet et du processus de développement logiciel.
Le langage UML utilise principalement des notations graphiques pour exprimer la conception de
projets logiciels. L'utilisation du langage UML aide les équipes de projet à communiquer, à
explorer les conceptions potentielles et à valider la conception architecturale du logiciel.
Figure 10: Logo UML
Chapitre 2 : Etude conceptuelle
25
4. Conception détaillée
Aprés choisir le langage de modélisation UML, nous allons identifier les acteurs de notre système
ainsi que présenter une multitude de diagrammes UML : diagramme de cas d’utilisation,
diagramme de classe et diagramme de séquence
4.1 Diagramme de cas d’utilisation
Les diagrammes de cas d’utilisations sont des diagrammes UML sert à modéliser les
fonctionnalités du système en se basant sur des acteurs et des cas d’utilisation. Les cas d’utilisation
servent à décrire un ensemble de fonctions, des actions et des services que doit être exécuté afin de
satisfaire le besoin d’un acteur qui présentent des personnes ou des entités qui interagissent
directement avec le système.
4.1.1 Identification des acteurs
En nous référant sur le besoin de notre application, nous identifions l’acteur suivant :
- Le Client : c’est celui qui possède la totalité de fonctionnalité de notre système. Ces
fonctionnalités doivent être précédées par une authentification. Il peut gérer les chatbot
ainsi que consulter les notifications, les abonnées et le nombre de messages ou demander
un pack.
4.1.2 Identification des cas d’utilisation
Nous présenterons dans le tableau suivant les différents cas d’utilisation et une description pour
chaque cas.
Cas d’utilisation Description
Gérer les chatBots. Le client peut construire, configurer,
automatiser et supprimer des chatBots
Consulter les notifications Le client peut consulter les notifications à
propos de ses chatBots
Consulter les abonnées Le client peut consulter le nombre d’abonnés
de ses chatBots
Consulter le nombre de messages Le client peut consulter le nombre de
messages envoyés par ses chatBots
Demander un pack Le client peut demander un pack pour
améliorer le rendement de ses chatBots
Tableau 2: Cas d'utilisation associé au Client
Chapitre 2 : Etude conceptuelle
26
4.1.3 Diagramme des cas d’utilisation globale
Figure 11:Diagramme de cas d'utilisation global
4.1.4 Diagramme des cas d’utilisation pour la gestion des ChatBots
Figure 12: Diagramme de cas d'utilisation pour la gestion des chatBots
4.1.5 Description textuelle
Dans cette partie, notre intérêt est de décrire les étapes (scénario), le pré et post condition et les
exceptions pour chaque cas d’utilisation.
Chapitre 2 : Etude conceptuelle
27
- Authentification
L’authentification est la première étape de notre application ou le tableau ci-dessous présente les
conditions pour ce cas d’utilisation ainsi que les scénarios et les exceptions.
Titre Authentification
Acteur Client
Pré-condition L’acteur doit s’identifier via Facebook
Scénario nominal 1. L’utilisateur demande la page
d’authentification
2. L’utilisateur se connecte via Facebook
et accepte l’utilisation de chatbot.tn
3. Le système vérifie la demande de
connexion
4. Le système affiche la page d’accueil
de client
Post-condition L’acteur se déconnecte ou choisit une autre
tâche
Exception Erreur de connexion :
Message d’erreur si la connexion via
Facebook est impossible
Tableau 3: Cas d’utilisation : Authentification
- Gérer les ChatBots
Après la connexion de client il sera réorienté vers la page d’accueil pour gérer ses chatBots. Le
tableau n°4 présente la description pour ce cas d’utilisation.
Titre Gérer les ChatBots
Acteur Client
Pré-condition L’acteur doit s’identifier via Facebook
Scénario nominal 1. Le client crée un chatbot
2. Le client configure son chatbot selon
sa besoin (page Facebook associé)
3. Le client enregistre son choix
4. Le client automatise son chatbot selon
son besoin en vue des éléments
existants
5. Le client enregistre son choix
6. Le client supprime un chatbot
Post-condition - La déconnexion de l’acteur
- Poursuivre vers une autre tâche
Exception Erreur de connexion :
Message d’erreur si la connexion via
Facebook est impossible
Atteindre la limite des abonnées
Tableau 4: Cas d’utilisation : Gérer les chatBots
Chapitre 2 : Etude conceptuelle
28
- Consulter les notifications
Après la connexion de client il sera réorienté vers la page d’accueil ou il peut consulter ses
notifications. Le tableau suivant décrit ce cas d’utilisation.
Titre Consulter les notifications
Acteur Client
Pré-condition L’acteur doit s’identifier via Facebook
Scénario nominal 1. Le client accède à l’icône des
notifications
2. Le système affiche la liste de
notifications
Post-condition - La déconnexion de l’acteur
- Poursuivre vers une autre tâche
Exception Erreur de connexion :
Message d’erreur si la connexion via
Facebook est impossible
Tableau 5: Cas d’utilisation : Consulter les abonnées
- Consulter les abonnées
Après la connexion de client, il sera réorienté vers la page d’accueil ou il peut consulter ses
notifications. Le tableau suivant décrit ce cas
Titre Consulter les notifications
Acteur Client
Pré-condition L’acteur doit s’identifier via Facebook
Scénario nominal 3. Le client consulte la page d’accueil ou
la page de personnalisation
4. Le système affiche l’interface des
abonnées
Post-condition - La déconnexion de l’acteur
- Poursuivre vers une autre tâche
Exception Erreur de connexion :
Message d’erreur si la connexion via
Facebook est impossible
Tableau 6: Cas d’utilisation : Consulter les abonnées
- Consulter le nombre de messages
Après la connexion de client, il sera réorienté vers la page d’accueil ou il peut consulter ses
notifications. Le tableau suivant décrit ce cas
Titre Consulter le nombre de messages
Acteur Client
Pré-condition L’acteur doit s’identifier via Facebook
Chapitre 2 : Etude conceptuelle
29
Scénario nominal 5. Le client consulte le page d’accueil ou
la page de personnalisation
6. Le système affiche l’interface des
messages envoyés par le bot
Post-condition - La déconnexion de l’acteur
- Poursuivre vers une autre tâche
Exception Erreur de connexion :
Message d’erreur si la connexion via
Facebook est impossible
Tableau 7: Cas d’utilisation : Consulter les messages
- Demander un pack
Après la connexion de client, il sera réorienté vers la page d’accueil ou il peut consulter ses
notifications. Le tableau suivant décrit ce cas
Titre Demander un pack
Acteur Client
Pré-condition L’acteur doit s’identifier via Facebook
Scénario nominal 1. Le client consulte la page des packs
2. Le client choisit son pack et la méthode
de paiement préféré
3. Le système vérifie le paiement
4. Le système active le pack ciblé par le
client
Post-condition - La déconnexion de l’acteur
- Poursuivre vers une autre tâche
Exception Erreur de connexion :
Message d’erreur si la connexion via Facebook
est impossible
Tableau 8: Cas d’utilisation : Demander un pack
4.2 Diagramme de classe
En génie logiciel, le diagramme de classe décrit la structure du code à développer ou il montre les
classes, les attributs, les méthodes et les relations d’un système
Chapitre 2 : Etude conceptuelle
30
4.2.1 Dictionnaire de données
Classe Attribut Désignation Type
Client IDClient L’identifiant de client Entier
Nom Le nom de client Chaîne de caractère
Compe_Facebook IDFacebook L’identifiant
Facebook
Entier
Nom Le nom de compte
Facebook
Chaîne de caractère
Prénom Le prénom de compte
Facebook
Chaîne de caractère
Password Mot de passe de
compte Facebook
Chaine de caractère
Chatbot IDChatbot L’identifiant du
chatbot
Entier
Nom Le nom du chatbot Chaîne de caractère
Page_associé La page lequel le
chatbot est associé
Chaîne de caractère
Bloc IDBloc L’identifiant de bloc Entier
PositionX La position du bloc
au Flowchart par
rapport à l’axe des
abscisses
Entier
PositionY La position du bloc
au Flowchart par
rapport à l’axe des
ordonnées
Entier
IDChatbot
IDElement L’identifiant de
l’élément
Entier
IDConnexion L’identifiant de la
connexion
Entier
Connexion IDConnexion L’identifiant de la
connexion
Entier
Chapitre 2 : Etude conceptuelle
31
Entrée La source de la
connexion
Chaîne de caractère
Sortie La Target de la
connexion
Chaîne de caractère
Elément IDElement L’identifiant de
l’élément
Entier
Nom Le nom de l’élément Chaîne de caractère
HTML Le code source de
l’élément
Chaîne de caractère
Class Class de l’élément Chaîne de caractère
Data Les données
enregistrées à
l’élément
Chaîne de caractère
Text Titre Une zone de texte
rempli selon le client
Chaîne de caractère
IDBloc L’identifiant du bloc Entier
URL Lien d’un site internet Chaîne de caractère
NumeroTel Un numéro de
téléphone
Entier
Typing NombreSeconde Le nombre de
seconde voulu par le
client
Entier
Media URL Lien d’un média sur
Facebook(Image,
Vidéo)
Chaîne de caractère
Picture Image_téléchargé Une image
téléchargée de la part
de client
Image
Gallery Image_téléchargé Une image
téléchargée de la part
de client
Image
Titre Le titre d’une image
de la galerie
Chaîne de caractère
Description La description d’une
image de la galerie
Chaîne de caractère
Chapitre 2 : Etude conceptuelle
32
Generic Image_telechargé Une image
téléchargée de la part
de client
Image
Titre Le titre d’une image
de generic
Chaîne de caractère
Description La description d’une
image de generic
Chaîne de caractère
IDBloc L’identifiant du bloc Entier
URL Lien d’un site internet Chaîne de caractère
NumeroTel Un numéro de
téléphone
Entier
Video URL Lien d’un vidéo sur
Facebook
Chaîne de caractère
Redirect_to IDBloc L’identifiant d’un
bloc
Entier
Téléphone NumeroTel Un numéro téléphone Entier
Audio URL Lien d’un audio sur
Facebook
Chaîne de caractère
Lien URL Lien d’un site internet
fournit par le client
Chaîne de caractère
Mail Mail Un email Chaîne de caractère
RSS URL Un site internet Chaîne de caractère
Total_Element Entier
Fréquence Entier
Quick_Reply Titre Une zone de texte
rempli de la réponse
rapide de client
Chaîne de caractère
IDBloc L’identifiant de bloc Entier
Tableau 9: Dictionnaire de données
Chapitre 2 : Etude conceptuelle
33
4.2.2 Présentation du diagramme de classe
Après qu’on a dégagé les classes et les attributs. Nous sommes capables de présenter le diagramme
de classe qui peut donner une idée sur les différentes classes établissant notre application
Figure 13: Diagramme de classe global
Chapitre 2 : Etude conceptuelle
34
4.3 Diagramme de séquence
Le diagramme de séquence est un schéma de langage UML qui présente comment les éléments
du système interagit entre eux et avec les acteurs. On peut présenter les étapes de chaque cas
d’utilisation selon un ordre chronologique
4.3.1 Authentification
Figure 14: Diagramme de séquence : Authentification
Le diagramme ci-dessus présente tous les scénarii lors d’une tentative de connexion où l’utilisateur
demande de se connecter, le système le réoriente vers Facebook afin de se connecter si cette étape
est validée le système affiche la page d’accueil sinon il affiche la page d’authentification.
Chapitre 2 : Etude conceptuelle
35
4.3.2 Automatiser un ChatBot
Le diagramme ci-dessous montre tous les scénarios possibles lors de l’automatisation d’un
chatbot.
Figure 15: Diagramme de séquence : Automatisation d'un chatbot
4.3.3 Suppression d’un chatbot
Dans la figure ci-contre, il se présente toutes les étapes possibles afin de supprimer un chatbot
Chapitre 2 : Etude conceptuelle
36
Figure 16:Diagramme de séquence : Suppression d'un chatbot
Chapitre 2 : Etude conceptuelle
37
4.3.4 Configurer d’un chatbot
Grâce au diagramme de séquence suivant on peut identifier tous les scénarios possibles lors de la
configuration d’un chatbot.
Figure 17: Diagramme de séquence : Configuration d'un chatbot
5. Conclusion
Dans ce chapitre, on a réalisé la conception détaillée de tous les cas d’utilisations. Ensuite, on a
présenté le diagramme de classe et de séquence afin de tracer le chemin de notre projet à la phase
finale : la réalisation.
Chapitre3 : Réalisation de
projet
Chapitre 3 : Réalisation de projet
39
1. Introduction
Après avoir élaboré la phase de conception de notre application, nous aborderons dans ce chapitre
la dernière partie de ce rapport qui vise à décrire la phase d’achèvement et d’aboutissement du
projet. Afin de finaliser cette tâche avec succès, il nous doit choisir les bons et nécessaires outils à
utiliser.
Ce chapitre est divisé en deux parties : la première partie est dédié à présenter l’environnement
matériel que nous avons utilisé pour la réalisation du projet, la seconde partie décrit le
fonctionnement de notre application web.
2. Environnement de développement
Pour l’achèvement de notre application, nous avons choisi un environnement de développement
que l’on détaille dans cette partie
2.1 Environnement Matériel
Tout au long de la phase d’établissement de ce projet, nous avons utilisé deux machines dont les
caractéristiques sont les suivant :
Marque LENOVO LENOVO
Processeur
Intel(R) Core(TM) i3-5005U CPU
@ 2.00GHz 2.00 GHz
?
RAM 4GB 8GB
Système d’exploitation Windows 10 Windows 10
Tableau 10: Environnement matériel
Chapitre 3 : Réalisation de projet
40
2.2 Environnement Logiciel
Lors de la réalisation du notre projet, nous sommes au besoin des outils suivants
• Framework de développement Angular 11
Un Framework (ou plateforme de développement) a pour but fournir au développement peur un
ensemble d’outils et de méthode réunis en bibliothèque ou librairies afin d’améliorer la qualité et
la rapidité du développement et de l’application, donnant lieu à une maintenance plus simple de
celle-ci. Il permet également d’automatiser certaines tâches récurrentes. Son but est donc de
simplifier au maximum le développement.
• Framework Angular
Angular [4] est un Framework open source écrit en JavaScript qui permet la création
d’applications Web et plus particulièrement de ce qu’on appelle des « Single Page Applications » :
des applications web accessibles via une page web unique qui permet de fluidifier l’expérience
utilisateur et d’éviter les chargements de pages à chaque nouvelle action. Le Framework est basé
sur une architecture du type MVC et permet donc de séparer les données, le visuel et les actions
pour une meilleure gestion des responsabilités. Un type d’architecture qui a largement fait ses
preuves et qui permet une forte maintenabilité et une amélioration du travail collaboratif.
Figure 18: Logo Angular
• NodeJS
Node.js [5] est une plateforme logicielle libre en JavaScript, orientée vers les applications réseau
événementielles hautement concurrentes qui doivent pouvoir monter en charge. Elle utilise la
machine virtuelle V8, la librairie libuv pour sa boucle d'évènements, et implémente sous licence
MIT les spécifications CommonJS.
Chapitre 3 : Réalisation de projet
41
Figure 19 : Logo NodeJS
• PostgreSQL
PostgreSQL [6] est un système de gestion de base de données relationnelle et objet. C'est un outil
libre disponible selon les termes d'une licence de type BSD. Ce système est concurrent d'autres
systèmes de gestion de base de données qu'ils soient libres, ou propriétaires.
Figure 20: Logo PostgreSQL
• POSTMAN
Postman [7] est la plate-forme qui nous offre la possibilité de tester les requêtes HTTP avec ses
différentes méthodes. Cela est très important pour savoir les bons paramètres à passer que ce soit
à l’entête ou en corps des requêtes à envoyer.
Figure 21: Logo Postman
Chapitre 3 : Réalisation de projet
42
• GANTTPROJECT
GanttProject [7] est un outil permettant de gérer vos projets sur le modèle des diagrammes de Gantt.
Cet outil permet de décomposer vos projets en arborescence et d’assigner des ressources à chacune
des taches prévues au planning. Il est possible de créer des dépendances entre les activités. Cette
fonctionnalité se révèle indispensable lorsque le travail accompli sur une tache est nécessaire pour
une autre partie du projet.
Figure 22: Logo GanttProject
3. Présentation de l’application web « Chatbot.tn »
Dans la partie suivante, nous présenterons les différentes interfaces de notre application en nous
basant sur les différents cas d’utilisation déjà vus dans le chapitre étude préliminaire, en premier
lieu on présente le logo d’application.
Figure 23: Logo de l'application
Chapitre 3 : Réalisation de projet
43
3.1 Interface d’authentification
Grâce à cette interface, chaque utilisateur peut se connecter en utilisant un compte Facebook pour
accéder à la page d’accueil
Figure 24: Interface d'authentification
3.2 Page d’accueil
L’interface d’accueil présente notre application et aide chaque utilisateur à gérer ses chatbots.
Figure 25:Interface d'accueil
Chapitre 3 : Réalisation de projet
44
3.3 Interface d’Automatisation
La figure ci-dessous affiche une méthode de personnalisation de chatbots. Cette interface donne la
possibilité à l’utilisateur de bien choisir le comportement de son chatbot grâce aux éléments fournis
par l’application
Figure 26:Interface de personnalisation de chatBots
Figure 27:Liste des éléments
Chapitre 3 : Réalisation de projet
45
3.4 Exporter la personnalisation
Un bouton « export » qui permet d’exporter tous les éléments et les liaisons entre eux sous format
JSON
Figure 28: Exporter la personnalisation
3.5 Enregistrement de la personnalisation
Un bouton « save » qui permet d’enregistrer la personnalisation (éléments et liaisons) dans la
table de base de données
3.5.1 Insertion
Voici le tableau de base de données vide
Figure 29 Table vide
Chapitre 3 : Réalisation de projet
46
La figure ci-dessous montre l’enregistrement de la personnalisation
• Résultat sur l’interface
Figure 30: Enregistrement d'une personnalisation
• Résultat sur le tableau de base de données (PostgreSQL)
Figure 31: Enregistrement dans la base de données
Chapitre 3 : Réalisation de projet
47
3.5.2 Modification d’une personnalisation déjà enregistrée
Lors de la modification d’une personnalisation déjà enregistrée le bouton « save » joue le rôle
d’un bouton de mise à jour
La figure ci-dessous décrit une modification
Figure 32:Modification de la personnalisation
4. Conclusion
A ce stade, nous avons présenté les différentes phases de la réalisation commençant par décrire les
différentes technologies utilisées ainsi que l’environnement matériel et logiciel de notre projet.
Enfin, nous avons donné une vue finale de projet grâce à des captures d’écran pour bien afficher
notre application.
Conclusion générale
Conclusion générale
49
Tout au long de ce projet, nous pouvons affirmer que ce stage nous a donné l’opportunité
d’apprendre des nouveaux langages de programmation tels que l’Angular, NodeJS, PostgreSQL,
…etc. De même, ce projet m’aider à appliquer tout ce que j’ai appris à l’ESST Hammam-Sousse.
En plus, on a eu la chance de s’intégrer à la vie professionnelle.
Ce modeste rapport est divisé en trois chapitres, le premier chapitre sert à définir l’établissement
de stage et d’une étude générale sur notre application. Le deuxième chapitre sert à une conception
profonde de l’application qui trace notre chemin de développement. Finalement le dernier chapitre
met en valeur la réalisation de notre projet ou il présente l’environnement de développement.
Ce travail répond aux besoins de l’entreprise et il peut être amélioré dans la future par l’ajout des
nouvelles fonctionnalités.
J’espère que le projet établi a été à la hauteur de la confiance qui m’a été donnée.
Annexe sur Traitement
automatique des langues
naturelles
Annexe sur Traitement automatique des langues naturelles
51
1. Traitement automatique du Langage Naturel
Le traitement automatique du Langage Naturel [8] est un des domaines de recherche les plus actifs
en science des données actuellement. C’est un domaine à l’intersection du Machine Learning et de
la linguistique. Il a pour but d’extraire des informations et une signification d’un contenu textuel.
Le Traitement Automatique du Langage naturel (TAL) ou Natural Language Processing (NLP) en
anglais trouve de nombreuses applications dans la vie de tous les jours :
• traduction de texte (DeepL par exemple)
• correcteur orthographique
• résumé automatique d’un contenu
• synthèse vocale
• classification de texte
• analyse d’opinion/sentiment
• prédiction du prochain mot sur smartphone
• extraction des entités nommées depuis un texte
• …
Le TAL (traitement automatique du langage) est généralement composé de deux à trois grandes
étapes :
• Pré-traitement : une étape qui cherche à standardiser du texte afin de rendre son usage
plus facile.
• Représentation du texte comme un vecteur : Cette étape peut être effectuée via des
techniques de sac de mots (Bag of Words) ou Term Frequency-Inverse Document
Frequency (Tf-IdF). On peut également apprendre des représentations vectorielles
(embedding) par apprentissage profond.
• Classification, trouver la phrase la plus similaire… (optionnel).
Ces étapes peuvent être implémenté par la bibliothèque Spacy.
Annexe sur Traitement automatique des langues naturelles
52
2. Définition du Spacy
spaCy (/speɪˈsiː/ spay-SEE) est une bibliothèque logicielle open source pour le traitement avancé
du langage naturel, écrite dans les langages de programmation Python et Cython.[9]
La bibliothèque est publiée sous licence MIT et ses principaux développeurs sont Matthew
Honnibal et Ines Montani, les fondateurs de la société de logiciels Explosion.
3. Installation
pip install -U pip setuptools wheel
pip install -U spacy
python -m spacy download en_core_web_sm
// i
import spacy
spacy.prefer_gpu()
nlp = spacy.load("en_core_web_sm")
//
4. Exemple du traitement des différentes étapes TALN avec Spacy
4.1 Tokenisation des mots (Word tokenization)
La tokenisation cherche à transformer un texte en une série de tokens individuels. Dans l’idée,
chaque token représente un mot, et identifier des mots semble être une tâche relativement simple
Annexe sur Traitement automatique des langues naturelles
53
4.2 Tokenisation des phrases (Sentence tokenization)
On peut également appliquer une tokenisation par phrase afin d’identifier les différentes phrases
d’un texte. Cette étape peut à nouveau sembler facile, puisque a priori, il suffit de couper chaque
phrase lorsqu’un point est rencontré (ou un point d’exclamation ou d’interrogation).
4.3 Enlever les mots les plus fréquents (Stop words)
Certains mots se retrouvent très fréquemment dans la langue française. En anglais, on les appelle
les « stop words ». Ces mots, bien souvent, n’apportent pas d’information dans les tâches suivantes.
Lorsque l’on effectue par exemple une classification par la méthode Tf-IdF, on souhaite limiter la
quantité de mots dans les données d’entraînement.
Annexe sur Traitement automatique des langues naturelles
54
4.4 Etiquetage morpho-syntaxique (Part Of Speech POS)
L’étiquetage morpho-syntaxique ou Part-of-Speech (POS) Tagging en anglais essaye d’attribuer
une étiquette à chaque mot d’une phrase mentionnant la fonctionnalité grammaticale d’un mot
(Nom propre, adjectif, déterminant…).
Annexe sur Traitement automatique des langues naturelles
55
4.5 Stemming (Lemmatization)
Le stemming consiste à réduire un mot dans sa forme « racine ». Le but du stemming est de
regrouper de nombreuses variantes d’un mot comme un seul et même mot.
4.6 Reconnaissance d’entités nommées (Entity Recognition NER)
En traitement automatique du langage, la reconnaissance d’entités nommées cherche à détecter les
entités telles que des personnes, des entreprises ou des lieux dans un texte. Cela s’effectue très
facilement avec SpaCy.
Annexe sur Traitement automatique des langues naturelles
56
4.7 Vecteur par mot (Word Vector)
Avec SpaCy, on peut facilement récupérer le vecteur correspondant à chaque mot une fois passé
dans le modèle pré-entraîné
Annexe sur Traitement automatique des langues naturelles
57
4.8 Similarité des phrases (Computing Similarity)
Annexe sur Traitement automatique des langues naturelles
58
4.9 Fréquence des mots (words frequency)
Bibliographie
Bibliographie
60
[1] K. Schwaber and M. Beedle, in agile software development with scrum.
[2] «Diagramme de gant definition,» Wikipedia, [En ligne]. Available:
https://fr.wikipedia.org/wiki/Diagrammedegant.
[3] "UML Guide," Visual Paradigm, [Online]. Available: https://www.visual-
paradigm.com/guide/uml-unified-modeling-language/what-is-uml/.
[4] «Angular Definition,» Monpetitdev, [En ligne]. Available: https://monpetitdev.fr/cest-quoi-
angular-definition/.
[5] «NodeJS Definition,» Wikipedia, [En ligne]. Available:
https://fr.wikipedia.org/wiki/Node.js.
[6] «PostgreSQL Definition,» Wikipedia, [En ligne]. Available:
https://fr.wikipedia.org/wiki/PostgreSQL.
[7] «Page d'accueil,» POSTMAN, [En ligne]. Available: https://www.postman.com/.
[8] «TALN,» [En ligne]. Available: https://www.stat4decision.com/fr/traitement-langage-
naturel-francais-tal-nlp/.
[9] «spacy,» [En ligne]. Available: https://spacy.io/.
Résumé
L’objectif principal de ce travail de PFE consiste à Conception et Développement d’une application web
pour la personnalisation d’un chatbot Facebook
Cette application permet aux internautes de configurer un chatbot Facebook selon leurs besoins.
L’application inclut aussi une partie importante qui présente la consultation des notifications,nombre
d'abonnés et nombre de vues.
Mots clés: Angular, Node JS, PostgreSQL.
Abstract
The main objective of this PFE work is to Design and Development of a web application for the
personalization of a Facebook chatbot
This application allows Internet users to consult notifications,number of followers and number of views.
Keywords: Angular, Node JS, PostgreSQL.
‫خالص‬
‫ة‬
‫لعمل‬ ‫الرئيسي‬ ‫الهدف‬ ‫يتمثل‬
‫التخرج‬ ‫مشروع‬
‫على‬ ‫الدردشة‬ ‫روبوت‬ ‫لتخصيص‬ ‫ويب‬ ‫تطبيق‬ ‫وتطوير‬ ‫تصميم‬ ‫في‬
‫الفايسبوك‬
‫على‬ ‫محادثة‬ ‫روبوت‬ ‫تكوين‬ ‫اإلنترنت‬ ‫لمستخدمي‬ ‫التطبيق‬ ‫هذا‬ ‫يتيح‬
‫الفايسبوك‬
‫ا‬ً‫م‬‫مه‬ ‫ا‬ً‫ء‬‫جز‬ ‫ًا‬‫ض‬‫أي‬ ‫التطبيق‬ ‫يتضمن‬ .‫الحتياجاتهم‬ ‫ا‬ً‫ق‬‫وف‬
‫يتمثل‬
‫متابعة‬ ‫في‬
‫اإلشعارات‬
‫وعدد‬
.‫المشاهدات‬ ‫وعدد‬ ‫المشتركين‬
‫المفاتيح‬ ‫الكلمات‬
:
Angular, Node JS, PostgreSQL

Contenu connexe

Tendances

Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2
Ben Abdelwahed Slim
 
Rapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application AndroidRapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application Android
BadrElattaoui
 
Rapport de projet de fin d’étude
Rapport  de projet de fin d’étudeRapport  de projet de fin d’étude
Rapport de projet de fin d’étude
OumaimaOuedherfi
 
Chatbot arabe-dialectale-covid19
Chatbot arabe-dialectale-covid19Chatbot arabe-dialectale-covid19
Chatbot arabe-dialectale-covid19
othmanakka
 
Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédia
Nazih Heni
 
Conception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSConception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTS
FaissoilMkavavo
 
Rapport stage pfe
Rapport stage  pfe Rapport stage  pfe
Rapport stage pfe
rimeh moussi
 
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...
Symphorien Niyonzima
 
Rapport pfe licence
Rapport pfe licenceRapport pfe licence
Rapport pfe licence
Fatima Zahra Fagroud
 
Presentation de soutenance du Projet Fin d'Etudes
Presentation de soutenance du Projet Fin d'EtudesPresentation de soutenance du Projet Fin d'Etudes
Presentation de soutenance du Projet Fin d'Etudes
Tahani RIAHI
 
Rapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learning
Rouâa Ben Hammouda
 
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_webRapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Salma Gouia
 
Rapport PFE Ahmed BEN JEMIA
Rapport PFE Ahmed BEN JEMIARapport PFE Ahmed BEN JEMIA
Rapport PFE Ahmed BEN JEMIA
Ahmed BEN JEMIA
 
Rapport pfe
Rapport pfeRapport pfe
Rapport pfe
Ahmed rebai
 
Rapport restaurant le-roi
Rapport restaurant le-roiRapport restaurant le-roi
Rapport restaurant le-roi
Marwa Bhouri
 
Rapport projet fin d'étude
Rapport projet fin d'étudeRapport projet fin d'étude
Rapport projet fin d'étude
HibaFarhat3
 
467720159-rapport-final-bouguerra-khadijaesseghaier-lina-pdf.pdf
467720159-rapport-final-bouguerra-khadijaesseghaier-lina-pdf.pdf467720159-rapport-final-bouguerra-khadijaesseghaier-lina-pdf.pdf
467720159-rapport-final-bouguerra-khadijaesseghaier-lina-pdf.pdf
Bader Nassiri
 
RAPPORT DE PROJET DE FIN D’ETUDES
RAPPORT DE PROJET DE FIN D’ETUDESRAPPORT DE PROJET DE FIN D’ETUDES
RAPPORT DE PROJET DE FIN D’ETUDES
TombariAhmed
 
rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATSiwar GUEMRI
 

Tendances (20)

Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2Rapport Pfe Application Web e-commerce Symfony2
Rapport Pfe Application Web e-commerce Symfony2
 
Rapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application AndroidRapport de stage PFE - Mémoire master: Développement d'une application Android
Rapport de stage PFE - Mémoire master: Développement d'une application Android
 
Rapport de projet de fin d’étude
Rapport  de projet de fin d’étudeRapport  de projet de fin d’étude
Rapport de projet de fin d’étude
 
Chatbot arabe-dialectale-covid19
Chatbot arabe-dialectale-covid19Chatbot arabe-dialectale-covid19
Chatbot arabe-dialectale-covid19
 
Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédia
 
Conception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSConception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTS
 
Rapport stage pfe
Rapport stage  pfe Rapport stage  pfe
Rapport stage pfe
 
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...
Conception d’une plateforme web d’e-Commerce au sein d’une entreprise commerc...
 
Rapport pfe licence
Rapport pfe licenceRapport pfe licence
Rapport pfe licence
 
PFE_Report
PFE_ReportPFE_Report
PFE_Report
 
Presentation de soutenance du Projet Fin d'Etudes
Presentation de soutenance du Projet Fin d'EtudesPresentation de soutenance du Projet Fin d'Etudes
Presentation de soutenance du Projet Fin d'Etudes
 
Rapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learning
 
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_webRapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
 
Rapport PFE Ahmed BEN JEMIA
Rapport PFE Ahmed BEN JEMIARapport PFE Ahmed BEN JEMIA
Rapport PFE Ahmed BEN JEMIA
 
Rapport pfe
Rapport pfeRapport pfe
Rapport pfe
 
Rapport restaurant le-roi
Rapport restaurant le-roiRapport restaurant le-roi
Rapport restaurant le-roi
 
Rapport projet fin d'étude
Rapport projet fin d'étudeRapport projet fin d'étude
Rapport projet fin d'étude
 
467720159-rapport-final-bouguerra-khadijaesseghaier-lina-pdf.pdf
467720159-rapport-final-bouguerra-khadijaesseghaier-lina-pdf.pdf467720159-rapport-final-bouguerra-khadijaesseghaier-lina-pdf.pdf
467720159-rapport-final-bouguerra-khadijaesseghaier-lina-pdf.pdf
 
RAPPORT DE PROJET DE FIN D’ETUDES
RAPPORT DE PROJET DE FIN D’ETUDESRAPPORT DE PROJET DE FIN D’ETUDES
RAPPORT DE PROJET DE FIN D’ETUDES
 
rapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSATrapport PFE ingénieur génie logiciel INSAT
rapport PFE ingénieur génie logiciel INSAT
 

Similaire à rapport-finale-ZoubairWassim.pdf

Etiquetage morphosyntaxique de l’arabe avec Nooj
Etiquetage morphosyntaxique de l’arabe avec NoojEtiquetage morphosyntaxique de l’arabe avec Nooj
Etiquetage morphosyntaxique de l’arabe avec Nooj
Dhifallah OTHMEN
 
Rapport PFE
Rapport PFERapport PFE
Rapport PFE
IbtissemSlimeni
 
memoire.pdf
memoire.pdfmemoire.pdf
memoire.pdf
roukaya benbelgacem
 
Conception et réalisation d'une application mobile cross-platform "Taki Academy"
Conception et réalisation d'une application mobile cross-platform "Taki Academy"Conception et réalisation d'une application mobile cross-platform "Taki Academy"
Conception et réalisation d'une application mobile cross-platform "Taki Academy"
Ibtihel El Bache
 
Mémoire complète
Mémoire complèteMémoire complète
Mémoire complète
BoujahWelLimam
 
CAPACITE D EVACUATION DES EAUX PLUVIALES PAR UN CANAL BUSE
CAPACITE D EVACUATION DES EAUX PLUVIALES PAR UN CANAL BUSECAPACITE D EVACUATION DES EAUX PLUVIALES PAR UN CANAL BUSE
CAPACITE D EVACUATION DES EAUX PLUVIALES PAR UN CANAL BUSE
aya hela
 
Phytochemical profile and antioxidant activity of two varieties of dates (Pho...
Phytochemical profile and antioxidant activity of two varieties of dates (Pho...Phytochemical profile and antioxidant activity of two varieties of dates (Pho...
Phytochemical profile and antioxidant activity of two varieties of dates (Pho...
ilham guercif
 
25 exemples de remerciement de mémoire - télécharger ici https://bit.ly/344aObu
25 exemples de remerciement de mémoire - télécharger ici https://bit.ly/344aObu25 exemples de remerciement de mémoire - télécharger ici https://bit.ly/344aObu
25 exemples de remerciement de mémoire - télécharger ici https://bit.ly/344aObu
Hani sami joga
 
Valorisation des fibres de polyester recyclées
Valorisation des fibres de polyester recyclées Valorisation des fibres de polyester recyclées
Valorisation des fibres de polyester recyclées
DonyaCHETOUI1
 
Rapport PFE
Rapport PFERapport PFE
Rapport PFE
ArwaArgoubi
 
Etude du décalage de la chaine opercule d'une conditionneuse de yaourt ERCA E...
Etude du décalage de la chaine opercule d'une conditionneuse de yaourt ERCA E...Etude du décalage de la chaine opercule d'une conditionneuse de yaourt ERCA E...
Etude du décalage de la chaine opercule d'une conditionneuse de yaourt ERCA E...
Ighessanen Sofiane
 
Remerciements
RemerciementsRemerciements
Remerciementspp
 
Visualisation graphique des preuves Électroniques (complet)
Visualisation graphique des preuves Électroniques (complet)Visualisation graphique des preuves Électroniques (complet)
Visualisation graphique des preuves Électroniques (complet)
Olga Ambani
 
MALLAT_BOURUIS
MALLAT_BOURUISMALLAT_BOURUIS
MALLAT_BOURUISAli Mallat
 
pfe final.docx
pfe final.docxpfe final.docx
pfe final.docx
BenAlayaSaida
 
Mise à niveau d’un Data Center VoIP de CUCM 7.0 à CUCM 9.0
Mise à niveau d’un Data Center VoIP de CUCM 7.0 à CUCM 9.0 Mise à niveau d’un Data Center VoIP de CUCM 7.0 à CUCM 9.0
Mise à niveau d’un Data Center VoIP de CUCM 7.0 à CUCM 9.0
Anis Nouri
 
[PFE] Master - Génie logiciel
[PFE] Master - Génie logiciel  [PFE] Master - Génie logiciel
[PFE] Master - Génie logiciel
Louati Aicha
 
Mémoire Fin d'étude EDI du groupe ecam
Mémoire Fin d'étude EDI du groupe ecamMémoire Fin d'étude EDI du groupe ecam
Mémoire Fin d'étude EDI du groupe ecam
Anwar Youssef
 
Realisation-dun-module-Odoo-de-gestion-de-recrutements-carriere-et-conges-des...
Realisation-dun-module-Odoo-de-gestion-de-recrutements-carriere-et-conges-des...Realisation-dun-module-Odoo-de-gestion-de-recrutements-carriere-et-conges-des...
Realisation-dun-module-Odoo-de-gestion-de-recrutements-carriere-et-conges-des...
abdoulayendiaye60
 

Similaire à rapport-finale-ZoubairWassim.pdf (20)

Etiquetage morphosyntaxique de l’arabe avec Nooj
Etiquetage morphosyntaxique de l’arabe avec NoojEtiquetage morphosyntaxique de l’arabe avec Nooj
Etiquetage morphosyntaxique de l’arabe avec Nooj
 
Rapport PFE
Rapport PFERapport PFE
Rapport PFE
 
memoire.pdf
memoire.pdfmemoire.pdf
memoire.pdf
 
Conception et réalisation d'une application mobile cross-platform "Taki Academy"
Conception et réalisation d'une application mobile cross-platform "Taki Academy"Conception et réalisation d'une application mobile cross-platform "Taki Academy"
Conception et réalisation d'une application mobile cross-platform "Taki Academy"
 
Mémoire complète
Mémoire complèteMémoire complète
Mémoire complète
 
CAPACITE D EVACUATION DES EAUX PLUVIALES PAR UN CANAL BUSE
CAPACITE D EVACUATION DES EAUX PLUVIALES PAR UN CANAL BUSECAPACITE D EVACUATION DES EAUX PLUVIALES PAR UN CANAL BUSE
CAPACITE D EVACUATION DES EAUX PLUVIALES PAR UN CANAL BUSE
 
Phytochemical profile and antioxidant activity of two varieties of dates (Pho...
Phytochemical profile and antioxidant activity of two varieties of dates (Pho...Phytochemical profile and antioxidant activity of two varieties of dates (Pho...
Phytochemical profile and antioxidant activity of two varieties of dates (Pho...
 
Garde page
Garde pageGarde page
Garde page
 
25 exemples de remerciement de mémoire - télécharger ici https://bit.ly/344aObu
25 exemples de remerciement de mémoire - télécharger ici https://bit.ly/344aObu25 exemples de remerciement de mémoire - télécharger ici https://bit.ly/344aObu
25 exemples de remerciement de mémoire - télécharger ici https://bit.ly/344aObu
 
Valorisation des fibres de polyester recyclées
Valorisation des fibres de polyester recyclées Valorisation des fibres de polyester recyclées
Valorisation des fibres de polyester recyclées
 
Rapport PFE
Rapport PFERapport PFE
Rapport PFE
 
Etude du décalage de la chaine opercule d'une conditionneuse de yaourt ERCA E...
Etude du décalage de la chaine opercule d'une conditionneuse de yaourt ERCA E...Etude du décalage de la chaine opercule d'une conditionneuse de yaourt ERCA E...
Etude du décalage de la chaine opercule d'une conditionneuse de yaourt ERCA E...
 
Remerciements
RemerciementsRemerciements
Remerciements
 
Visualisation graphique des preuves Électroniques (complet)
Visualisation graphique des preuves Électroniques (complet)Visualisation graphique des preuves Électroniques (complet)
Visualisation graphique des preuves Électroniques (complet)
 
MALLAT_BOURUIS
MALLAT_BOURUISMALLAT_BOURUIS
MALLAT_BOURUIS
 
pfe final.docx
pfe final.docxpfe final.docx
pfe final.docx
 
Mise à niveau d’un Data Center VoIP de CUCM 7.0 à CUCM 9.0
Mise à niveau d’un Data Center VoIP de CUCM 7.0 à CUCM 9.0 Mise à niveau d’un Data Center VoIP de CUCM 7.0 à CUCM 9.0
Mise à niveau d’un Data Center VoIP de CUCM 7.0 à CUCM 9.0
 
[PFE] Master - Génie logiciel
[PFE] Master - Génie logiciel  [PFE] Master - Génie logiciel
[PFE] Master - Génie logiciel
 
Mémoire Fin d'étude EDI du groupe ecam
Mémoire Fin d'étude EDI du groupe ecamMémoire Fin d'étude EDI du groupe ecam
Mémoire Fin d'étude EDI du groupe ecam
 
Realisation-dun-module-Odoo-de-gestion-de-recrutements-carriere-et-conges-des...
Realisation-dun-module-Odoo-de-gestion-de-recrutements-carriere-et-conges-des...Realisation-dun-module-Odoo-de-gestion-de-recrutements-carriere-et-conges-des...
Realisation-dun-module-Odoo-de-gestion-de-recrutements-carriere-et-conges-des...
 

Dernier

COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU  SOUS WINDOWSCOURS D'ADMINISTRATION RESEAU  SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
AlbertSmithTambwe
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
abderrahimbourimi
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
UNITECBordeaux
 
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO Technology
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
OCTO Technology
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Laurent Speyser
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
Université de Franche-Comté
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
OCTO Technology
 
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
AlbertSmithTambwe
 

Dernier (9)

COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU  SOUS WINDOWSCOURS D'ADMINISTRATION RESEAU  SOUS WINDOWS
COURS D'ADMINISTRATION RESEAU SOUS WINDOWS
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
 
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO TALKS : 4 Tech Trends du Software Engineering.pdf
OCTO TALKS : 4 Tech Trends du Software Engineering.pdf
 
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
 
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...
 
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptxPRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
PRESENTATION DE L'ACTIVE DIRECTORY SOUS WINDOWS SERVEUR.pptx
 

rapport-finale-ZoubairWassim.pdf

  • 1. Ministère de l’Enseignement Supérieur et de la Recherche Scientifique **** Université de Sousse **** Ecole Supérieure des Sciences et de la Technologie de Hammam Sousse Licence Appliquée en Sciences et Technologies de l'Information et de la Communication Rapport de Stage de Fin d’Etudes Conception et Développement d’une application web pour la personnalisation d’un chatbot Facebook Réalisé par : Wassim Omrani Zoubeyr Sahraoui Soutenu le 27/07/2021, devant le jury composé de : Rapporteur : Mme Améni Radhouane Encadrant universitaire : Mme Samia Ben Ismail Année Universitaire : 2020-2021
  • 2. REMERCIMENTS Tout d’abord, nous tenons à remercier Dieu le Tout-Puissant qui nous a donné la puissance afin d’accomplir ce travail modeste. En second lieu, nous tenons à remercier mes professeurs pour la qualité de l'enseignement qu'ils m'ont assurée durant ces 3 dernières années à l'école. Je remercie particulièrement mon encadrant universitaire " Mme Samia ben Ismail " qui m'a encouragé pour réaliser ce projet ainsi que nos parents qui pour leur soutien inconditionnel, à la fois moral et économique. Nous exprimons tous nos remerciements à Mme ElHamdi Nadia notre superviseur a la société SPIMOB, d’avoir répondu à toutes nos questions et nous avoir fourni les informations nécessaires à la réalisation de l’application. Tous mes vœux de bonheur et de succès dans ta vie personnelle et professionnelle à mes amis et mes collègues qui m'ont soutenu et encouragé, MERCI énormément pour la bonne compagnie, la bonne humeur et les bons moments passés. Finalement, nous remercions les membres des jurys et pour l’honneur qu’ils nous ont fait d’avoir voulu examiner et évaluer ce travail. Wassim & Zoubeyr
  • 3. DEDICACE Je dédie ce travail à mes parents pour tous leurs sacrifices, leur amour, leur tendresse, leur soutien et leurs prières tout au long de mes études À ma mère à qui je dois ma réussite et qui a sacrifié pour m'offrir les conditions propices pour que je puisse réaliser mes études. Tes conseils permanents m’ont appris beaucoup de choses toutes ces années. Les mots ne suffisent pas pour exprimer combien je suis reconnaissant à tes efforts. Je voulais te dire MERCI d’avoir été et d’être, À mon cher père, j’ai un énorme respect pour toi, MERCI d’avoir tout fait pour me garder dans le droit chemin. Merci aussi d’avoir été, depuis mes premières minutes sur Terre jusqu’à aujourd’hui, mon plus grand support dans la vie. J'espère que ce travail sera la récompense de plusieurs années de sacrifice et de dévouement. À ma grande sœur, MERCI d'être une sœur si merveilleuse, MERCI d'avoir partagé avec moi tant des moments de joie et de bonheur, ta tendresse est un trésor. À mon binôme de ce projet et mon binôme de logement à la fois. Wassim
  • 4. DEDICASE Je dédie ce travail à mes parents pour tous leurs sacrifices, leur amour, leur tendresse, leur soutien et leurs prières tout au long de mes études À l'âme de ma mère, décédée très tôt, à la femme exceptionnelle qui a sacrifié sa vie pour sa famille, qui m'a toujours poussé vers l'avant, qui m'a toujours soutenu et qui m'a toujours aidé à avancer et à réaliser mes rêves. J'ai tant voulu qu'elle assiste aujourd'hui au résultat de plusieurs années d'amour et d'affection. J'espère que de là-haut tu es fière de moi et que ton âme repose en paix. À mon cher père, ma source de noblesse, de courage et d'affection. Qui m'a appris à vivre et qui ne cesse pas de me conseiller et de me diriger vers le bon chemin. Vous avez toujours été mon école de patience et de persévérance. Que ce travail traduit ma gratitude et mon respect le plus profond aux efforts que vous avez déployés durant toutes ces années. À mon frère qui a toujours était à mes côtés et qui m'encourage à chaque fois que j'avais besoin. Aucune dédicace ne peut exprimer mon amour et ma gratitude de t'avoir comme frère. Tu es le grand frère qui assure son rôle comme il faut, je n'oublierai jamais ton coup d'épaule. Je te souhaite une vie pleine de joie et de bonheur. Zoubeyr
  • 5. Table des matières Liste des figures ..............................................................................................................................7 Liste des tableaux ...........................................................................................................................8 Introduction générale.....................................................................................................................9 Chapitre 1 : PRESENTATION GENERALE ET ETUDES PRELIMINIAIRE...................11 1. Introduction .......................................................................................................................12 2. Présentation du cadre de projet de fin d’études.............................................................12 2.1 Présentation de l’organisme de Stage.....................................................................................................12 2.2 Présentation du Projet............................................................................................................................. 14 2.2.1 Problématique....................................................................................................................................14 2.2.2 Objectifs de Projet ............................................................................................................................. 14 3. Agents conversationnels (Chatbot)..................................................................................14 3.1 Définition Chatbot..................................................................................................................................14 3.2 Types chatBots.......................................................................................................................................15 4. Etude de l’existant.............................................................................................................15 4.1 Système actuel........................................................................................................................................16 4.2 Critique de l’existant .............................................................................................................................. 17 4.3 Solutions proposées................................................................................................................................ 17 5. Capture des besoins...........................................................................................................18 5.1 Capture des besoins fonctionnels ...........................................................................................................18 5.2 Capture des besoins non fonctionnels ....................................................................................................19 6. Méthodologies de développement ....................................................................................19 6.1 Présentations de quelques méthodologies .............................................................................................. 19 6.2 Méthodologie adoptée............................................................................................................................ 20 6.3 Planning Prévisionnel............................................................................................................................. 21 7. Conclusion..........................................................................................................................21 Chapitre 2 : Etude Conceptuelle.................................................................................................22 1. Introduction .......................................................................................................................23 2. L’architecture de l’application ........................................................................................23 2.1 Le Modèle MVC ....................................................................................................................................23 3. Méthodologie de conception .............................................................................................24 3.1 Langage de modélisation UML..............................................................................................................24 4. Conception détaillée ..........................................................................................................25 4.1 Diagramme de cas d’utilisation..............................................................................................................25 4.1.1 Identification des acteurs ...................................................................................................................25 4.1.2 Identification des cas d’utilisation .....................................................................................................25 4.1.3 Diagramme des cas d’utilisation globale ........................................................................................... 26 4.1.4 Diagramme des cas d’utilisation pour la gestion des ChatBots.............................................................. 26
  • 6. 4.1.5 Description textuelle.......................................................................................................................... 26 4.2 Diagramme de classe.............................................................................................................................. 29 4.2.1 Dictionnaire de données..................................................................................................................... 30 4.2.2 Présentation du diagramme de classe.................................................................................................33 4.3 Diagramme de séquence......................................................................................................................... 34 4.3.1 Authentification .................................................................................................................................34 4.3.2 Automatiser un ChatBot ....................................................................................................................35 4.3.3 Suppression d’un chatbot...................................................................................................................35 4.3.4 Configurer d’un chatbot..................................................................................................................... 37 5. Conclusion..........................................................................................................................37 Chapitre3 : Réalisation de projet................................................................................................38 1. Introduction .......................................................................................................................39 2. Environnement de développement ..................................................................................39 2.1 Environnement Matériel......................................................................................................................... 39 2.2 Environnement Logiciel......................................................................................................................... 40 3. Présentation de l’application web « Chatbot.tn » ..........................................................42 3.1 Interface d’authentification ....................................................................................................................43 3.2 Page d’accueil ........................................................................................................................................43 3.3 Interface d’Automatisation..................................................................................................................... 44 3.4 Exporter la personnalisation...................................................................................................................45 3.5 Enregistrement de la personnalisation....................................................................................................45 3.5.1 Insertion .............................................................................................................................................45 3.5.2 Modification d’une personnalisation déjà enregistrée .......................................................................47 4. Conclusion..........................................................................................................................47 Conclusion générale .....................................................................................................................48 Annexe sur Traitement automatique des langues naturelles ...................................................50 1. Traitement automatique du Langage Naturel................................................................51 2. Définition du Spacy ...........................................................................................................52 3. Installation .........................................................................................................................52 4. Exemple du traitement des différentes étapes TALN avec Spacy ................................52 4.1 Tokenisation des mots (Word tokenization)........................................................................................... 52 4.2 Tokenisation des phrases (Sentence tokenization) .................................................................................53 4.3 Enlever les mots les plus fréquents (Stop words)...................................................................................53 4.4 Etiquetage morpho-syntaxique (Part Of Speech POS)...........................................................................54 4.5 Stemming (Lemmatization)....................................................................................................................55 4.6 Reconnaissance d’entités nommées (Entity Recognition NER)............................................................. 55 4.7 Vecteur par mot (Word Vector) .............................................................................................................56 4.8 Similarité des phrases (Computing Similarity) ...................................................................................... 57 4.9 Fréquence des mots (words frequency)..................................................................................................58 Bibliographie.................................................................................................................................59
  • 7. Liste des figures Figure 1: Logo de l'organisme de stage......................................................................................13 Figure 2: Emplacement géographique de l'entreprise Spimob................................................13 Figure 3: Le fonctionnement d'un chatbot ................................................................................15 Figure 4: Solution actuelle de personnalisation du bot.............................................................16 Figure 5: Fonctionnement Messenger d’un bloc .......................................................................16 Figure 6: Fonctionnement Messenger d'un menu.....................................................................17 Figure 7: Présentation de déroulement de méthodologie Scrum.............................................21 Figure 8: Diagramme de Gantt...................................................................................................21 Figure 9: Représentation des interactions entre le modèle, la vue et le contrôleur dans le cas d'une application web. .................................................................................................................24 Figure 10: Logo UML ..................................................................................................................24 Figure 11:Diagramme de cas d'utilisation global......................................................................26 Figure 12: Diagramme de cas d'utilisation pour la gestion des chatBots ...............................26 Figure 13: Diagramme de classe global......................................................................................33 Figure 14: Diagramme de séquence : Authentification ............................................................34 Figure 15: Diagramme de séquence : Automatisation d'un chatbot .......................................35 Figure 16:Diagramme de séquence : Suppression d'un chatbot..............................................36 Figure 17: Diagramme de séquence : Configuration d'un chatbot .........................................37 Figure 18: Logo Angular .............................................................................................................40 Figure 19 : Logo NodeJS ............................................................................................................41 Figure 20: Logo PostgreSQL.......................................................................................................41 Figure 21: Logo Postman.............................................................................................................41 Figure 22: Logo GanttProject .....................................................................................................42 Figure 23: Logo de l'application .................................................................................................42 Figure 24: Interface d'authentification ......................................................................................43 Figure 25:Interface d'accueil.......................................................................................................43 Figure 26:Interface de personnalisation de chatBots................................................................44 Figure 27:Liste des éléments .......................................................................................................44 Figure 28: Exporter la personnalisation ....................................................................................45 Figure 29 Table vide.....................................................................................................................45 Figure 30: Enregistrement d'une personnalisation...................................................................46 Figure 31: Enregistrement dans la base de données .................................................................46 Figure 32:Modification de la personnalisation..........................................................................47
  • 8. Liste des tableaux Tableau 1: Présentation de quelques méthodologies ................................................................20 Tableau 2: Cas d'utilisation associé au Client ...........................................................................25 Tableau 3: Cas d’utilisation : Authentification .........................................................................27 Tableau 4: Cas d’utilisation : Gérer les chatBots......................................................................27 Tableau 5: Cas d’utilisation : Consulter les abonnées..............................................................28 Tableau 6: Cas d’utilisation : Consulter les abonnées..............................................................28 Tableau 7: Cas d’utilisation : Consulter les messages ..............................................................29 Tableau 8: Cas d’utilisation : Demander un pack ....................................................................29 Tableau 9: Dictionnaire de données ...........................................................................................32 Tableau 10: Environnement matériel.........................................................................................39
  • 10. Introduction générale 10 Après avoir atteindre la troisième année de la Licence Appliquée en Sciences et Technologies de l’Information et la Communication, un projet final doit être achevé. Notre sélection se réfère à la conception et le développement d’application web. Après de nombreuses recherches et demandes de stage, nous avons réussi à obtenir l'approbation de la direction de l'entreprise SPIMOB. Nous nous sommes lancés dans l’amélioration d’une application web de vente de chabot. C’est dans ce cadre que notre projet consiste à créer une application web qui sert à la personnalisation du chatbot Facebook. Pour cela ce rapport définit les phases de mise en œuvre de ce projet en se basant sur 3 chapitres : • Le premier chapitre Présentation générale et étude préliminaire qui met en valeur le cadre général du projet. Premièrement, présenter l’organisme de stage et dégager la problématique ainsi que les solutions proposées, agents conversationnels, étude de l’existant, besoins fonctionnels et finalement le planning prévisionnel. • Le deuxième chapitre Etude conceptuelle nous présenterons une modélisation conceptuelle détaillée de notre application et nous le clôturons par les différents diagrammes • Le troisième chapitre Réalisation de l’application qui définit les plusieurs méthodologies de travail ainsi l’implémentation d’application en se basant sur des imprime écrans. Notre rapport se termine par une conclusion générale et quelques perspectives.
  • 11. Chapitre 1 : PRESENTATION GENERALE ET ETUDES PRELIMINIAIRE
  • 12. Chapitre 1 : Présentation générale et études préliminaire 12 1. Introduction Ce chapitre couvre d'abord la présentation de l’organisme d’accueil, l’étude de l’existant qui regroupe les parties qui permettent d’analyser l’existant et nous dégageons les critiques du système actuel afin de développer une application web plus optimale dans le futur. Ensuite, examiner les parties qui permettent de définir le champ de l’étude et le planning prévisionnel. Et enfin, nous décrivons les objectifs à atteindre et les avantages de l’application. 2. Présentation du cadre de projet de fin d’études Le travail élaboré dans ce rapport a été effectué dans le cadre d’un projet de fin d’études en vue de l’obtention de Diplôme National de Licence Appliquée en Sciences et Technologies de l’Information et de la Communication à Ecole Supérieure de Sciences et Technologies Hammam- Sousse (ESSTHS), et a été réalisé à SPIMOB. Dans ce qui suit, nous détaillerons le cadre de notre projet de fin des études. 2.1 Présentation de l’organisme de Stage SPIMOB est une startup fondée en 2018. Elle est spécialisée dans le domaine de l'intelligence artificielle et des applications mobiles éducatives. Depuis sa création, SPIMOB s'est donnée pour mission de faire bénéficier de son savoir-faire en intelligence artificielle et technologique à chacun de ses clients. Les collaborateurs assurent un accompagnement individuel pour aider les clients à mettre en place leurs stratégies. Réaliser des plateformes d'intelligence artificielle dédiée aux différents domaines (finance, santé, éducation, transport...) est un objectif parmi tant d'autres pour SPIMOB. Les réalisations d'applications SPIMOB se trouvent sur le site afrikamob.com. Parmi ses réalisations web : - www.engineer.tn - www.oit.org.tn - www.chatbot.tn
  • 13. Chapitre 1 : Présentation générale et études préliminaire 13 Figure 1: Logo de l'organisme de stage Fiche technique Activité principale : Développement informatique basé sur l’intelligence artificielle Taille de l’entreprise : 1-10 employés Téléphone : +216 51 11 91 11 E-mail : contact@spimob.com Web : https://www.spimob.io/ Type : Entreprise individuelle Date de création : 2018 Figure 2: Emplacement géographique de l'entreprise Spimob
  • 14. Chapitre 1 : Présentation générale et études préliminaire 14 2.2 Présentation du Projet Le but principal de notre projet est de concevoir et mettre en œuvre une solution plus dynamique de personnalisation d’un chatbot et l’intégration de l’apprentissage automatique du bot. 2.2.1 Problématique De nos jours, grâce à l’évolution technologique la digitalisation devient un facteur fondamental pour les personnes physiques et morales pour fournir un service de communication plus adopté. D’où les chatbot ont fait ses preuves comme un outil solide pour effectuer cette tâche. Par contre la personnalisation d’un tel outil est difficile ce qui empêche plusieurs individus à pouvoir utiliser ce service. 2.2.2 Objectifs de Projet L’objectif de ce projet consiste à développer et concevoir une page de personnalisation de chatbot ainsi que l’apprentissage du bot. ▪ Utilisation d’une méthode Flowchart pour la facilitation de personnalisation ▪ L’ajout de l’apprentissage automatique au bot pour améliorer son rendement (NLP) ▪ Optimiser l’application web afin d’avoir un temps de réponse plus réduit. 3. Agents conversationnels (Chatbot) Dans cette section, nous déterminons de façon détaillée et précise ce qu’est le chatbot et ce qui devrait faire, ainsi que son rôle par rapport au service clientèle. Pour satisfaire de besoins réels qui se font ressentir du côté client et aussi de côté société, la mise en place d’un chatbot est indispensable. 3.1 Définition Chatbot Afin d’élaborer une conversation entre homme et machine, cette conversation en langage naturel existe et on l’appelle communément un chatbot ou agent conversationnel. Cette interface homme- machine est influencée par la compétition sur le test de Turing 1 . 1 Donner l'illusion qu'un programme pense par un dialogue sensé.
  • 15. Chapitre 1 : Présentation générale et études préliminaire 15 Cet outil est aujourd’hui largement utilisé par le service client des marques et des commerçants en ligne via la messagerie instantanée. Afin de répondre au mieux aux besoins spécifiques des internautes, tels que l’obtention d’information sur un certain sujet, la réservation, la commande, la recherche, etc. Un chatbot est donc une application conçue pour automatiser des tâches ou simuler des conversations. Grâce à un ensemble de réponses préenregistrées, ce programme informatique peut donc lire des messages (email, SMS, Chat, etc.) et y répondre en quelque seconde Figure 3: Le fonctionnement d'un chatbot 3.2 Types chatBots Les ChatBots sont classés selon leur connaissance : • Les bots de reformulation : Ce sont les bots sans aucune connaissance qui sert à seulement reformuler les questions. • Les bots simples : Ce sont les bots qui se limitent à répondre uniquement aux questions déjà configurer par son administrateur • Les bots intelligents : Ce sont les bots qui apprennent de son interlocuteur et mémoriser les informations 4. Etude de l’existant L’étude de l’existant est une phase très importante dans le projet, elle consiste à mettre à plat de façon aussi claire que possible le fonctionnement du système actuel. Cette étude permet de faciliter la reconnaissance des besoins. Le but de cette section est de déduire les insuffisances ou problèmes afin d’améliorer la qualité du service clientèle.
  • 16. Chapitre 1 : Présentation générale et études préliminaire 16 4.1 Système actuel Au sein de notre organisme de stage, SPIMOB dispose une solution de personnalisation d’un agent conversationnel compliqué ou il s’agit de configurer les blocs et les menus. Les blocs sont l’ensemble de messages/réponses définit par les éléments fournit par l’application et automatisé par le client selon son besoin et les menus leur rôle essentielle d’aider les utilisateurs à découvrir et à accéder plus facilement à des fonctionnalités tout au long de la conversation (catalogue, les prix, etc.). Figure 4: Solution actuelle de personnalisation du bot Figure 5: Fonctionnement Messenger d’un bloc
  • 17. Chapitre 1 : Présentation générale et études préliminaire 17 Figure 6: Fonctionnement Messenger d'un menu 4.2 Critique de l’existant chatbot.tn cible d’agrandir la marge des utilisateurs où les chatbot Facebook devient un service plus demandé. Par contre nous distinguons que la solution existante de personnalisation d’un chatbot lutte quelques utilisateurs de bénéficier de ce service à cause de sa complexité. Nous remarquons que chaque utilisateur doit configurer les listes des blocs, liste des menus et les messages ce qui est difficile pour quelqu’un. Ainsi le système actuellement adopté n’assure pas la disponibilité de réponses aux questions de client qui peut impliquer un grand temps d’attente peut dépasser le temps voulu. 4.3 Solutions proposées Afin de résoudre ces différents problèmes, on a proposé une solution qui consiste à la création d’une deuxième méthode de personnalisation de chatbot : • Faciliter la tâche à l’utilisateur en utilisant une méthode Flowchart plus simple (drag/drop) De plus l’intégration de l’apprentissage automatique du bot afin d’améliorer son rendement :
  • 18. Chapitre 1 : Présentation générale et études préliminaire 18 • Implémenter le traitement automatique des langues2 (NLP) aux agents conversationnels 5. Capture des besoins Cette partie va servir à poser les bases du recueil des besoins du système à réaliser. Pour pouvoir clarifier les besoins des utilisateurs de notre application, nous allons présenter les besoins fonctionnels et les besoins non fonctionnels. 5.1 Capture des besoins fonctionnels Dans cette partie, on va donner les différentes fonctionnalités qu’offrira Chatbot.tn. La solution proposée nous permet de définir les rôles de l’acteur principal « Client » qui utilise cette application web : • Authentification : le client peut s’inscrire ou se connecter en utilisant Facebook. • Consulter les notifications : le client peut consulter les notifications concernant ses bots (création, suppression…etc.) • Consulter les nombres des abonnés : Le client peut consulter le nombre d’abonnés qui utilisent sont bots. • Gérer les chatbot : - Le client peut construire un chatbot personnalisé. En effet, il choisit les éléments ajoutés dans son chatBot selon son besoin. - Le client peut configurer son chatbot par l’intégrer dans n’importe page Facebook qu’il possède - Le client peut automatiser son chatbot selon son choix en utilisant les éléments fournis par l’application - Le client peut ajouter/supprimer des chatbot selon son choix • Demander des packs : le client peut acheter un pack de l’application afin d’améliorer le service des bots. 2 Une technologie qui permet aux machines de comprendre la langue humaine grâce à l’intelligence artificielle
  • 19. Chapitre 1 : Présentation générale et études préliminaire 19 5.2 Capture des besoins non fonctionnels Pour améliorer le rendement de l’application, elle doit répondre à quelques exigences non fonctionnelles • La Disponibilité : L’application doit être toujours disponible et fonctionnelle à tout moment pour l’utilisateur. • L’Accessibilité : Il suffit d’utiliser un navigateur web depuis un smartphone, tablette, pc pour accéder à l’application • La Performance : L’application doit être efficace, le temps de réponse doit être réduit et les fonctionnalités doivent répondre à tous les besoins de l’utilisateur d’une manière optimale. • La Sécurité : L’application doit assurer la sécurité des clients par une authentification et garantir la cohérence de leurs données. • La Robustesse : L’application doit stocker toutes les informations des utilisateurs inscrits et garantir une bonne gestion d’erreurs. • L’homogénéité de l’interface graphique : L’application doit être bien organisée pour permettre la mise en valeur rapide des informations 6. Méthodologies de développement Le choix d’une méthodologie de développement est une phase essentielle pour garantir la qualité de travail et éviter tout problème au niveau des délais. C’est pour cela on doit adapter une méthodologie efficace qui permet de gérer le cycle de vie d’un projet. 6.1 Présentations de quelques méthodologies Les méthodologies de développement se diverse selon le besoin de chaque projet ou les méthodologies classiques sont souvent utilisés lors d’un projet avec un planning bien détaillé et une anticipation de la totalité de risque possible. Cependant, les méthodologies agiles ont les choisit souvent pour les gros projets ou ils offrent une meilleure adaptabilité, gestion de risque et visibilité.
  • 20. Chapitre 1 : Présentation générale et études préliminaire 20 Le tableau suivant montre une présentation de quelques méthodologies. Méthodes Classiques Méthodes Agiles Méthode en cascade : Cascade est une méthodologie qui conseille de dérouler ses tâches d’une manière séquentielle et chaque phase possède une date de fin (pour passer à la tache suivante que lorsque la précédente est terminer) XP : XP est une méthodologie de gestion de projet qui obéit les principes du développement agile, se concentrer sur tous les besoins du client, placer un développement itératif et l'intégration continue Méthode en V : V est une méthodologie inspirée de cascade ou les tâches se déroulent d’une manière séquentielle et le test de produit se fait en parallèle Scrum : Scrum est une méthodologie qui sert à découper le projet en boîte de temps nommée « Sprints », la durée d’un sprint est entre quelques heures et un mois. Un sprint commence par planification opérationnelle et se termine par une démonstration de ce qui a été établi. Tableau 1: Présentation de quelques méthodologies 6.2 Méthodologie adoptée Au cours de développement de notre application et jusqu’à la production on a utilisé la méthodologie Scrum [1] pour la gestion de notre projet et l’objectif de cette méthodologie est de développer uniquement les fonctionnalités qui ajoute de la valeur au produit en respectant les délais et garantir la qualité. ❖ Product Owner : Il est le propriétaire du produit. Il définit toutes fonctionnalités et priorité de la liste de tâches du produit. Il est la seule personne qui peut prendre des décisions sur le projet. Pour notre cas est SPIMOB. ❖ Scrum Master : Il joue le rôle de facilitateur et gardien de la bonne application. Il est au service du product owner. Il facilite les interactions entre les membres de l’équipe Scrum. Il agit sur le processus de développement (développement, définition de la durée´ des Sprints, de l’ordre du jour des réunions scrum, etc.). Dans notre cas SAMIA BEN ISMAIL.
  • 21. Chapitre 1 : Présentation générale et études préliminaire 21 ❖ Development team : C’est l’équipe ce qui est chargé de la réalisation du produit. Aucun n’a un rôle particulier. Pour notre cas est Wassim Omrani et Zoubeyr Sahraoui. Figure 7: Présentation de déroulement de méthodologie Scrum 6.3 Planning Prévisionnel Le diagramme de Gantt [2] est l'un des diagrammes utilisés pour représenter graphiquement l'avancement des différentes tâches constituant un projet. La colonne du diagramme de gauche montre toutes les tâches à faire, tandis que la ligne d'en-tête montre les unités de temps les plus appropriées pour le projet : jours, semaines, mois. Figure 8: Diagramme de Gantt 7. Conclusion Pour ce chapitre, on a commencé par la présentation d’organisme de stage et dégager la problématique et citer nos objectifs, ensuite une étude sur les agents conversationnels ainsi que l’existant. Enfin on explicite les spécifications des besoins et les méthodologies de développement.
  • 22. Chapitre 2 : Etude Conceptuelle
  • 23. Chapitre 2 : Etude conceptuelle 23 1. Introduction Après avoir identifié le cadre de notre projet et le choix de notre méthodologie de développement « Scrum », on passe donc à présenter une conception générale qui est consacrée à l’architecture générale de l’application et la conception UML [3], ainsi nous allons identifier les acteurs et présenter les différents diagrammes. 2. L’architecture de l’application Dans le premier chapitre, nous identifions Scrum comme notre méthodologie de développement, la démarche de la conception sera conforme à l’architecture de l’application. Pour réussir un développement professionnel, il faut choisir une architecture adéquate pour le système, dans notre cas on choisit l’architecture MVC. 2.1 Le Modèle MVC Le Modèle-Vue-Contrôleur (en abrégé MVC, de l’anglais Model-Vue-Controller). C’est un motif d’architecture logicielle destiné aux interfaces graphiques pour les applications web. En général, ce motif est utilisé par de plusieurs Frameworks. L’architecture MVC est donc composée de trois types de modules ayant trois responsabilités distinctes : ✓ Modèle Il contient les données de l’application. Les objets de modèle servent à stocker et récupérer l’état du modèle en base de données. ✓ Vue Elle représente l’interface utilisateur, grâce au modèle elle sert à afficher les données d’affichage et permet également à l’utilisateur de les modifiées. ✓ Contrôleur Il sert à assurer la synchronisation entre le modèle et les vues. D’une manière générale le contrôleur dirige les requêtes entrantes et fait appel aux processus correspondants.
  • 24. Chapitre 2 : Etude conceptuelle 24 Figure 9: Représentation des interactions entre le modèle, la vue et le contrôleur dans le cas d'une application web. 3. Méthodologie de conception Toute application nécessite une méthodologie de travail et un langage de modélisation. Comme on a choisi notre méthodologie Scrum. Nous concentrons sur le langage de modélisation pour cette application où notre choix se réfère au langage de modélisation UML. 3.1 Langage de modélisation UML UML, abréviation de Unified Modeling Language, est un langage de modélisation normalisé comprenant un ensemble intégré de diagrammes, développé pour aider les développeurs de systèmes et de logiciels à spécifier, visualiser, construire et documenter les artefacts de systèmes logiciels, ainsi que pour la modélisation et la gestion d'entreprise. Autres systèmes non logiciels. Le langage UML représente un ensemble de meilleures pratiques d'ingénierie qui ont fait leurs preuves dans la modélisation de systèmes vastes et complexes. Le langage UML est une partie très importante du développement de logiciels orientés objet et du processus de développement logiciel. Le langage UML utilise principalement des notations graphiques pour exprimer la conception de projets logiciels. L'utilisation du langage UML aide les équipes de projet à communiquer, à explorer les conceptions potentielles et à valider la conception architecturale du logiciel. Figure 10: Logo UML
  • 25. Chapitre 2 : Etude conceptuelle 25 4. Conception détaillée Aprés choisir le langage de modélisation UML, nous allons identifier les acteurs de notre système ainsi que présenter une multitude de diagrammes UML : diagramme de cas d’utilisation, diagramme de classe et diagramme de séquence 4.1 Diagramme de cas d’utilisation Les diagrammes de cas d’utilisations sont des diagrammes UML sert à modéliser les fonctionnalités du système en se basant sur des acteurs et des cas d’utilisation. Les cas d’utilisation servent à décrire un ensemble de fonctions, des actions et des services que doit être exécuté afin de satisfaire le besoin d’un acteur qui présentent des personnes ou des entités qui interagissent directement avec le système. 4.1.1 Identification des acteurs En nous référant sur le besoin de notre application, nous identifions l’acteur suivant : - Le Client : c’est celui qui possède la totalité de fonctionnalité de notre système. Ces fonctionnalités doivent être précédées par une authentification. Il peut gérer les chatbot ainsi que consulter les notifications, les abonnées et le nombre de messages ou demander un pack. 4.1.2 Identification des cas d’utilisation Nous présenterons dans le tableau suivant les différents cas d’utilisation et une description pour chaque cas. Cas d’utilisation Description Gérer les chatBots. Le client peut construire, configurer, automatiser et supprimer des chatBots Consulter les notifications Le client peut consulter les notifications à propos de ses chatBots Consulter les abonnées Le client peut consulter le nombre d’abonnés de ses chatBots Consulter le nombre de messages Le client peut consulter le nombre de messages envoyés par ses chatBots Demander un pack Le client peut demander un pack pour améliorer le rendement de ses chatBots Tableau 2: Cas d'utilisation associé au Client
  • 26. Chapitre 2 : Etude conceptuelle 26 4.1.3 Diagramme des cas d’utilisation globale Figure 11:Diagramme de cas d'utilisation global 4.1.4 Diagramme des cas d’utilisation pour la gestion des ChatBots Figure 12: Diagramme de cas d'utilisation pour la gestion des chatBots 4.1.5 Description textuelle Dans cette partie, notre intérêt est de décrire les étapes (scénario), le pré et post condition et les exceptions pour chaque cas d’utilisation.
  • 27. Chapitre 2 : Etude conceptuelle 27 - Authentification L’authentification est la première étape de notre application ou le tableau ci-dessous présente les conditions pour ce cas d’utilisation ainsi que les scénarios et les exceptions. Titre Authentification Acteur Client Pré-condition L’acteur doit s’identifier via Facebook Scénario nominal 1. L’utilisateur demande la page d’authentification 2. L’utilisateur se connecte via Facebook et accepte l’utilisation de chatbot.tn 3. Le système vérifie la demande de connexion 4. Le système affiche la page d’accueil de client Post-condition L’acteur se déconnecte ou choisit une autre tâche Exception Erreur de connexion : Message d’erreur si la connexion via Facebook est impossible Tableau 3: Cas d’utilisation : Authentification - Gérer les ChatBots Après la connexion de client il sera réorienté vers la page d’accueil pour gérer ses chatBots. Le tableau n°4 présente la description pour ce cas d’utilisation. Titre Gérer les ChatBots Acteur Client Pré-condition L’acteur doit s’identifier via Facebook Scénario nominal 1. Le client crée un chatbot 2. Le client configure son chatbot selon sa besoin (page Facebook associé) 3. Le client enregistre son choix 4. Le client automatise son chatbot selon son besoin en vue des éléments existants 5. Le client enregistre son choix 6. Le client supprime un chatbot Post-condition - La déconnexion de l’acteur - Poursuivre vers une autre tâche Exception Erreur de connexion : Message d’erreur si la connexion via Facebook est impossible Atteindre la limite des abonnées Tableau 4: Cas d’utilisation : Gérer les chatBots
  • 28. Chapitre 2 : Etude conceptuelle 28 - Consulter les notifications Après la connexion de client il sera réorienté vers la page d’accueil ou il peut consulter ses notifications. Le tableau suivant décrit ce cas d’utilisation. Titre Consulter les notifications Acteur Client Pré-condition L’acteur doit s’identifier via Facebook Scénario nominal 1. Le client accède à l’icône des notifications 2. Le système affiche la liste de notifications Post-condition - La déconnexion de l’acteur - Poursuivre vers une autre tâche Exception Erreur de connexion : Message d’erreur si la connexion via Facebook est impossible Tableau 5: Cas d’utilisation : Consulter les abonnées - Consulter les abonnées Après la connexion de client, il sera réorienté vers la page d’accueil ou il peut consulter ses notifications. Le tableau suivant décrit ce cas Titre Consulter les notifications Acteur Client Pré-condition L’acteur doit s’identifier via Facebook Scénario nominal 3. Le client consulte la page d’accueil ou la page de personnalisation 4. Le système affiche l’interface des abonnées Post-condition - La déconnexion de l’acteur - Poursuivre vers une autre tâche Exception Erreur de connexion : Message d’erreur si la connexion via Facebook est impossible Tableau 6: Cas d’utilisation : Consulter les abonnées - Consulter le nombre de messages Après la connexion de client, il sera réorienté vers la page d’accueil ou il peut consulter ses notifications. Le tableau suivant décrit ce cas Titre Consulter le nombre de messages Acteur Client Pré-condition L’acteur doit s’identifier via Facebook
  • 29. Chapitre 2 : Etude conceptuelle 29 Scénario nominal 5. Le client consulte le page d’accueil ou la page de personnalisation 6. Le système affiche l’interface des messages envoyés par le bot Post-condition - La déconnexion de l’acteur - Poursuivre vers une autre tâche Exception Erreur de connexion : Message d’erreur si la connexion via Facebook est impossible Tableau 7: Cas d’utilisation : Consulter les messages - Demander un pack Après la connexion de client, il sera réorienté vers la page d’accueil ou il peut consulter ses notifications. Le tableau suivant décrit ce cas Titre Demander un pack Acteur Client Pré-condition L’acteur doit s’identifier via Facebook Scénario nominal 1. Le client consulte la page des packs 2. Le client choisit son pack et la méthode de paiement préféré 3. Le système vérifie le paiement 4. Le système active le pack ciblé par le client Post-condition - La déconnexion de l’acteur - Poursuivre vers une autre tâche Exception Erreur de connexion : Message d’erreur si la connexion via Facebook est impossible Tableau 8: Cas d’utilisation : Demander un pack 4.2 Diagramme de classe En génie logiciel, le diagramme de classe décrit la structure du code à développer ou il montre les classes, les attributs, les méthodes et les relations d’un système
  • 30. Chapitre 2 : Etude conceptuelle 30 4.2.1 Dictionnaire de données Classe Attribut Désignation Type Client IDClient L’identifiant de client Entier Nom Le nom de client Chaîne de caractère Compe_Facebook IDFacebook L’identifiant Facebook Entier Nom Le nom de compte Facebook Chaîne de caractère Prénom Le prénom de compte Facebook Chaîne de caractère Password Mot de passe de compte Facebook Chaine de caractère Chatbot IDChatbot L’identifiant du chatbot Entier Nom Le nom du chatbot Chaîne de caractère Page_associé La page lequel le chatbot est associé Chaîne de caractère Bloc IDBloc L’identifiant de bloc Entier PositionX La position du bloc au Flowchart par rapport à l’axe des abscisses Entier PositionY La position du bloc au Flowchart par rapport à l’axe des ordonnées Entier IDChatbot IDElement L’identifiant de l’élément Entier IDConnexion L’identifiant de la connexion Entier Connexion IDConnexion L’identifiant de la connexion Entier
  • 31. Chapitre 2 : Etude conceptuelle 31 Entrée La source de la connexion Chaîne de caractère Sortie La Target de la connexion Chaîne de caractère Elément IDElement L’identifiant de l’élément Entier Nom Le nom de l’élément Chaîne de caractère HTML Le code source de l’élément Chaîne de caractère Class Class de l’élément Chaîne de caractère Data Les données enregistrées à l’élément Chaîne de caractère Text Titre Une zone de texte rempli selon le client Chaîne de caractère IDBloc L’identifiant du bloc Entier URL Lien d’un site internet Chaîne de caractère NumeroTel Un numéro de téléphone Entier Typing NombreSeconde Le nombre de seconde voulu par le client Entier Media URL Lien d’un média sur Facebook(Image, Vidéo) Chaîne de caractère Picture Image_téléchargé Une image téléchargée de la part de client Image Gallery Image_téléchargé Une image téléchargée de la part de client Image Titre Le titre d’une image de la galerie Chaîne de caractère Description La description d’une image de la galerie Chaîne de caractère
  • 32. Chapitre 2 : Etude conceptuelle 32 Generic Image_telechargé Une image téléchargée de la part de client Image Titre Le titre d’une image de generic Chaîne de caractère Description La description d’une image de generic Chaîne de caractère IDBloc L’identifiant du bloc Entier URL Lien d’un site internet Chaîne de caractère NumeroTel Un numéro de téléphone Entier Video URL Lien d’un vidéo sur Facebook Chaîne de caractère Redirect_to IDBloc L’identifiant d’un bloc Entier Téléphone NumeroTel Un numéro téléphone Entier Audio URL Lien d’un audio sur Facebook Chaîne de caractère Lien URL Lien d’un site internet fournit par le client Chaîne de caractère Mail Mail Un email Chaîne de caractère RSS URL Un site internet Chaîne de caractère Total_Element Entier Fréquence Entier Quick_Reply Titre Une zone de texte rempli de la réponse rapide de client Chaîne de caractère IDBloc L’identifiant de bloc Entier Tableau 9: Dictionnaire de données
  • 33. Chapitre 2 : Etude conceptuelle 33 4.2.2 Présentation du diagramme de classe Après qu’on a dégagé les classes et les attributs. Nous sommes capables de présenter le diagramme de classe qui peut donner une idée sur les différentes classes établissant notre application Figure 13: Diagramme de classe global
  • 34. Chapitre 2 : Etude conceptuelle 34 4.3 Diagramme de séquence Le diagramme de séquence est un schéma de langage UML qui présente comment les éléments du système interagit entre eux et avec les acteurs. On peut présenter les étapes de chaque cas d’utilisation selon un ordre chronologique 4.3.1 Authentification Figure 14: Diagramme de séquence : Authentification Le diagramme ci-dessus présente tous les scénarii lors d’une tentative de connexion où l’utilisateur demande de se connecter, le système le réoriente vers Facebook afin de se connecter si cette étape est validée le système affiche la page d’accueil sinon il affiche la page d’authentification.
  • 35. Chapitre 2 : Etude conceptuelle 35 4.3.2 Automatiser un ChatBot Le diagramme ci-dessous montre tous les scénarios possibles lors de l’automatisation d’un chatbot. Figure 15: Diagramme de séquence : Automatisation d'un chatbot 4.3.3 Suppression d’un chatbot Dans la figure ci-contre, il se présente toutes les étapes possibles afin de supprimer un chatbot
  • 36. Chapitre 2 : Etude conceptuelle 36 Figure 16:Diagramme de séquence : Suppression d'un chatbot
  • 37. Chapitre 2 : Etude conceptuelle 37 4.3.4 Configurer d’un chatbot Grâce au diagramme de séquence suivant on peut identifier tous les scénarios possibles lors de la configuration d’un chatbot. Figure 17: Diagramme de séquence : Configuration d'un chatbot 5. Conclusion Dans ce chapitre, on a réalisé la conception détaillée de tous les cas d’utilisations. Ensuite, on a présenté le diagramme de classe et de séquence afin de tracer le chemin de notre projet à la phase finale : la réalisation.
  • 39. Chapitre 3 : Réalisation de projet 39 1. Introduction Après avoir élaboré la phase de conception de notre application, nous aborderons dans ce chapitre la dernière partie de ce rapport qui vise à décrire la phase d’achèvement et d’aboutissement du projet. Afin de finaliser cette tâche avec succès, il nous doit choisir les bons et nécessaires outils à utiliser. Ce chapitre est divisé en deux parties : la première partie est dédié à présenter l’environnement matériel que nous avons utilisé pour la réalisation du projet, la seconde partie décrit le fonctionnement de notre application web. 2. Environnement de développement Pour l’achèvement de notre application, nous avons choisi un environnement de développement que l’on détaille dans cette partie 2.1 Environnement Matériel Tout au long de la phase d’établissement de ce projet, nous avons utilisé deux machines dont les caractéristiques sont les suivant : Marque LENOVO LENOVO Processeur Intel(R) Core(TM) i3-5005U CPU @ 2.00GHz 2.00 GHz ? RAM 4GB 8GB Système d’exploitation Windows 10 Windows 10 Tableau 10: Environnement matériel
  • 40. Chapitre 3 : Réalisation de projet 40 2.2 Environnement Logiciel Lors de la réalisation du notre projet, nous sommes au besoin des outils suivants • Framework de développement Angular 11 Un Framework (ou plateforme de développement) a pour but fournir au développement peur un ensemble d’outils et de méthode réunis en bibliothèque ou librairies afin d’améliorer la qualité et la rapidité du développement et de l’application, donnant lieu à une maintenance plus simple de celle-ci. Il permet également d’automatiser certaines tâches récurrentes. Son but est donc de simplifier au maximum le développement. • Framework Angular Angular [4] est un Framework open source écrit en JavaScript qui permet la création d’applications Web et plus particulièrement de ce qu’on appelle des « Single Page Applications » : des applications web accessibles via une page web unique qui permet de fluidifier l’expérience utilisateur et d’éviter les chargements de pages à chaque nouvelle action. Le Framework est basé sur une architecture du type MVC et permet donc de séparer les données, le visuel et les actions pour une meilleure gestion des responsabilités. Un type d’architecture qui a largement fait ses preuves et qui permet une forte maintenabilité et une amélioration du travail collaboratif. Figure 18: Logo Angular • NodeJS Node.js [5] est une plateforme logicielle libre en JavaScript, orientée vers les applications réseau événementielles hautement concurrentes qui doivent pouvoir monter en charge. Elle utilise la machine virtuelle V8, la librairie libuv pour sa boucle d'évènements, et implémente sous licence MIT les spécifications CommonJS.
  • 41. Chapitre 3 : Réalisation de projet 41 Figure 19 : Logo NodeJS • PostgreSQL PostgreSQL [6] est un système de gestion de base de données relationnelle et objet. C'est un outil libre disponible selon les termes d'une licence de type BSD. Ce système est concurrent d'autres systèmes de gestion de base de données qu'ils soient libres, ou propriétaires. Figure 20: Logo PostgreSQL • POSTMAN Postman [7] est la plate-forme qui nous offre la possibilité de tester les requêtes HTTP avec ses différentes méthodes. Cela est très important pour savoir les bons paramètres à passer que ce soit à l’entête ou en corps des requêtes à envoyer. Figure 21: Logo Postman
  • 42. Chapitre 3 : Réalisation de projet 42 • GANTTPROJECT GanttProject [7] est un outil permettant de gérer vos projets sur le modèle des diagrammes de Gantt. Cet outil permet de décomposer vos projets en arborescence et d’assigner des ressources à chacune des taches prévues au planning. Il est possible de créer des dépendances entre les activités. Cette fonctionnalité se révèle indispensable lorsque le travail accompli sur une tache est nécessaire pour une autre partie du projet. Figure 22: Logo GanttProject 3. Présentation de l’application web « Chatbot.tn » Dans la partie suivante, nous présenterons les différentes interfaces de notre application en nous basant sur les différents cas d’utilisation déjà vus dans le chapitre étude préliminaire, en premier lieu on présente le logo d’application. Figure 23: Logo de l'application
  • 43. Chapitre 3 : Réalisation de projet 43 3.1 Interface d’authentification Grâce à cette interface, chaque utilisateur peut se connecter en utilisant un compte Facebook pour accéder à la page d’accueil Figure 24: Interface d'authentification 3.2 Page d’accueil L’interface d’accueil présente notre application et aide chaque utilisateur à gérer ses chatbots. Figure 25:Interface d'accueil
  • 44. Chapitre 3 : Réalisation de projet 44 3.3 Interface d’Automatisation La figure ci-dessous affiche une méthode de personnalisation de chatbots. Cette interface donne la possibilité à l’utilisateur de bien choisir le comportement de son chatbot grâce aux éléments fournis par l’application Figure 26:Interface de personnalisation de chatBots Figure 27:Liste des éléments
  • 45. Chapitre 3 : Réalisation de projet 45 3.4 Exporter la personnalisation Un bouton « export » qui permet d’exporter tous les éléments et les liaisons entre eux sous format JSON Figure 28: Exporter la personnalisation 3.5 Enregistrement de la personnalisation Un bouton « save » qui permet d’enregistrer la personnalisation (éléments et liaisons) dans la table de base de données 3.5.1 Insertion Voici le tableau de base de données vide Figure 29 Table vide
  • 46. Chapitre 3 : Réalisation de projet 46 La figure ci-dessous montre l’enregistrement de la personnalisation • Résultat sur l’interface Figure 30: Enregistrement d'une personnalisation • Résultat sur le tableau de base de données (PostgreSQL) Figure 31: Enregistrement dans la base de données
  • 47. Chapitre 3 : Réalisation de projet 47 3.5.2 Modification d’une personnalisation déjà enregistrée Lors de la modification d’une personnalisation déjà enregistrée le bouton « save » joue le rôle d’un bouton de mise à jour La figure ci-dessous décrit une modification Figure 32:Modification de la personnalisation 4. Conclusion A ce stade, nous avons présenté les différentes phases de la réalisation commençant par décrire les différentes technologies utilisées ainsi que l’environnement matériel et logiciel de notre projet. Enfin, nous avons donné une vue finale de projet grâce à des captures d’écran pour bien afficher notre application.
  • 49. Conclusion générale 49 Tout au long de ce projet, nous pouvons affirmer que ce stage nous a donné l’opportunité d’apprendre des nouveaux langages de programmation tels que l’Angular, NodeJS, PostgreSQL, …etc. De même, ce projet m’aider à appliquer tout ce que j’ai appris à l’ESST Hammam-Sousse. En plus, on a eu la chance de s’intégrer à la vie professionnelle. Ce modeste rapport est divisé en trois chapitres, le premier chapitre sert à définir l’établissement de stage et d’une étude générale sur notre application. Le deuxième chapitre sert à une conception profonde de l’application qui trace notre chemin de développement. Finalement le dernier chapitre met en valeur la réalisation de notre projet ou il présente l’environnement de développement. Ce travail répond aux besoins de l’entreprise et il peut être amélioré dans la future par l’ajout des nouvelles fonctionnalités. J’espère que le projet établi a été à la hauteur de la confiance qui m’a été donnée.
  • 50. Annexe sur Traitement automatique des langues naturelles
  • 51. Annexe sur Traitement automatique des langues naturelles 51 1. Traitement automatique du Langage Naturel Le traitement automatique du Langage Naturel [8] est un des domaines de recherche les plus actifs en science des données actuellement. C’est un domaine à l’intersection du Machine Learning et de la linguistique. Il a pour but d’extraire des informations et une signification d’un contenu textuel. Le Traitement Automatique du Langage naturel (TAL) ou Natural Language Processing (NLP) en anglais trouve de nombreuses applications dans la vie de tous les jours : • traduction de texte (DeepL par exemple) • correcteur orthographique • résumé automatique d’un contenu • synthèse vocale • classification de texte • analyse d’opinion/sentiment • prédiction du prochain mot sur smartphone • extraction des entités nommées depuis un texte • … Le TAL (traitement automatique du langage) est généralement composé de deux à trois grandes étapes : • Pré-traitement : une étape qui cherche à standardiser du texte afin de rendre son usage plus facile. • Représentation du texte comme un vecteur : Cette étape peut être effectuée via des techniques de sac de mots (Bag of Words) ou Term Frequency-Inverse Document Frequency (Tf-IdF). On peut également apprendre des représentations vectorielles (embedding) par apprentissage profond. • Classification, trouver la phrase la plus similaire… (optionnel). Ces étapes peuvent être implémenté par la bibliothèque Spacy.
  • 52. Annexe sur Traitement automatique des langues naturelles 52 2. Définition du Spacy spaCy (/speɪˈsiː/ spay-SEE) est une bibliothèque logicielle open source pour le traitement avancé du langage naturel, écrite dans les langages de programmation Python et Cython.[9] La bibliothèque est publiée sous licence MIT et ses principaux développeurs sont Matthew Honnibal et Ines Montani, les fondateurs de la société de logiciels Explosion. 3. Installation pip install -U pip setuptools wheel pip install -U spacy python -m spacy download en_core_web_sm // i import spacy spacy.prefer_gpu() nlp = spacy.load("en_core_web_sm") // 4. Exemple du traitement des différentes étapes TALN avec Spacy 4.1 Tokenisation des mots (Word tokenization) La tokenisation cherche à transformer un texte en une série de tokens individuels. Dans l’idée, chaque token représente un mot, et identifier des mots semble être une tâche relativement simple
  • 53. Annexe sur Traitement automatique des langues naturelles 53 4.2 Tokenisation des phrases (Sentence tokenization) On peut également appliquer une tokenisation par phrase afin d’identifier les différentes phrases d’un texte. Cette étape peut à nouveau sembler facile, puisque a priori, il suffit de couper chaque phrase lorsqu’un point est rencontré (ou un point d’exclamation ou d’interrogation). 4.3 Enlever les mots les plus fréquents (Stop words) Certains mots se retrouvent très fréquemment dans la langue française. En anglais, on les appelle les « stop words ». Ces mots, bien souvent, n’apportent pas d’information dans les tâches suivantes. Lorsque l’on effectue par exemple une classification par la méthode Tf-IdF, on souhaite limiter la quantité de mots dans les données d’entraînement.
  • 54. Annexe sur Traitement automatique des langues naturelles 54 4.4 Etiquetage morpho-syntaxique (Part Of Speech POS) L’étiquetage morpho-syntaxique ou Part-of-Speech (POS) Tagging en anglais essaye d’attribuer une étiquette à chaque mot d’une phrase mentionnant la fonctionnalité grammaticale d’un mot (Nom propre, adjectif, déterminant…).
  • 55. Annexe sur Traitement automatique des langues naturelles 55 4.5 Stemming (Lemmatization) Le stemming consiste à réduire un mot dans sa forme « racine ». Le but du stemming est de regrouper de nombreuses variantes d’un mot comme un seul et même mot. 4.6 Reconnaissance d’entités nommées (Entity Recognition NER) En traitement automatique du langage, la reconnaissance d’entités nommées cherche à détecter les entités telles que des personnes, des entreprises ou des lieux dans un texte. Cela s’effectue très facilement avec SpaCy.
  • 56. Annexe sur Traitement automatique des langues naturelles 56 4.7 Vecteur par mot (Word Vector) Avec SpaCy, on peut facilement récupérer le vecteur correspondant à chaque mot une fois passé dans le modèle pré-entraîné
  • 57. Annexe sur Traitement automatique des langues naturelles 57 4.8 Similarité des phrases (Computing Similarity)
  • 58. Annexe sur Traitement automatique des langues naturelles 58 4.9 Fréquence des mots (words frequency)
  • 60. Bibliographie 60 [1] K. Schwaber and M. Beedle, in agile software development with scrum. [2] «Diagramme de gant definition,» Wikipedia, [En ligne]. Available: https://fr.wikipedia.org/wiki/Diagrammedegant. [3] "UML Guide," Visual Paradigm, [Online]. Available: https://www.visual- paradigm.com/guide/uml-unified-modeling-language/what-is-uml/. [4] «Angular Definition,» Monpetitdev, [En ligne]. Available: https://monpetitdev.fr/cest-quoi- angular-definition/. [5] «NodeJS Definition,» Wikipedia, [En ligne]. Available: https://fr.wikipedia.org/wiki/Node.js. [6] «PostgreSQL Definition,» Wikipedia, [En ligne]. Available: https://fr.wikipedia.org/wiki/PostgreSQL. [7] «Page d'accueil,» POSTMAN, [En ligne]. Available: https://www.postman.com/. [8] «TALN,» [En ligne]. Available: https://www.stat4decision.com/fr/traitement-langage- naturel-francais-tal-nlp/. [9] «spacy,» [En ligne]. Available: https://spacy.io/.
  • 61. Résumé L’objectif principal de ce travail de PFE consiste à Conception et Développement d’une application web pour la personnalisation d’un chatbot Facebook Cette application permet aux internautes de configurer un chatbot Facebook selon leurs besoins. L’application inclut aussi une partie importante qui présente la consultation des notifications,nombre d'abonnés et nombre de vues. Mots clés: Angular, Node JS, PostgreSQL. Abstract The main objective of this PFE work is to Design and Development of a web application for the personalization of a Facebook chatbot This application allows Internet users to consult notifications,number of followers and number of views. Keywords: Angular, Node JS, PostgreSQL. ‫خالص‬ ‫ة‬ ‫لعمل‬ ‫الرئيسي‬ ‫الهدف‬ ‫يتمثل‬ ‫التخرج‬ ‫مشروع‬ ‫على‬ ‫الدردشة‬ ‫روبوت‬ ‫لتخصيص‬ ‫ويب‬ ‫تطبيق‬ ‫وتطوير‬ ‫تصميم‬ ‫في‬ ‫الفايسبوك‬ ‫على‬ ‫محادثة‬ ‫روبوت‬ ‫تكوين‬ ‫اإلنترنت‬ ‫لمستخدمي‬ ‫التطبيق‬ ‫هذا‬ ‫يتيح‬ ‫الفايسبوك‬ ‫ا‬ً‫م‬‫مه‬ ‫ا‬ً‫ء‬‫جز‬ ‫ًا‬‫ض‬‫أي‬ ‫التطبيق‬ ‫يتضمن‬ .‫الحتياجاتهم‬ ‫ا‬ً‫ق‬‫وف‬ ‫يتمثل‬ ‫متابعة‬ ‫في‬ ‫اإلشعارات‬ ‫وعدد‬ .‫المشاهدات‬ ‫وعدد‬ ‫المشتركين‬ ‫المفاتيح‬ ‫الكلمات‬ : Angular, Node JS, PostgreSQL