A Chatbot or a talkbot is a computer program that tries to simulate a conversation of a human being in the form of text or voice interactions.
A user can make a demand or enquire regarding any topic and the chatbot replies or executes the given command.
ELIZA and PARRY are one of the oldest versions of chatbots that successfully fooled people into thinking that they were having conversations with a real human being. A version of the Turing test was conducted to test their effectiveness in the 1970's. Testers were only able to make the distinction of human vs chatbot at a level comparable to giving random guesses.
There has been a lot more progress since then, and chatbots are much more efficient now. Build on AI technologies they come with a lot more features such as Natural Language Processing (NLP), deep learning, machine learning algorithms and hence require access a lot more data. It learns more and more about the user as the conversation progresses and is capable of predicting appropriate responses when communicating with the same user in the future.
Mainly, there are two types of chatbots - Stateless and Stateful. A stateless chatbot acts as if it is interacting with a new user with every new conversation. The latter runs on a more sophisticated procedure. It has the capability to analyze past interactions and give responses based on the context.
From virtual assistants to online interactive games, the chatbots have wormed into our day to day lives in one form or another. Many companies are using Chatbots as customer service as they chat with the customers like human.