AI für Chatbots

1 min read

Bei der Konzeption und Umsetzung eines Chatbots ist zu bedenken, ob und wo AI-Technologien zum Einsatz kommen sollen. Ein Chatbot, der die Benutzerführung mit Menüs und Buttons, oder rein regelbasiert steuert, kommt ohne künstliche Intelligenz aus. Benötigt wird diese erst, wenn natürlich sprachliche Eingaben interpretiert und verarbeitet werden müssen. Bei Systemen mit Spracheingabe sind hier zwei Schritte nötig, einerseits die Umwandlung des Audio-Signals in Text und die Interpretation des Texts (NLU – Natural Language Understanding) andererseits.

Bei Geräten wie Amazon Alexa und Google Home werden beide Schritte hintereinander ausgeführt, reine Textkommunikation wie in Messenger Applikationen benötigt nur die Interpretation des Textes. Für diese müssen auch zwei Teilaufgaben gelöst werde, zuerst muss die Absicht  (“Intent”) der Nachricht erkannt werden, anschließend müssen möglicherweise vorhandene Zusatzinformationen erkannt und aufbereitet werden. Zum Beispiel muss bei dem Satz “Brauche ich morgen einen Regenschirm?” erkannt werden, dass es sich um eine Frage nach dem Wetter handelt, und darüber hinaus muss das Datum “morgen” erkannt und in ein passendes Format gewandelt werden. Möchte ein Softwaresystem, wie ein Chatbot die Frage beantworten, muss es auch in der Lage sein zu erkennen, dass der Nachricht die Ortsangabe fehlt, und diese daher mit einer Nachfrage besorgt werden muss.

Für NLU bieten alle bedeutenden Technologie-Player Lösungen an, Google mit Dialogflow,  Amazon Alexa, Microsoft Luis.ai, Facebook Wit.ai und IBM Watson. Dies sind alles Cloud Lösungen, die vor trainierte Modelle für verschiedene Sprachen bieten, und neben der Textinterpretation noch weitere Services für die Chatbot-Erstellung, wie zum Beispiel Anbindungen an verschiedene Messengerplattformen bieten.

Möchte man seine Daten nicht einer Cloudlösung überlassen, und die gesamte Applikation samt Daten selbst betreiben, so ist man, wenn man die Sprachinterpretation nicht von Grund auf selbst neu entwickeln möchte, auf passende Programmbibliotheken angewiesen. Eine besonders auf Performance und geringen Speicherverbrauch getrimmte Bibliothek ist, das für Python verfügbare Paket Snips.ai (https://github.com/snipsco/snips-nlu).  Eine Alternative bietet rasa NLU (https://nlu.rasa.com/installation.html) ebenfalls für Python, das auf dem verbreiteten Textanalyse-Paket “spaCy“ (https://spacy.io/) aufbaut.

Schreibe einen Kommentar