How our NLP works

How our NLP works: an overview

If you want your chatbot to be able to do more than follow the branches of a scripted conversation, you'll need it to use our proprietary, state-of-the-art, Natural Language Processing capability. NLP is what allows your chatbot to understand the meaning of a user's statement and act accordingly. If creating this kind of smart chatbot sounds daunting, don't worry. As always, our priority has been to develop intuitive tools for you. Anyone can make chatbots with NLP on our platform, no coding is needed.



In order for your chatbot to break down a sentence to get to the meaning of it, we have to consider the essential parts of the sentence. One useful way that the wider community of researchers into Artificial Intelligence do this is to distinguish between Entities and Intent. We also follow this helpful approach.

An Entity in a sentence is an object in the real world that can be named. So people, places, organisations, times etc. For example, in the sentence: My sister went on holiday to New York in 2017, the Entities are sister (person), New York (place) and 2017 (time).

Our NLP models are excellent at identifying Entities and can do so with near human accuracy.

Intent in a sentence is the purpose or goal of the statement. In a sentence of the type, I would like to purchase a year's membership or I would like to book an appointment it is easy to identify the Intent, namely to purchase and to make a booking respectively. Many sentences, however, do not have a clear Intent. So it is more challenging for a chatbot to recognise Intent but again, our NLP models are very effective at it.



It is not necessary to know this to produce clever, NLP-enabled chatbots, but the curious or more technical chatbot builder might be interested to learn how we solve problem of recognizing Intent. We apply the Bernoulli Naive Bayes algorithm to the user's text. The advantage of this algorithm is that it can be trained to deliver great results very quickly. There are other approaches, but they take much more investment in training the model before becoming effective.

To make NLP work for your particular goals, you will need to define all the types of Entities and Intents you want the bot to recognise. In other words, you will create several NLP models, one for every Entity or Intent you need your chatbot to be able to identify. You can build as many NLP models as you like on our platform (for free, as always). So, for example, you might build an NLP Intent model so that the bot can listen out for whether the user wishes to make a purchase. And an Entity model which recognises locations and another that recognises ages. Your chatbots can then utilise all three to offer the user a purchase from a selection that takes into account the age and location of the customer.

On our platform, you don't need to build a new NLP model for each new bot that you create. All of your chatbots will have the option of accessing all of the NLP models you have trained. For more on how to use NLP in your chatbots, go here.



If you are creating an NLP model from scratch, it will be very basic at first. You will need to provide lots of examples (we use the term samples) of sentences manually, along with information about what Entities are in the sentence or what the Intent is. Obviously, the more examples the NLP model has to draw on, the better. It will be more accurate. Intent requires an even wider amount of samples to operate and provide your users with accurate results, but if configured properly, will work like a charm.

To develop your NLP model over time, so that it becomes more and more accurate at solving the task you want it to address, you will want the chatbot to learn, especially from its mistakes. Machine Learning is a hot topic in the search for true Artificial Intelligence. Our models embody Machine Learning in the sense that on the basis of your having provided example sentences and their outcomes, the model will make decisions about new sentences it encounters.

Our platform also offers what is sometimes termed supervised Machine Learning. In the light of data from your conversations, you can spot where the chatbot needs more training and input the problematic sentences you have identified, along with the correct result that the bot should arrive at when examining the sentence. This supervised Machine Learning will result in a higher rate of success for the next round of unsupervised Machine Learning. This process of cycling between your supervision and independently carrying out the assessment of sentences will eventually result in a highly refined and successful model.


Pre-Trained Models

The great news is that we provide pre-trained NLP models. These are state-of-the-art Entity seeking models, which have been trained against massive datasets of sentences. They really are effective and highly recommended. Unless you need a particular focus from your NLP model, the pre-trained models are probably the way to go. The Entities that your pre-trained NLP model can identify are people (we provide four different models for recognising people, trained in different ways e.g. on different data sets or using neural networks, you can try them out to see which works best for your purposes); places; dates; money; percentages; times and miscellaneous nouns.

We also have pre-trained NLP models for recognising negative and positive Entities. This is crucial for sentiment analysis. If you want your chatbot to be sensitive to expressions of emotion from the user, then deploying these models will allow the bot to adjust the conversation according to whether it identifies enthusiasm or discontent in the user's responses.


These Pre-trained models can be tested, but they cannot be edited.

To get started on creating NLP capability for your bot, go Create your NLP models here.

Watch the Video tutorials "Using pre-trained NLP models with SnatchBot" and "Using SnatchBot’s pre-trained NLP ‘dates’ model" demonstrating the example of how to deploy some of SnatchBot's pre-trained models.

Next Steps

A step-by-step guide to create your NLP models