Code Source

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.

À lire aussi  5 bibliothèques Python utiles pour les projets d’apprentissage automatique

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()

Chatbot conversation


Articles similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Bouton retour en haut de la page