Hey, my chatbot has been struggling to identify intents correctly. Sometimes it even confuses very simple ones like agree with disagree. Im thinking that the problem might be my pipeline configuration, but I don’t really know which dials to turn honestly. Can somebody maybe have a look at my intents and pipeline and tell me which components might be more suited?
nlu.yml
version: "3.1"
nlu:
- intent: give_name
examples: |
- [Max](PERSON)
- mein name ist [Flo](PERSON)
- [Stefan](PERSON)
- ich heiße [Chris](PERSON)
- ich bin [Lisa](PERSON)
- man nennt mich [Peter](PERSON)
- nenn mich [Clara](PERSON)
- [Ben](PERSON)
- [Lou](PERSON)
- [Selina](PERSON)
- [Maya](PERSON)
- Ich heiße [Jonas](PERSON)
- ich bin [Flo](PERSON)
- intent: greet
examples: |
- hey
- hallo
- hi
- guten morgen
- guten tag
- guten abend
- moin
- hey dude
- was geht
- alles klar bei dir
- whats up
- na digga
- na bruder
- na alter
- intent: goodbye
examples: |
- tschüss
- ciao
- bis bald
- bis dann
- bye
- auf wiedersehen
- schönen tag noch
- man sieht sich
- bye bye
- bis später
- intent: agree
examples: |
- Ja, in Ordnung
- Klar, ist okay
- Ok
- gerne doch
- Ja
- ist ok
- finde ich auch
- ich stimme zu
- yes
- yeah, okay
- ja
- okay
- intent: disagree
examples: |
- nein
- nee
- bitte nicht
- eher nicht
- nicht wirklich
- ne man
- nope
- Nope
- Nein leider nicht
- nein, danke
- das kann ich bestätigen
- leider nicht
- Nö
- noch nicht
- eigentlich nicht
- intent: search
examples: |
- zeige mir Videos von [Hunden](keyword)
- zeige mir bitte Videos von [Katzen](keyword)
- Ich möchte etwas über den [chinesischen Restsatz](keyword) lernen
- Ich will etwas über die [Zellteilung](keyword) lernen
- ich verstehe das [Atommodell] noch nicht
- woraus besteht die [Atomhülle][keyword]?
- kannst du mir ein Video über [Python](keyword) zeigen?
- ich verstehe die [Mitose](keyword) noch nicht so gut
- Wie funktioniert der [Corona-Virus](keyword) genau ?
- Ich will ein Video zu [Puls](keyword)
- kannst du mir [Klaustrophobie](keyword) erklären?
- könntest du mir ein Video über [Rippen](keyword) schicken?
- Erkläre mir bitte die [Metamorphose](keyword)
- ich möchte [Gedichte](keyword) üben
- ich will mehr über die [Steinzeit] wissen
- Ich brauche Informationen über [Ägypten](keyword)
- warum ist die [Erde](keyword) rund
- Kannst du mir sagen, warum die (Dinosaurier)[keyword] ausgestorben sind ?
- Zeige mir Videos von [Schlangen](keyword)
- zeige mir Videos zu [nullstelle](keyword)
- ich will etwas zu [Anatomie](keyword) wissen
- Warum sind [Blätter](keyword) grün?
- intent: too_short
examples: |
- Das Video war zu kurz
- es war zu kurz
- nicht lang genug
- zu wenig Informationen
- Zu schnell vorbei
- Ich fand das Video zu kurz.
- Das Video hätte länger sein können
- Das Thema wurde abgekürzt
- intent: too_long
examples: |
- das video war zu lang
- das war nicht kurz genug
- es ging mir zu lange
- mir wäre ein kürzeres Video lieber gewesen
- das Video fand ich zu lange
- Ich fand das Video zu lang.
- Das Video hätte kürzer sein sollen
- wenn das Video kürzer gewesen wäre, hätte es mir mehr geholfen
- intent: too_deep
examples: |
- Es waren zu viele Informationen
- Das Video ging mir zu tief
- es war zu ausführlich
- Das waren zu viele Details
- Das Thema wurde zu tief erklärt
- Ich hatte nach einem Überblick gefragt
- Es hätte mehr in die Breite gehen sollen
- die grundsätzlichen Themen wurden nicht genug beleuchtet
- intent: too_shallow
examples: |
- das video war zu oberflächlich
- ich hätte mir mehr Informationen gewünscht
- ich habe mehr infos gebraucht
- Ich hab mir mehr Tiefe gewünscht.
- Die Informationen waren zu oberflächlich
- Ich bräuchte tiefergehendes Wissen.
- es war nur grundlegendes wissen
- ich brauche mehr Details
- das Video war nicht detailiert genug
- das video hatte nicht alles wonach ich gesucht habe
- intent: too_difficult
examples: |
- das war mir zu schwer
- das war zu anstrengend
- ich habe nichts verstanden
- das waren zu viele komplexe wörter
- es wurden Sachen vorausgesetzt, die ich noch nicht kannte
- Das Video war zu komplex.
- Es war zu schwierig
- Das Video war für meine Altersklasse zu schwer.
- intent: too_simple
examples: |
- ich habe mir mehr Komplexität gewünscht
- ich wusste alles schon
- ich habe nichts neues gelernt
- da war nichts neues dabei
- Das Thema wurde zu einfach erklärt
- es war zu basic
- Das Video war für Leute mit weniger Wissen
config.yml
# The config recipe.
# https://rasa.com/docs/rasa/model-configuration/
recipe: default.v1
# Configuration for Rasa NLU.
# https://rasa.com/docs/rasa/nlu/components/
language: de
pipeline:
- name: SpacyNLP
model: "de_core_news_lg"
- name: SpacyTokenizer
- name: SpacyFeaturizer
alias: "spacy"
- name: SpacyEntityExtractor
dimensions: ["PERSON"]
- name: RegexFeaturizer
alias: "regex"
- name: LexicalSyntacticFeaturizer
alias: "lexical"
- name: CountVectorsFeaturizer
alias: "count1"
- name: CountVectorsFeaturizer
alias: "count2"
analyzer: "word"
min_ngram: 1
max_ngram: 3
- name: DIETClassifier
epochs: 70
- name: LogisticRegressionClassifier
max_iter: 100
solver: liblinear
tol: 0.0001
random_state: 42
- name: EntitySynonymMapper
# Configuration for Rasa Core.
# https://rasa.com/docs/rasa/core/policies/
policies:
# # No configuration for policies was provided. The following default policies were used to train your model.
# # If you'd like to customize them, uncomment and adjust the policies.
# # See https://rasa.com/docs/rasa/policies for more information.
- name: MemoizationPolicy
- name: RulePolicy
- name: UnexpecTEDIntentPolicy
max_history: 5
epochs: 80
- name: TEDPolicy
max_history: 5
epochs: 80
constrain_similarities: true