Rasa NLU

--> to the BOTwiki - The Chatbot Wiki

Rasa NLU is the NLU component of the Rasa stack, which also includes the Rasa Core is also included. Together they form an open-source solution for chatbots. [1]


The NLU has two main tasks.

Intent recognition is the recognition of user intentions. To do this, the NLU must be trained with sufficient utterances. The NLU returns all associated intents ordered by the confidence score. Rasa therefore has multi-intent matching.
In addition, Entity Recognition of the RASA NLU is responsible for extracting important information from natural language. For this purpose, Rasa provides predefined Entities such as postcodes or time information. In addition, there is also the option to define use case-specific entities and to train them with the help of the NLU. [2]


The structure of the RASA NLU is fully configurable and is defined 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 relies on already existing models and can only be used for some languages, such as 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 pipeline is usually selected based on the number of utterances available.

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

> Back to BOTwiki - The Chatbot Wiki


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