Rasa NLU

-> to BOTwiki - The Chatbot Wiki

Rasa NLU is the NLU component of the Rasa stack, which additionally contains the Rasa Core contains. Together they form an open source solution for Chatbots. [1]


The NLU has two main tasks.

The intent recognitionis the recognition of the user's intentions. For this the NLU must be trained with sufficient Utterances. The NLU returns all associated intents sorted according to the confidence score back. Rasa therefore has a Multi Intent Matching.
In addition, Entity Recognition at RASA NLU is responsible for extracting important information from natural language. Rasa provides pre-defined entities such as postal codes or time specifications. There is also the option to define use case-specific entities and train them with the help of NLU. [2]


The structure of the RASA NLU is completely configurable and is determined with the help of the so-called "pipeline". This defines how the models are generated with the training data and which entities are extracted. Users can choose between the spaCy and the Tensorflow pipeline. The biggest difference lies in the way the models are generated.

The spaCy pipeline is based on already existing models and can only be used for some languages, like German or English.

The Tensorflow pipeline, on the other hand, must be trained with its own training data. The advantage is that any language can be used. Therefore, the selection of the pipeline is usually based on the number of available utterances.

Besides the configuration of the Intent Recognition, the Entity Extraction can also be configured. For this you can use spaCy's existing entities, custom entities with sklearn or the Entity Extraction from duckling. Duckling delivers very good results with numbers, times, currencies and distances. [3]

> Back to the BOTwiki - The Chatbot Wiki


[1] https://rasa.com/
[2] https://rasa.com/docs
[3] https://rasa.com/docs/nlu/choosing_pipeline/