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: