Construisez votre propre chatbot avec Python
Dans ce tutoriel, je vais vous montrer comment créer un chatbot simple et rapide en python en utilisant une approche basée sur des règles.
Dans ce tutoriel, je vais vous montrer comment créer votre propre chatbot en utilisant Python. Il existe en gros deux variantes de chatbots, basés sur les règles et l’auto-apprentissage.
Un bot basé sur des règles utilise certaines règles sur lesquelles il est formé, tandis qu’un bot auto-apprenant utilise une approche basée sur l’apprentissage automatique pour discuter.
Dans ce tutoriel, je vais vous montrer comment créer un chatbot simple et rapide en python en utilisant une approche basée sur des règles.
Importer les bibliothèques
from nltk.chat.util import Chat, reflections
Créez une liste des modèles reconnaissables et des réponses à ces modèles. Pour ce faire, nous allons créer une variable appelée pairs.
#Pairs is a list of patterns and responses. pairs = [ [ r"(.*)my name is (.*)", ["Hello %2, How are you today ?",] ], [ r"(.*)help(.*) ", ["I can help you ",] ], [ r"(.*) your name ?", ["My name is thecleverprogrammer, but you can just call me robot and I'm a chatbot .",] ], [ r"how are you (.*) ?", ["I'm doing very well", "i am great !"] ], [ r"sorry (.*)", ["Its alright","Its OK, never mind that",] ], [ r"i'm (.*) (good|well|okay|ok)", ["Nice to hear that","Alright, great !",] ], [ r"(hi|hey|hello|hola|holla)(.*)", ["Hello", "Hey there",] ], [ r"what (.*) want ?", ["Make me an offer I can't refuse",] ], [ r"(.*)created(.*)", ["Aman Kharwal created me using Python's NLTK library ","top secret ;)",] ], [ r"(.*) (location|city) ?", ['New Delhi, India',] ], [ r"(.*)raining in (.*)", ["No rain in the past 4 days here in %2","In %2 there is a 50% chance of rain",] ], [ r"how (.*) health (.*)", ["Health is very important, but I am a computer, so I don't need to worry about my health ",] ], [ r"(.*)(sports|game|sport)(.*)", ["I'm a very big fan of Cricket",] ], [ r"who (.*) (Cricketer|Batsman)?", ["Virat Kohli"] ], [ r"quit", ["Bye for now. See you soon :) ","It was nice talking to you. See you soon :)"] ], [ r"(.*)", ['That is nice to hear'] ], ]
D’accord, alors que nous avons terminé les modèles et les réponses, jetons un coup d’œil à quelque chose appelé Reflections . Reflections est un fichier dictionnaire qui contient un ensemble de valeurs d’entrée et de valeurs de sortie correspondantes.
Par exemple, si l’entrée de chaîne était « I’m a programmer », alors la sortie serait « You are a programmer« .
print(reflections)
#Output {'i am': 'you are', 'i was': 'you were', 'i': 'you', "i'm": 'you are', "i'd": 'you would', "i've": 'you have', "i'll": 'you will', 'my': 'your', 'you are': 'I am', 'you were': 'I was', "you've": 'I have', "you'll": 'I will', 'your': 'my', 'yours': 'mine', 'you': 'me', 'me': 'you'}
Nous pouvons également créer notre propre dictionnaire de réflexions dans le même format que les réflexions ci-dessus. Vous trouverez ci-dessous un exemple de la façon de procéder :
my_dummy_reflections= { "go" : "gone", "hello" : "hey there" }
Maintenant, imprimons un message par défaut et terminons notre chatbot :
#default message at the start of chat print("Hi, I'm a programmer and I like to chat\nPlease type lowercase English language to start a conversation. Type quit to leave ") #Create Chat Bot chat = Chat(pairs, reflections)
Maintenant, commençons une conversation
#Start conversation chat.converse()