Humans are always fascinated with self-operating devices and today, it is software “Chatbots” which are becoming more human-like and are automated. The combination of immediate response and constant connectivity makes them an enticing way to extend or replace the web applications trend. But how do these automated programs work? Let’s have a look.

How can Chatbots process human languages?

At first, Chatbot can look like a normal app. There is an application layer, a database and APIs to call external services. In a case of the chatbot, UI is replaced with chat interface. While Chatbots are easy to use for users, it adds complexity for the app to handle.

There is a general worry that the bot can’t understand the intent of the customer. The bots are first trained with the actual data. Most companies that already have a chatbot must be having logs of conversations. Developers use that logs to analyze what customers are trying to ask and what does that mean. With a combination of Machine Learning models and tools built, developers match questions that customer asks and answers with the best suitable answer. For example: If a customer is asking “Where is my payment receipt?” and “I have not received a payment receipt”, mean the same thing. Developers strength is in training the models so that the chatbot is able to connect both of those questions to correct intent and as an output produces the correct answer. If there is no extensive data available, different APIs data can be used to train the chatbot.

How is the Chatbot trained?

Training a chatbot happens at much faster and larger scale than you teach a human. Humans Customer Service Representatives are given manuals and have them read it and understand. While the Customer Support Chatbot is fed with thousands of conversation logs and from those logs, the chatbot is able to understand what type of question requires what type of answers.

How does the chatbot learn after it is live?

Once the chatbot is ready and is live interacting with customers, smart feedback loops can be implemented. During the conversation when customers ask a question, chatbot smartly give them a couple of answers by providing different options like “Did you mean a,b or c”. That way customers themselves matches the questions with actual possible intents and that information can be used to retrain the machine learning model, hence improving the chatbot’s accuracy.

Despite, there are limitations in place assuring that the model should not change based on new replies where users are not driving the bot in right direction. Chatbot will also not just rephrase what the people say in the chat but it is indeed taught to answer things that the bot’s owner wants it to answer.

How Chatbots actually work?

The chatbots work by adopting 3 classification methods:

Pattern Matchers:

Bots use pattern matching to classify the text and produce a suitable response for the customers. A standard structure of these patterns is “Artificial Intelligence Markup Language” (AIML).

A simple pattern matching example:

chatbot-architecture

The machine then gives an output:

Human: Do you know who Abraham Lincoln is?

Robot: Abraham Lincoln was the US President during American civil war.

Chatbot knows the answer only because his or her name is in the associated pattern. Similarly, chatbots respond to anything relating it to the associated patterns. But it can not go beyond the associated pattern. To take it to an advanced level algorithms can help.

Algorithms

For each kind of question, a unique pattern must be available in the database to provide a suitable response. With lots of combination on patterns, it creates a hierarchical structure. We use algorithms to reduce the classifiers and generate the more manageable structure. Computer scientists call it a “Reductionist” approach- in order to give a simplified solution, it reduces the problem.

Multinational Naive Bayes is the classic algorithm for text classification and NLP. For an instance, let’s assume a set of sentences are given which are belonging to a particular class. With new input sentence, each word is counted for its occurrence and is accounted for its commonality and each class is assigned a score. The highest scored class is the most likely to be associated with the input sentence.

For example Sample Training set

class: greeting
“How you doing?”
“good morning”
“hi there”

Few sample Input sentence classification:

input: “Hello good morning”
term: “hello” (no matches)
Term: “good” (class: greeting)
term: “morning” (class: greeting)
classification: greeting (score=2)

With the help of equation, word matches are found for given some sample sentences for each class. Classification score identifies the class with the highest term matches but it also has some limitations. The score signifies which intent is most likely to the sentence but does not guarantee it is the perfect match. Highest score only provides the relativity base.

Artificial Neural Networks

Neural Networks are a way of calculating the output from the input using weighted connections which are calculated from repeated iterations while training the data. Each step through the training data amends the weights resulting in the output with accuracy.

chatbot-architecture

As discussed earlier here also, each sentence is broken down into different words and each word then is used as input for the neural networks. The weighted connections are then calculated by different iterations through the training data thousands of times. Each time improving the weights to making it accurate. The trained data of neural network is a comparable algorithm more and less code. When there is a comparably small sample, where the training sentences have 200 different words and 20 classes, then that would be a matrix of 200×20. But this matrix size increases by n times more gradually and can cause a huge number of errors. In this kind of situations, processing speed should be considerably high.

There are multiple variations in neural networks, algorithms as well as patterns matching code. Complexity may also increase in some of the variations. But the fundamental remains the same, and the important work is that of classification.

NLU (Natural Language Understanding)

It has 3 specific concepts like:

Entities: Entity basically represents a concept in your Chatbot. It might be a payment system in your Ecommerce Chatbot.

Intents: It is basically the action chatbot should perform when the user say something. For instance, intent can trigger same thing if user types “I want to order a red pair of shoes”, “Do you have red shoes? I want to order them” or “Show me some red pair of shoes”, all of these user’s text show trigger single command giving users options for Red pair of shoes.

Context: When a NLU algorithm analyzes a sentence, it does not have the history of the user conversation. It means that if it receives the answer to a question it has just asked, it will not remember the question. For differentiating the phases during the chat conversation, it’s state should be stored. It can either be flags like “Ordering Pizza” or parameters like “Restaurant: ‘Dominos’”. With context, you can easily relate intents with no need to know what was the previous question.

NLP (Natural Language Processing)

Natural Language processing (NLP) Chatbot takes some combination of steps to convert the customer’s text or speech into structured data that is used to select the related answer. Some of the Natural Language Processing steps are:

Sentiment Analysis: Tries to learn if the user is having a good experience or if the after some point the chat should be forwarded to the human.

Tokenization: The NLP divides a string of words into pieces or tokens that are linguistically symbolic or are differently useful for the application.

Named Entity Recognition: The chatbot program model looks for categories of words, like the name of the product, the user’s name or address, whichever data is required.

Normalization: The Chatbot program model processes the text in an effort to find common spelling mistakes or typographical errors that might the user intent to convey. This gives more human like effect of the Chatbot to the users.

Dependency Parsing: The Chatbot looks for the objects and subjects- verbs, nouns and common phrases in the user’s text to find dependent and related phrases that users might be trying to convey.

Like most of the Applications, the Chatbot is also connected to the Database. The knowledge base or the database of information is used to feed the chatbot with the information needed to give a suitable response to the user. Data of user’s activities and whether or not your chatbot was able to match their questions, is captured in the data store. NLP translates human language into information with a combination of patterns and text that can be mapped in the real time to find applicable responses.

There are NLP services and applications programming interfaces that are used to build the chatbots and make it possible for all type of businesses, small. Medium and large scale. The main point here is that Smart Bots have the potential to help increase your customer base by improving the customer support services and as a result boosts the sales as well as profits. They are an opportunity for many small and mid-sized companies to reach a huge customer base.