Le Natural Language Processing

Le Natural Language Processing

RGPD

En janvier 2012, la Commission européenne a proposé un ensemble de mesures législatives afin d’actualiser et moderniser les règles contenues dans l’ancienne directive de 1995 sur la protection des données. Entré en vigueur le 25 mai 2018 dans l’Union Européenne, le nouveau Règlement sur la protection des données peut être directement applicable à tous les acteurs actifs sur le territoire de l’Union Européenne. Il devrait permettre aux citoyens d’avoir un meilleur contrôle sur leurs données personnelles en responsabilisant les entreprises. Dans le cadre de ce travail, The Computer Firm ayant plusieurs clients basés dans l’Union européenne, nous avons tenu compte de cette variable lors de l’analyse de base. Les clients principaux de The Computer Firm sont des fiduciaires ou des avocats. Les messages et questions posés à notre bot pouvant être confidentiels ou privés, nous nous baserons sur les critères donnés par la GDPR.

Afin d’entraîner notre bot et d’améliorer son efficacité, nous allons créer une base de données pour y stocker tous les messages envoyés par l’utilisateur. Cela permettra à court terme de les utiliser pour améliorer notre chatbot. Pour être en accord avec cette loi, nous demanderons à l’utilisateur d’accepter ou non cette condition. En cas d’accord, nous sauvegarderons ses messages dans notre base. En cas de refus, l’utilisateur pourra tout de même utiliser l’application, et ses messages ne seront pas sauvés. La RGPD demande aux entreprises de laisser le choix à l’utilisateur de supprimer à tous moments les données saisies, même s’il a accepté notre police de confidentialité. (econocom, 2018) La loi étant encore relativement floue, nous nous contenterons pour ce travail de ces mesures. (Suisse, 2018)

Une statistique met en évidence le fait que les gens ont peur d’échanger avec un robot. Le 75% des utilisateurs désirent connaître l’instant du dialogue avec une intelligence artificielle. À ce jour, les chatbots ne sont pas encore totalement autonomes. Comme expliqué plus haut, le développeur effectue une certaine quantité de tâches pour veiller à son bon fonctionnement. Statistiquement, un chatbot a en moyenne un taux de précision d’environ 85%. Accessoirement, l’inventeur et collaborateur de Google, Monsieur Ray Kurweil, plus connu pour ses prédictions comme la singularité technologique, est actuellement directeur de service du « Natural Language Recognition ». Selon ses prédictions, aux environs de 2029, l’intelligence artificielle aura un niveau de conversation égal à celui de l’être humain. (Popper, 2016)

Node.JS La plaque tournante de notre application sera notre API RESTful développée avec la plateforme de développement Javascript Node.JS. Cette plateforme est un réel environnement de développement « côté-serveur ». Elle permet de construire des applications hautement évolutives et modernes. Samuel Coppey L’environnement Node.JS comprend le nécessaire à l’exécution de programmes écrits en Javascript. Grâce à Node.JS, notre Javascript peut faire beaucoup plus que de l’interaction dans un site web. Le serveur recevra les requêtes depuis le front-end, à savoir le chat et transmettra ces demandes à la base de données pour la sauvegarde, ainsi qu’à l’API de wit.ai qui analysera le texte. Dans un second temps, wit.ai enverra le résultat de son analyse vers le serveur Node.JS qui l’interprétera et, en collaboration avec la base de données, renverra la réponse de notre bot vers le chat. (Patel, 2018)

Node.JS est clairement un des pionniers du développement des serveurs web en Javascript. Grâce à ses outils et son comportement asynchrone, Node.JS évite toute perte de temps aux processeurs en attente d’une réponse « Input / Output ». Côtés performance et rapidité, Node.JS a un fonctionnement single threaded et engagera toujours un seul thread en lieu et place d’en utiliser un par requête. Ce système évite au processeur de changer constamment de contexte et de nombreuses exécutions mémoire. Notre choix s’est porté sur Node.JS car il permet la création d’un serveur en Javascript de la manière la plus stable et optimale possible. Le fait que The Computer Firm possède déjà une architecture fonctionnant sur cette structure confirme notre choix. La nécessité de nous adapter ne peut que faciliter la future intégration de notre chat au panel d’outils que propose déjà cette société.

Nos entities

