Understanding Rasa NLU

I am trying to understand how Rasa NLU actually does intent recognition. In multiple previous conversation with @Juste and @alexweidauer , they mentioned that they use BoW approach for intent recognition. I looked into the codebase but looks like they do classification using SVM model and don’t see anything BoW related.

Am I missing something?

SVM is learning methods and BoW is featurizer. The code to build this BoW featurizer is located here:

1 Like

Hey @nahidalam. Yes, we are using the SVM as a classifier, but the features which are fed into the classifier are created using BoW. Exactly like Naoko suggested already :slight_smile:

The simplified process looks like the following:

User input :arrow_right:
Bag of words (each token in a sentence gets a word vector assigned):arrow_right:
Sentence representation gets created (by averaging vectors) :arrow_right:
It is fed to SVM :arrow_right:
The prediction gets produced :white_check_mark:

3 Likes

@Juste…i also wanted to know about this things more specificy,can you please explain more of the steps you said here how the user input gets in and processed and prediction get produced…after the bag of words it is confusing me hoe sentence representation gets created , fed to svm and prediction produced…what is SVM tho?