Construire un Chatbot à l'aide de Chatterbot en Python
Vous trouvez frustrant d'attendre dans de longues files d'attente pour le service client ? Vous n’aimez pas lire les pages FAQ ? Si c'est le cas, vous êtes au bon endroit. Avez-vous déjà discuté avec un agent du service client au sujet d'un mauvais article qui vous avait été livré, pour découvrir ensuite que c'était un robot qui vous répondait ? Cet article de blog répondra à des questions telles que : Que sont les robots ? Comment sont-ils construits ? Quelles sources de code sont requises ?
L'intelligence artificielle, spécialement conçue pour améliorer les interactions homme-machine, utilise l'apprentissage automatique et le traitement du langage naturel (NLP) pour créer des chatbots. Les chatbots sont présents dans divers secteurs, tels que les banques, les pizzerias et les magasins de commerce électronique, fournissant un service client en temps réel lié à leurs domaines respectifs. Les chatbots conversent avec les humains d'une manière naturelle, semblable à celle des humains, en s'adaptant au langage humain naturel.
Les chatbots sont devenus de plus en plus populaires ces dernières années en raison de leur capacité à améliorer l'engagement client et à réduire la charge de travail des représentants du service client. En fait, des études montrent que 80 % des entreprises utilisent déjà ou prévoient d’utiliser des chatbots d’ici 2022.
En termes plus simples, les chatbots sont une évolution des systèmes de questions-réponses qui utilisent le traitement du langage naturel. Selon des données récentes, la taille du marché mondial des chatbots devrait atteindre 16,5 milliards de dollars d’ici 2024, avec un taux de croissance annuel de 29,7 %. Avec la tendance croissante du libre-service client, les chatbots offrent aux clients un moyen pratique et efficace de trouver des réponses à leurs requêtes sans avoir à attendre une assistance humaine.
Dans l'ensemble, les chatbots ont révolutionné la façon dont les entreprises interagissent avec leurs clients, offrant une solution rentable pour le support client tout en améliorant l'expérience client globale.
Qu'est-ce qu'un chatbot ?
En 1994, Michael Mauldin crée son premier chatbot nommé « Julia », donnant naissance au terme « chatterbot ». Selon l'Oxford Dictionary, un chatbot est défini comme un programme informatique qui simule une conversation avec des utilisateurs humains, principalement sur Internet. Les chatbots agissent comme des assistants virtuels, communiquant avec les utilisateurs via des messages texte et aidant les entreprises à établir des liens plus étroits avec leurs clients. Essentiellement, les chatbots sont conçus pour reproduire la façon dont les humains communiquent entre eux, que ce soit via une interface de chat ou un appel vocal. Les développeurs s’efforcent de créer des chatbots difficiles à différencier entre un humain et un robot.
Vous trouverez ci-dessous les points sur lesquels nous discuterons de pourquoi et où les chatbots sont utiles dans le monde d'aujourd'hui.
Pourquoi les chatbots sont-ils utiles ?
Disponibilité 24h/24 et 7j/7 : les chatbots peuvent fournir un service client 24h/24 sans nécessiter de pause ni de congé, ce qui les rend idéaux pour les entreprises qui opèrent dans différents fuseaux horaires.
Rentable : les chatbots peuvent aider les entreprises à réduire leurs coûts opérationnels, car ils peuvent traiter plusieurs requêtes clients simultanément sans avoir besoin de personnel supplémentaire.
Personnalisation : les chatbots peuvent être programmés pour fournir des réponses personnalisées aux clients en fonction de leurs préférences, de leur historique d'achat et d'autres données.
Engagement client amélioré : les chatbots peuvent améliorer l'engagement client en offrant une expérience conversationnelle plus interactive et conviviale que les méthodes de service client traditionnelles.
Où les chatbots sont-ils utiles ?
Commerce électronique : les chatbots peuvent aider les clients à trouver des produits, fournir des recommandations de produits et répondre aux requêtes courantes liées aux commandes et à la livraison.
Soins de santé : les chatbots peuvent aider les patients à trouver des informations sur leur état de santé, à planifier des rendez-vous et à recevoir des rappels sur les calendriers de prise de médicaments.
Finance : les chatbots peuvent aider les clients dans la gestion des comptes, fournir des conseils en investissement et aider à la planification financière.
Voyages : les chatbots peuvent aider les clients à trouver et réserver des vols, des hôtels et des voitures de location, ainsi que fournir des informations sur les destinations de voyage.
-
Service client : les chatbots peuvent fournir un service client rapide et efficace, en répondant aux questions fréquemment posées et en résolvant des problèmes simples.
Comment fonctionne un chatbot ?
Les chatbots utilisent une combinaison de technologies telles que l'apprentissage automatique, le traitement du langage naturel (NLP) et l'intelligence artificielle (IA) pour simuler des conversations avec des humains. Voici une explication détaillée du fonctionnement des chatbots :
Entrée de l'utilisateur : la conversation entre l'utilisateur et le chatbot commence par une entrée de l'utilisateur. Cela peut être un message texte ou une commande vocale.
Traitement du langage naturel (NLP) : le chatbot utilise le NLP pour analyser les entrées de l'utilisateur et comprendre l'intention qui les sous-tend. Cela implique de décomposer l'entrée en mots individuels et d'identifier les expressions clés, les mots-clés et le contexte.
Récupérer des informations : une fois que le chatbot comprend l'intention de l'utilisateur, il récupère les informations pertinentes de sa base de connaissances ou de sa base de données. Ces informations peuvent être stockées dans un format structuré comme une base de données ou dans un format non structuré comme un site Web ou une page de réseau social.
Générer une réponse : sur la base des informations récupérées, le chatbot génère une réponse pertinente par rapport à la saisie de l'utilisateur. Cette réponse peut prendre la forme de texte, de voix ou les deux.
Apprentissage automatique : à mesure que le chatbot interagit avec davantage d'utilisateurs, il apprend des conversations et améliore ses réponses. Cela se fait à l'aide d'algorithmes d'apprentissage automatique qui analysent les conversations et identifient les modèles.
Intégration avec d'autres systèmes : les chatbots peuvent être intégrés à d'autres systèmes tels que des logiciels de gestion de la relation client (CRM), des outils d'automatisation du marketing et des plateformes de commerce électronique pour offrir une expérience utilisateur transparente.
Amélioration continue : les chatbots sont continuellement améliorés et mis à jour pour fournir de meilleures réponses, traiter des requêtes plus complexes et s'intégrer aux nouveaux systèmes.
Dans l’ensemble, les chatbots utilisent une combinaison de technologies avancées pour offrir une expérience conversationnelle personnalisée, efficace et conviviale. Avec la capacité de traiter plusieurs requêtes simultanément et de fournir une assistance client 24h/24 et 7j/7, les chatbots deviennent un outil essentiel pour les entreprises de toutes tailles.
Maintenant que nous savons ce que sont les chatbots, où ils sont utilisés et à quel point ils sont bénéfiques, parlons un peu du chatterbot.
Chatterbot
Chatterbot est une bibliothèque Python qui permet aux développeurs de créer des chatbots à l'aide d'algorithmes de traitement du langage naturel (NLP) et d'apprentissage automatique. Il s’agit d’un choix populaire pour créer des interfaces conversationnelles et est utilisé par les entreprises et les développeurs du monde entier.
Voici quelques-unes des fonctionnalités de Chatterbot :
Prise en charge de plusieurs langues : Chatterbot prend en charge plusieurs langues, dont l'anglais, l'espagnol, le français et l'allemand, ce qui en fait un choix polyvalent pour les développeurs travaillant avec des clients internationaux.
Modèles pré-entraînés : Chatterbot est livré avec des modèles pré-entraînés qui peuvent être utilisés immédiatement pour créer rapidement des chatbots. Ces modèles sont formés sur de grands ensembles de données et peuvent fournir des réponses précises aux requêtes courantes.
Formation personnalisée : les développeurs peuvent également former Chatterbot sur leurs propres ensembles de données pour créer un chatbot personnalisé capable de répondre à des requêtes et des cas d'utilisation spécifiques.
Intégration avec d'autres plateformes : Chatterbot peut être intégré à d'autres plateformes telles que Facebook Messenger, Slack et Twitter, permettant aux entreprises de fournir une assistance client 24h/24 et 7j/7 et d'améliorer l'engagement client.
Prise en charge de différents formats de conversation : Chatterbot peut être utilisé pour créer des chatbots prenant en charge différents formats de conversation tels que le texte, la voix et la vidéo.
Open−source : Chatterbot est une bibliothèque open−source, ce qui signifie que les développeurs peuvent la modifier et la personnaliser pour l'adapter à leurs besoins spécifiques.
Utilisons maintenant chatterbot pour écrire quelques exemples de chatbots simples en Python.
Exemple 1
La première étape pour nous est de pouvoir installer la bibliothèque chatbot et pour cela nous devons exécuter les commandes ci-dessous.
Commande
pip install chatterbot
Après la commande ci-dessus, nous devons également exécuter la commande ci-dessous.
Commande
pip install chatterbot_corpus
Une fois ces deux commandes exécutées avec succès sur votre machine, l'étape suivante consiste à créer un nouveau fichier nommé main.py et à y écrire le code suivant.
Exemple
from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer
import logging
logger = logging.getLogger()
logger.setLevel(logging.CRITICAL)
# Create a new chatbot instance
chatbot = ChatBot('MyChatBot')
# Create a new trainer for the chatbot
trainer = ListTrainer(chatbot)
# Train the chatbot on a dataset of conversations
trainer.train([
'Hi',
'Hello',
'How are you?',
'I am doing well, thank you.',
'That is good to hear.',
'What is your name?',
'My name is MyChatBot.',
'Nice to meet you, MyChatBot.',
])
# Get a response to user input
response = chatbot.get_response('Hello')
# Print the response
print(response)
Explication
Ce code Python montre comment créer et former un chatbot de base à l'aide de la bibliothèque ChatterBot :
Importez les bibliothèques nécessaires :
Classe ChatBot de la bibliothèque Chatterbot pour créer l'instance de chatbot
Classe ListTrainer de la bibliothèque chatterbot.trainers pour entraîner le chatbot sur un ensemble de données de conversations
bibliothèque de journalisation pour définir le niveau d'enregistreur sur CRITICAL (facultatif)
Créez un enregistreur et définissez son niveau sur CRITIQUE (facultatif). Ceci est fait pour supprimer tous les messages de journalisation du chatbot.
Créez une nouvelle instance de chatbot à l'aide du constructeur ChatBot('MyChatBot'), où 'MyChatBot' est le nom donné au chatbot.
Créez un nouveau formateur pour le chatbot à l'aide du constructeur ListTrainer (chatbot).
Entraînez le chatbot à l’aide de la méthode trainer.train() avec une liste de paires de conversations comme argument. Chaque paire est constituée d'une question et de sa réponse correspondante.
Obtenez une réponse du chatbot pour une entrée utilisateur donnée à l'aide de la méthode chatbot.get_response(). L'entrée de l'utilisateur est passée en argument à cette méthode.
Imprimez la réponse obtenue du chatbot à l'aide de l'instruction print(response).
Pour exécuter le code ci-dessus, nous devons exécuter la commande ci-dessous.
Commande
python3 main.py
Une fois que nous avons exécuté la commande ci-dessus, nous devrions nous attendre à une sortie similaire à celle présentée ci-dessous.
Sortir
[nltk_data] Downloading package averaged_perceptron_tagger to
[nltk_data] /Users/mlatiya/nltk_data...
[nltk_data] Package averaged_perceptron_tagger is already up-to-
[nltk_data] date!
[nltk_data] Downloading package punkt to /Users/mlatiya/nltk_data...
[nltk_data] Package punkt is already up-to-date!
[nltk_data] Downloading package stopwords to
[nltk_data] /Users/mlatiya/nltk_data...
[nltk_data] Package stopwords is already up-to-date!
List Trainer: [####################] 100%
Nice to meet you, MyChatBot.
Explorons un autre exemple de chatterbot.
Considérez le code ci-dessous.
Exemple
from chatterbot import ChatBot
# Uncomment the following lines to enable verbose logging
import logging
logging.basicConfig(level=logging.INFO)
# Create a new instance of a ChatBot
bot = ChatBot(
'Terminal',
storage_adapter='chatterbot.storage.SQLStorageAdapter',
logic_adapters=[
'chatterbot.logic.MathematicalEvaluation',
'chatterbot.logic.TimeLogicAdapter',
'chatterbot.logic.BestMatch'
],
database_uri='sqlite:///database.db'
)
print('Welcome! Type something to begin, or enter "bye" to end the conversation.')
# The following loop will execute each time the user enters input
while True:
try:
user_input = input()
if user_input.lower() == 'bye':
print('Goodbye!')
break
bot_response = bot.get_response(user_input)
print(bot_response)
# Press ctrl-c or ctrl-d on the keyboard to exit
except (KeyboardInterrupt, EOFError, SystemExit):
break
Explication
Ce code crée un chatbot en ligne de commande qui répond aux entrées de l'utilisateur à l'aide d'un modèle pré-entraîné. Le chatbot est créé à l'aide de la classe ChatBot de la bibliothèque chatterbot.
L'objet ChatBot est créé avec un nom « Terminal » et quelques autres paramètres, tels que l'adaptateur de stockage à utiliser, qui est défini sur un adaptateur de stockage SQL, et les adaptateurs logiques à utiliser. Les adaptateurs logiques définissent la manière dont le chatbot générera des réponses aux entrées de l'utilisateur. Dans ce cas, le chatbot utilisera une combinaison d'un adaptateur d'évaluation mathématique, d'un adaptateur de logique temporelle et d'un adaptateur de meilleure correspondance.
Le paramètre database_uri définit l'emplacement de la base de données que le chatbot utilisera pour le stockage. Dans cet exemple, une base de données SQLite est utilisée avec le nom de fichier database.db.
Une fois le chatbot créé, le code entre dans une boucle qui demande en permanence à l'utilisateur une saisie et imprime la réponse du chatbot. La fonction input() est utilisée pour obtenir les entrées de l'utilisateur à partir de la ligne de commande, et la méthode bot.get_response() est utilisée pour obtenir la réponse du chatbot à l'entrée de l'utilisateur. La réponse du chatbot est ensuite imprimée sur la console à l'aide de la fonction print().
La boucle continuera à s'exécuter jusqu'à ce que l'utilisateur appuie sur ctrl−c ou ctrl−d sur le clavier, ce qui déclenchera une exception et provoquera la sortie de la boucle.
Pour exécuter le code ci-dessus, nous devons exécuter la commande ci-dessous.
Commande
python3 main.py
Une fois que nous avons exécuté la commande ci-dessus, nous devrions nous attendre à une sortie similaire à celle présentée ci-dessous.
Sortir
[nltk_data] Downloading package averaged_perceptron_tagger to
[nltk_data] /Users/mlatiya/nltk_data...
[nltk_data] Package averaged_perceptron_tagger is already up-to-
[nltk_data] date!
[nltk_data] Downloading package punkt to /Users/mlatiya/nltk_data...
[nltk_data] Package punkt is already up-to-date!
[nltk_data] Downloading package stopwords to
[nltk_data] /Users/mlatiya/nltk_data...
[nltk_data] Package stopwords is already up-to-date!
Welcome! Type something to begin, or enter "bye" to end the conversation.
bye
Goodbye!
Conclusion
En conclusion, le développement des chatbots a révolutionné la manière dont les entreprises interagissent avec leurs clients. En utilisant ChatterBot, une bibliothèque Python pour créer des chatbots, les développeurs peuvent facilement créer des chatbots intelligents et réactifs qui peuvent les aider dans diverses tâches. ChatterBot est livré avec plusieurs adaptateurs intégrés pour les fonctions courantes du chatbot telles que l'évaluation mathématique, la logique temporelle et la capacité de trouver la meilleure correspondance avec les entrées d'un utilisateur.
De plus, ChatterBot fournit une interface simple pour former le chatbot sur des ensembles de données personnalisés, permettant aux développeurs d'adapter le chatbot à leurs besoins spécifiques. Dans l'ensemble, ChatterBot est un outil puissant pour créer des chatbots qui peuvent apporter de la valeur aux entreprises et améliorer l'expérience client.