Rasa NLU model is identifing single alphabats as greet and goodby intent


I have start building a chatbot with rasa_nlu. My intents are greet,goodby,affirm,ask_howdoing and order. My pipeline configuration is. pipeline: pipeline:

  • name: “nlp_spacy” # loads the spacy language model
  • name: “tokenizer_spacy” # splits the sentence into tokens
  • name: “ner_crf” # uses the pretrained spacy NER model
  • name: “intent_featurizer_spacy” # transform the sentence into a vector representation
  • name: “ner_spacy”
  • name: “ner_synonyms”
  • name: “intent_classifier_sklearn” # uses the vector representation to classify using SVM . The issue is , when I am trying a single alphabet. It is showing output as {‘intent’: {‘name’: ‘goodbye’, ‘confidence’: 0.9104111249921267}, ‘entities’: [], ‘intent_ranking’: [{‘name’: ‘goodbye’, ‘confidence’: 0.9104111249921267}, {‘name’: ‘greet’, ‘confidence’: 0.03565822318740667}, {‘name’: ‘ask_howdoing’, ‘confidence’: 0.0306382505629729}, {‘name’: ‘order’, ‘confidence’: 0.012874939178853961}, {‘name’: ‘affirm’, ‘confidence’: 0.010417462078639538}], ‘text’: ‘a’, ‘project’: ‘default’, ‘model’: ‘model_20181012-125209’}

Same issue with non-sense words. {‘intent’: {‘name’: ‘goodbye’, ‘confidence’: 0.6412457684340723}, ‘entities’: [], ‘intent_ranking’: [{‘name’: ‘goodbye’, ‘confidence’: 0.6412457684340723}, {‘name’: ‘order’, ‘confidence’: 0.14315465411294515}, {‘name’: ‘affirm’, ‘confidence’: 0.08300227231689916}, {‘name’: ‘ask_howdoing’, ‘confidence’: 0.07228979383379178}, {‘name’: ‘greet’, ‘confidence’: 0.0603075113022914}], ‘text’: ‘sdmsldmsdlk’, ‘project’: ‘default’, ‘model’: ‘model_20181012-125209’}

Can you suggest some better way for training or am i doing something wrong.

you can try switching to the tensorflow_embedding_pipeline

Thanks for the reply. I switched to tensorflow_embedding_pipeline. It is performing better than sklearn but still identifying letter ‘I’ as greet. This may be due to I has been use in my training data for different intent.

what version of NLU are you using? Because the tensorflow embedding pipeline doesn’t consider a single letter to be a word, so it automatically classifies it as None

why iam getting only null and greet intents.
I used python -m rasa_nlu.server --path projects
to start server but i am unable to load my intents instead it is fall backing only to greet and null intents.Between what is projects at the end of above command actually mean