Vous êtes sur la page 1sur 61

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

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.

10
Chapitre 1 :
PRESENTATION
GENERALE ET ETUDES
PRELIMINIAIRE
Chapitre 1 : Présentation générale et études préliminaire

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

12
Chapitre 1 : Présentation générale et études préliminaire

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

13
Chapitre 1 : Présentation générale et études préliminaire

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

14
Chapitre 1 : Présentation générale et études préliminaire

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.

15
Chapitre 1 : Présentation générale et études préliminaire

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

16
Chapitre 1 : Présentation générale et études préliminaire

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 :

17
Chapitre 1 : Présentation générale et études préliminaire

• 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

18
Chapitre 1 : Présentation générale et études préliminaire

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

19
Chapitre 1 : Présentation générale et études préliminaire

Le tableau suivant montre une présentation de quelques méthodologies.

Méthodes Classiques Méthodes Agiles


Méthode en cascade : XP :
Cascade est une méthodologie qui conseille de XP est une méthodologie de gestion de projet
dérouler ses tâches d’une manière séquentielle qui obéit les principes du développement
et chaque phase possède une date de fin (pour agile, se concentrer sur tous les besoins du
passer à la tache suivante que lorsque la client, placer un développement itératif et
précédente est terminer) l'intégration continue
Méthode en V : Scrum :
V est une méthodologie inspirée de cascade Scrum est une méthodologie qui sert à
ou les tâches se déroulent d’une manière découper le projet en boîte de temps nommée
séquentielle et le test de produit se fait en « Sprints », la durée d’un sprint est entre
parallèle 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.

20
Chapitre 1 : Présentation générale et études préliminaire

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

21
Chapitre 2 : Etude
Conceptuelle
Chapitre 2 : Etude conceptuelle

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.

23
Chapitre 2 : Etude conceptuelle

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

24
Chapitre 2 : Etude conceptuelle

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

25
Chapitre 2 : Etude conceptuelle

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.

26
Chapitre 2 : Etude conceptuelle

- 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

27
Chapitre 2 : Etude conceptuelle

- 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

28
Chapitre 2 : Etude conceptuelle

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

29
Chapitre 2 : Etude conceptuelle

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 Entier


Facebook

Nom Le nom de compte Chaîne de caractère


Facebook

Prénom Le prénom de compte Chaîne de caractère


Facebook

Password Mot de passe de Chaine de caractère


compte Facebook

Chatbot IDChatbot L’identifiant du Entier


chatbot

Nom Le nom du chatbot Chaîne de caractère

Page_associé La page lequel le Chaîne de caractère


chatbot est associé

Bloc IDBloc L’identifiant de bloc Entier

PositionX La position du bloc Entier


au Flowchart par
rapport à l’axe des
abscisses

PositionY La position du bloc Entier


au Flowchart par
rapport à l’axe des
ordonnées

IDChatbot

IDElement L’identifiant de Entier


l’élément

IDConnexion L’identifiant de la Entier


connexion

Connexion IDConnexion L’identifiant de la Entier


connexion

30
Chapitre 2 : Etude conceptuelle

Entrée La source de la Chaîne de caractère


connexion

Sortie La Target de la Chaîne de caractère


connexion

Elément IDElement L’identifiant de Entier


l’élément

Nom Le nom de l’élément Chaîne de caractère

HTML Le code source de Chaîne de caractère


l’élément

Class Class de l’élément Chaîne de caractère

Data Les données Chaîne de caractère


enregistrées à
l’élément

Text Titre Une zone de texte Chaîne de caractère


rempli selon le client

IDBloc L’identifiant du bloc Entier

URL Lien d’un site internet Chaîne de caractère

NumeroTel Un numéro de Entier


téléphone

Typing NombreSeconde Le nombre de Entier


seconde voulu par le
client

Media URL Lien d’un média sur Chaîne de caractère


Facebook(Image,
Vidéo)

Picture Image_téléchargé Une image Image


téléchargée de la part
de client

Gallery Image_téléchargé Une image Image


téléchargée de la part
de client

Titre Le titre d’une image Chaîne de caractère


de la galerie

Description La description d’une Chaîne de caractère


image de la galerie

31
Chapitre 2 : Etude conceptuelle

Generic Image_telechargé Une image Image


téléchargée de la part
de client

Titre Le titre d’une image Chaîne de caractère


de generic

Description La description d’une Chaîne de caractère


image de generic

IDBloc L’identifiant du bloc Entier

URL Lien d’un site internet Chaîne de caractère

NumeroTel Un numéro de Entier


téléphone

Video URL Lien d’un vidéo sur Chaîne de caractère


Facebook

Redirect_to IDBloc L’identifiant d’un Entier


bloc

Téléphone NumeroTel Un numéro téléphone Entier

Audio URL Lien d’un audio sur Chaîne de caractère


Facebook

Lien URL Lien d’un site internet Chaîne de caractère


fournit par le client

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 Chaîne de caractère


rempli de la réponse
rapide de client

IDBloc L’identifiant de bloc Entier

Tableau 9: Dictionnaire de données

32
Chapitre 2 : Etude conceptuelle

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

33
Chapitre 2 : Etude conceptuelle

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.

34
Chapitre 2 : Etude conceptuelle

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

35
Chapitre 2 : Etude conceptuelle

Figure 16:Diagramme de séquence : Suppression d'un chatbot

36
Chapitre 2 : Etude conceptuelle

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.

37
Chapitre3 : Réalisation de
projet
Chapitre 3 : Réalisation de projet

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

Intel(R) Core(TM) i3-5005U CPU


Processeur ?
@ 2.00GHz 2.00 GHz

RAM 4GB 8GB

Système d’exploitation Windows 10 Windows 10

Tableau 10: Environnement matériel

39
Chapitre 3 : Réalisation de projet

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.

40
Chapitre 3 : Réalisation de projet

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

41
Chapitre 3 : Réalisation de projet

• 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

42
Chapitre 3 : Réalisation de projet

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

43
Chapitre 3 : Réalisation de projet

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

44
Chapitre 3 : Réalisation de projet

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

45
Chapitre 3 : Réalisation de projet

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

46
Chapitre 3 : Réalisation de projet

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.

47
Conclusion générale
Conclusion générale

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.

49
Annexe sur Traitement
automatique des langues
naturelles
Annexe sur Traitement automatique des langues naturelles

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.

51
Annexe sur Traitement automatique des langues naturelles

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

52
Annexe sur Traitement automatique des langues naturelles

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.

53
Annexe sur Traitement automatique des langues naturelles

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

54
Annexe sur Traitement automatique des langues naturelles

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.

55
Annexe sur Traitement automatique des langues naturelles

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é

56
Annexe sur Traitement automatique des langues naturelles

4.8 Similarité des phrases (Computing Similarity)

57
Annexe sur Traitement automatique des langues naturelles

4.9 Fréquence des mots (words frequency)

58
Bibliographie
Bibliographie

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

60
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 :‫الكلمات المفاتيح‬

Vous aimerez peut-être aussi