Rasa NLU

-> zum BOTwiki - Das Chatbot Wiki

Rasa NLU ist die NLU Komponente des Rasa Stacks, welcher zusätzlich noch den Rasa Core beinhaltet. Zusammen bilden Sie eine Open-Source Lösung für Chatbots. [1]

Funktion

Die NLU hat zwei hauptsächliche Aufgaben.

Die Intent Recognition, ist die Erkennung der Nutzer-Absichten. Dazu muss die NLU mit ausreichend Utterances trainiert werden. Dabei gibt die NLU alle zugehörigen Intents geordnet nach dem Confidence Score zurück. Rasa verfügt demnach über ein Multi Intent Matching.
Außerdem ist Entity Recognition der RASA NLU dafür zuständig, wichtige Informationen aus natürlicher Sprache zu extrahieren. Rasa stellt dafür vordefinierte Entities wie Postleitzahlen oder Zeitangaben zur Verfügung. Daneben gibt es auch die Option use case-spezifische Entities festzulegen und mit Hilfe der NLU zu trainieren. [2]

Aufbau

Der Aufbau der RASA NLU ist vollständig konfigurierbar und wird mit Hilfe der sogenannten “Pipeline” festgelegt. Diese definiert, wie die Modelle mit den Trainingsdaten generiert werden und welche Entities extrahiert werden. Nutzer können sich zwischen der spaCy und der Tensorflow Pipeline entscheiden. Der größte Unterschied liegt in der Art, wie die Modelle generiert werden.

Die spaCy Pipeline setzt auf schon vorhandene Modelle und kann nur für einige Sprachen, wie deutsch oder englisch, benutzt werden.

Die Tensorflow Pipeline dagegen muss mit eigenen Trainingsdaten trainiert werden. Der Vorteil liegt darin, dass jede Sprache verwendet werden kann. Deshalb wird die Auswahl der Pipeline meist anhand der Anzahl der vorhandenen Utterances getroffen.

Neben der Konfiguration der Intent Recognition, kann auch die Entity Extraction konfiguriert werden. Dafür können spaCy’s vorhandene Entities, custom Entities mit sklearn oder die Entity Extraction von duckling verwendet werden. Duckling liefert sehr gute Ergebnisse mit Nummern, Zeitangaben, Währungen und Distanzen. [3]

> Zurück zum BOTwiki - Das Chatbot Wiki

Quellen

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