Quel outil pour créer un chatbot avec Python ?
Dans ce didacticiel, vous apprendrez comment créer un projet de chatbot en Python.
Plan de l'article
Présentation
Les chatbots sont très utiles tant pour les entreprises que pour les clients.
A découvrir également : Comprendre le système scolaire espagnol : structure, niveaux et spécificités
La plupart des gens préfèrent parler directement à partir d’un chat plutôt que d’appeler des centres de service.
Facebook a publié des données qui ont prouvé la valeur des robots. En fait, plus de 2 milliards de messages sont envoyés chaque mois entre particuliers et entreprises.
A découvrir également : Est-ce qu’il y a de la nicotine dans les puffs ?
Selon une étude HubSpot, 71 % des personnes souhaitent bénéficier d’une assistance client via des applications de messagerie. C’est donc un moyen rapide de résoudre vos problèmes.
Cela dit, les chatbots ont un bel avenir dans les entreprises.
Créons maintenant un projet intéressant dans Chatbot. Nous allons déployer un chatbot à partir de zéro.
Ce logiciel comprendra de quoi parle l’utilisateur et peut donner une réponse adéquate.
Ce que vous devez avoir au préalable
Pour déployer le chatbot, nous allons d’abord utiliser Keras. Il s’agit d’une bibliothèque d’apprentissage profond, NLTK, qui est une suite d’outils de traitement du langage naturel (NLP). Nous avons également besoin de quelques bibliothèques utiles. Exécutez la commande suivante pour vous assurer que toutes les bibliothèques sont installées :
installation de pipeline tensorflow keras pickle nltk Si vous souhaitez apprendre Python gratuitement, voici le guide principal.
Comment fonctionnent les chatbots ?
Les chatbots sont simplement des logiciels intelligents qui peuvent interagir et communiquer avec des personnes comme des humains.
C’est intéressant, n’est-ce pas ?
Voyons maintenant comment ils fonctionnent réellement.
Tous les chatbots sont inclus dans les concepts de la PNL (traitement du langage naturel). La PNL comprend deux choses :
- NLU (Natural Language Comprehension) : c’est la capacité des machines à comprendre le langage humain tel que l’anglais. français, etc…
- NLG (Natural Language Generation) : C’est la capacité d’une machine à générer du texte similaire à des phrases écrites par des humains.
Imaginez qu’un utilisateur pose une question à un chatbot :
Bonjour, quelles sont les nouvelles aujourd’hui ? Le chatbot divisera la phrase de l’utilisateur en deux choses :
- Intention
- entité
L’intention de cette phrase pourrait être have_news car elle fait référence à une action que l’utilisateur souhaite effectuer.
L’entité donne des détails spécifiques sur l’intention, donc « aujourd’hui » sera l’entité.
Par conséquent, un modèle d’apprentissage automatique est utilisé pour reconnaître le les intentions et les entités du chat.
La structure du dossier de projet
Une fois le projet terminé, vous aurez tous ces fichiers.
Examinons rapidement chaque fichier. Cela vous donnera une idée de la façon dont le projet sera mis en œuvre.
- Train_chatbot.py : Dans ce fichier, nous allons créer et entraîner le modèle d’apprentissage profond ou d’apprentissage profond. Ce dernier va classer et identifier ce que l’utilisateur demande au robot.
- Gui_Chatbot.py : C’est dans ce fichier que nous allons créer une interface utilisateur graphique pour discuter avec notre chatbot entraîné.
- Indents.json : Le fichier d’intention contient toutes les données que nous allons utiliser pour entraîner le modèle. Il comprend une collection d’étiquettes avec leurs modèles et réponses correspondants.
- ChatBot_Model.h5 : Il s’agit d’un fichier de format de des données hiérarchiques dans lesquelles nous stockons les poids et l’architecture de notre modèle entraîné.
- Classes.pkl : Le fichier de cornichon peut être utilisé pour enregistrer tous les noms de balises afin de les classer lorsque nous prédisons le message.
- Words.pkl : Le fichier pickle words.pkl contient tous les mots uniques qui composent le vocabulaire de notre modèle.
Comment créer votre propre chatbot ?
Voici les 5 étapes simples pour créez ce chatbot :
Étape 1. Importer des bibliothèques et charger des données
Créez un nouveau fichier Python et appelez-le train_chatbot.
Ensuite, nous allons importer tous les modules nécessaires. Ensuite, nous allons lire le fichier de données JSON dans notre programme Python.
Le modèle ne prend pas de données brutes. Vous devez subir de nombreux prétraitements pour que la machine puisse facilement le comprendre.
Pour les données textuelles, il existe plusieurs techniques de prétraitement. Le premier est la tokenisation. Il consiste à diviser des phrases en mots.
En regardant le fichier d’intention, nous constatons que chaque balise contient une liste de modèles et de réponses.
Nous jetons chaque modèle et ajoutons les mots à une liste.
Également nous créons une liste de classes et de documents pour y ajouter toutes les intentions associées aux modèles.
Il consiste à convertir des mots sous la forme d’un slogan pour réduire tous les mots canoniques.
Par exemple, les mots play, etc. seront remplacés par play.
De cette façon, nous pouvons réduire le nombre total de mots de notre vocabulaire. Maintenant, nous lemmatisons chaque mot et supprimons les doublons.
Pour graver l’objet Python dans un fichier, nous utilisons la méthode pickle.dump. Ces fichiers seront utiles une fois la formation terminée et lorsque nous planifierons des chats.
Étape 3. Création de données de formation et de test
Pour entraîner le modèle, nous allons convertir chaque modèle d’entrée en chiffres.
Tout d’ abord, nous allons lemmatiser chaque mot du modèle.
Pour ce faire, vous devez créer une liste de zéros de la même longueur que le nombre de tous les mots. Nous allons définir la valeur 1 uniquement pour les index qui contiennent le mot dans les modèles. De même, nous allons créer la sortie en définissant la valeur 1 pour la classe d’entrée à laquelle appartient le modèle.
L’architecture de notre modèle sera un réseau de neurones composé de 3 canapés denses.
La première couche contient 128 neurones, la seconde en compte 64 et la dernière aura les mêmes neurones que le nombre de classes.
Des couches déroulantes sont introduites pour réduire le sur ajustement du modèle. Nous utilisons l’optimiseur SGD et ajustons les données pour démarrer entraîner le modèle.
Lorsque la formation à 200 époques est terminée, nous enregistrons le modèle entraîné à l’aide de la fonction Keras model.save
Créons maintenant une belle interface graphique pour notre chatbot dans un nouveau fichier.
Dans notre fichier GUI, nous utiliserons le module Tkinter pour créer la structure de l’application de bureau. Nous saisirons ensuite le message de l’utilisateur et effectuerons un prétraitement avant de le saisir dans notre modèle formé.
Le modèle prédit l’étiquette du message de l’utilisateur. Ensuite, nous sélectionnerons aléatoirement la réponse dans la liste des réponses de notre dossier d’intention ou d’ « intentions ».