
Building Simple Chatbot using Python
A chatbot is an AI-based software that is deployed in an application, device or websites to communicate with the users or to perform a task e.g., Google Assistant, Alexa, Siri, etc.
Most of the companies started using chatbots as customer support and now it is emerging as a task performer.
Two types of chatbots
- Rule-Based
- Self-learning
1. Rule-Based
A bot is developed in such a way that it analyzes the questions based on specific rules.And based on these rules data will be trained. These types of bots are developed to communicate with simple questions.
2. Self-learning
Self-learning bots are developed using machine learning libraries and these are considered as more efficient bots. Self-learning can be classified as two types-Retrieval Based and Generative.
Retrieval Based
This type of bots chooses responses from a predefined message library. It analyses the conversation and selects the best response from the library.
Generative
These bots create responses on their own apart from selecting messages from the predefined library.
Building Chatbot
Let’s build chatbot using chatterBot library
First, let’s download the library using the following command
pip install chatterbot
Then Import the same to build a chatbot and also import chatterbot.trainers in order to train the data.
from chatterbot import * #importing ListTrainer from chatterbot.trainers import *
Creating and training a bot
First, create an instance of ChatBot class
robo = ChatBot(name=’Bot’, readonly=true,
logicadapters=[‘chatterbot.logic.MathematicalEvaluation’,
‘chatterbot.logic.BestMatch’])
- name – It represents bot name
- readonly – To prevent the bot from learning after actual conversation
- logic adapters – List of modules required to train. In our case, we have chosen MathematicalEvalution to solve maths problems and BestMatch to choose the best response.
Let us train a few messages and mathematical operations.
greetings = [ 'Hello!!', 'Hi, hello!', 'What’s Up?', 'How are you?', 'Fine, How about You?', 'Im doing Good, 'Im fine, thank you', ‘welcome’ 'Im Glad, you are talking to me', 'My pleasure', 'Whats your name?', 'My name is Bot. Ask me an interesting math question.' ] maths1 = ['add', 'a+b'] maths2 = ['square', '**']
Now let us train the above-mentioned responses by using ListTrainer.
training_of_data = ListTrainer(robo) for i in (greetings, maths1, maths2): training_of_data.train(i)
Now Bot ready to start a conversation with trained messages
Below is the sample of chatbot conversation >>> print(robo.get_response("hello")) Hi, hello! >>> print(robo.get_response("What’s Up")) Im Glad, you are talking to me. >>> print(robo.get_response("what is your name?")) My name is Bot. ask me a interesting maths question. >>> print(robo.get_response("Tell me how to add two numbers")) a+b. >>> print(robo.get_response ("do you know the operator that is used to find square or cube root of the number"))