L’entity relative au premier cas d’utilisation concerne les salutations. Afin que le chatbot soit capable de comprendre lorsqu’un utilisateur le salue, il a été nécessaire de lui apprendre ce que signifie une salutation. Afin de permettre au chat d’être le plus cordial possible, nous avons décliné les greetings en deux catégories : les salutations informelles et les salutations formelles. Ainsi, la réponse du chat pourra être adaptée en fonction de la salutation de l’utilisateur. S’il se présente avec des salutations plus formelles telles que « Bonjour » ou « Bonsoir », la réponse sera différente que s’il formule « Hello » ou « Salut ». La création d’une simple entity, appelée « approbation » est déclinée en 2 intents, remerciements et félicitations. À l’usage, nous avons remarqué qu’il était naturel pour l’utilisateur d’exprimer un simple « merci » ou « super » lorsque le chat répondait à une question posée. De ce fait, notre bot sera capable de répondre et de comprendre ces remerciements. Dans un but plus technique, au niveau de l’entraînement de notre bot, ce genre d’entities sert également au développeur. Lorsque l’utilisateur déclenche cette entity, nous considérons que la réponse était satisfaisante, respectivement que l’entity choisie était la bonne. Il pourra valider l’entity choisie en cas de réponse de ce genre et, ajouter une phrase de plus à l’entraînement du bot.

Rétrospectives et améliorations futures Grâce à l’expérience acquise durant ces 6 mois d’études, quelques recommandations nous viennent à l’esprit. Suite à l’expérience acquise sur wit.ai, il serait intéressant de reprendre des tests et cas d’utilisation avec DialogFlow. Avec cela voir si un impact significatif interviendrait par exemple sur le code. Comme expliqué en début de rapport, DialogFlow est un excellent service de NLP et mérite un certain crédit. Afin d’exploiter toute la puissance de ce genre d’outil, l’interface graphique doit être plus qu’une simple vitrine servant à l’interaction entre l’homme et la machine. Un chat entièrement sur mesure, avec plusieurs fonctionnalités de choix ou de questions dynamiques pourrait être extrêmement intéressant. Son impact sur la définition des entities et intents n’en serait que plus simple. Il est également agréable de savoir que le produit va être utilisé par The Computer Firm et que l’analyse et la première version effectuée sera un jour mise en production. Voici selon nous, les principales suggestions à envisager à moyen terme.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela rapport gratuit propose le téléchargement des modèles gratuits de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

Avant-propos
Remerciements
Table des matières
Table des illustrations
Liste des tableaux
Glossaires et abréviations
Introduction
Problématique
1 État de l’art
1.1 Introduction aux Chatbots
1.2 Leurs utilisations
1.3 Le Natural Language Processing
1.3.1 Définition
1.3.2 Entity
1.3.3 Intent
1.3.4 L’entraînement
1.3.5 La confiance
1.3.6 Analyse des solutions existantes
1.3.7 Choix de l’outil de NLP
1.3.8 Confirmation du choix de wit.ai
1.3.9 Simple cas d’utilisation DialogFlow
1.3.10 Choix définitif
1.4 RGPD
1.5 Problématique et marché
2 Architecture et environnement de développement
2.1 Node.JS
2.1.1 Choix de Node.JS
2.1.2 Modules Node.JS
2.2 React.JS
2.2.1 Choix de React.JS
2.3 MongoDB
2.3.1 Le choix de MongoDB
2.4 API/SDK de wit.ai
3 Développement de la solution
3.1 Montage de la base de données
3.1.1 Modélisation de la base
3.1.2 Intents et réponses respectives
3.1.3 Sauvegarde des messages utilisateurs
3.2 Structure et élaboration du serveur Node.JS
3.2.1 Architecture du serveur
3.2.2 Protocole HTTP
3.2.3 Les routes
3.2.4 Les schémas mongoose
3.2.5 Wit.ai
3.3 Application web et chat
3.3.1 Choix de chat
3.3.2 Architectures orientées composant React.JS
4 Méthodologie
4.1 L’agilité et SCRUM
4.2 Sprint 0
4.3 Sprint 1
4.4 Sprint 2
4.5 Sprint 3
4.6 Difficultés rencontrées et leurs solutions
5 Conclusion
5.1 Bilan final
5.2 Rétrospectives et améliorations futures
6 Références
7 Annexes
8 Déclaration de l’auteur

Rapport PFE, mémoire et thèse PDFTélécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *