July 17, 2020 Deepak Raj


In the age of AI, chatbots are getting popular day by day. It's industry’s newest tools designed to simplify the interaction between humans and computers. From E-commerce to Healthcare institutions, Everyone wants to use Chatbot for interaction with the user.

What is a Chatbot

A chatbot is a software application used to conduct an online chat conversation via text or text-to-speech, in lieu of providing direct contact with a live human agent. — According to Wikipedia.

Build Your First Python Chatbot In 5 Minutes

Types of Chatbot

Chatbots can be categorized into two types

  • Rules-Based
  • Self Learning

The Rules-Based:- Rules-based chatbots trains a chatbot to answer the question based on pre-trained rules. these type of chatbot are good for simple queries.

Self-learning chatbot:- Self-learning chatbots are based on machine learning algorithms and they are smarter than rules-based chatbots. They can learn on their own.

How Chatbot Works

AI-powered chatbots are intelligent and can also learn on their own. They use Natural language processing and machine learning algorithm to learn and feed on data.

E.g: Google Assistant, Alexa, Siri

Intelligent AI- chatbot feed on user data and learn and try to improve themselves. They analyze it with complex AI- Algorithms and output response as text or voice. Since these bots can learn from behaviour and experiences, they can respond to a wide range of queries and commands.

Today, we will create python chatbot using ChatterBot library. Let's get started!

1. Create Virtual Environment

pipenv is a python library to create virtual environment easily.


pip install pipenv
pipenv install

2. Install Libraries

We Will Use ChatterBot library to create Simple Python Chatbot. Install chatterbot and chatterbot_corpus with the help of pip command.


pipenv install chatterbot
pipenv install chatterbot_corpus

3. Create and Train the Chatbot


from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer

BOTNAME = "Pyter"

def start():
    bot = ChatBot(BOTNAME,
        logic_adapters=[
        {
            'import_path': 'chatterbot.logic.BestMatch',
            'default_response': 'I am sorry, but I do not understand.',
            'maximum_similarity_threshold': 0.90,
        },        
    ],
        preprocessors = [
            "chatterbot.preprocessors.clean_whitespace",
        ],
        input_adaptor="chatterbot.input.TerminalAdaptor",
        output_adaptor="chatterbot.output.TerminalAdaptor",
        database_uri='sqlite:///database.sqlite3')

    trainer = ChatterBotCorpusTrainer(bot)

    # Train based on the english corpus
    trainer.train(
        "chatterbot.corpus.english",
        "chatterbot.corpus.english.greetings",
        "chatterbot.corpus.english.conversations",
        )

    print(f"Hello I am {BOTNAME}")

    while True:
        try:
            bot_input = input("You: ")
            bot_respose = bot.get_response(bot_input)
            print(f"{BOTNAME}: {bot_respose}")

        except(KeyboardInterrupt, EOFError, SystemExit):
            break

if __name__ == "__main__":
    start()

More Articles by Author

If you like to write article or Improve this article for CodePerfectPlus mail us at codeperfectplus@gmail.com


tags: python, chatbot