Große Technologieunternehmen wie Microsoft, Facebook und Google, die eigene NLP-Engines entwickelt haben, bieten bereits eigene Chatbot-Frameworks an. In diesen sind die eigenen NLP-Engines standardmäßig integriert. Da diese großen, kapitalstarken Unternehmen also hohe Erwartungen an die Technologie haben, wird sie von diesen auch sehr wahrscheinlich langfristig weiterentwickelt werden. Deshalb stehen sie in diesem Artikel im Mittelpunkt.
Was sind Chatbots?
Chatbots oder kurz Bots sind textbasierte Dialogsysteme. Sie bestehen aus einer Textein- und -ausgabemaske, über die sich in natürlicher Sprache mit dem Bot kommunizieren lässt (ähnlich einem Instant-Messaging-Dienst wie Skype oder der Facebook Messenger). Aus diesem Grund können die meisten Bots auch über Standardschnittstellen in diese Dienste integriert werden.
Technisch sind Bots näher mit einer Volltextsuche als mit künstlicher Intelligenz verwandt. Mit steigender Computerleistung können Chatbots jedoch auf immer umfangreichere Datenbestände zurückgreifen und so intelligente Dialoge führen.
Was ist eine Chatbot Plattform?
Eine Chatbot-Plattform stellt das komplette Umfeld zur Bot Entwicklung bereit und bietet hilfreiche Tools für die Entwicklung. Die Entwickler:innen müssen sich nur noch um die Business Logik und den Ablauf der Kommunikation kümmern. So sind verschiedene Chatapplikationen ohne viel Aufwand konfigurierbar. Teilweise werden sogar fertige Vorlagen für verschiedene Szenarien zur Verfügung gestellt.
Alle Chatbot-Plattformen können unterschiedlichen NLP Engines verwenden, um die linguistische Spracherkennung der Bots zu unterstützen. Das kann sinnvoll sein, wenn man eine bestimmte Chatbot Plattform verwendet, aber eine NLP Engine eines anderen Anbieters für eine bestimmte Anwendung benötigt. Dafür ist allerdings zusätzlicher integrierungsaufwand nötig, der bei einer NLP Engine des gleichen Anbieters nicht anfällt.
Natural Language Processing-Engine (NLP)
Die Hauptaufgabe einer NLP-Engine ist es, Eingaben von Nutzer:innen zu verstehen und in Computersprache zu übersetzen. Dem Bot wird beigebracht nützliche Informationen von geschriebener oder gesprochener Sprache zu extrahieren und in strukturierte Daten umzuwandeln
NLP-Engines nutzen den menschlichen Satzbau, um nützliche Informationen aus Nutzeranfragen zu erhalten und häufige Phrasen zu verstehen. NLP-Engines verstehen beispielsweise, dass Phrasen wie „kann ich“, „wie kann ich“ und „ist es möglich“ generell sind. Sie sind gleichbedeutend und haben wenig Aussagekraft. NLP Engines neigen dazu, dies „nutzlosen“ Satzteile zu ignorieren.
Glossar
Um die Funktionsweise von Chatbots beschreiben zu können müssen erst einige Begriffe geklärt werden:
- Intent: Ist die Absicht hinter einer Anfrage der Nutzer:innen.
- Utterance/Stories: Sind die Aussagen von Nutzer:innen um eine bestimmte Absicht auszudrücken.
- Entity: Sind die Details einer Absicht. Die häufigsten Entities wie z.B. Ort, Datum oder Zeit sind den meisten Bot-Engines bekannt. Unbekannte Entities können neu angelegt werden.
- Context: Der Kontext ermöglicht es, Parameter über den ganzen Chatverlauf zu teilen und zu speichern.
- Session: Ist eine Unterhaltung vom Anfang bis zum Ende
Beispiel
Utterance: Kannst du mir ein Restaurant in Linz buchen?
Intent: Restaurantbuchung
Entities: Ort: Linz
So viel zur Begrifflichkeit. Da die Chatbot-Plattformen an sich ähnlich aufgebaut sind vergleichen wir primär die NLP-Engines der folgenden etablierten Anbieter.
Chatbot mit Microsoft Bot Framework und Cognitive Services
Mit dem Microsoft Bot Framework können Sie intelligente Bots bauen, verbinden, ausliefern und verwalten. Die folgende Grafik zeigt, wie das Microsoft Bot Framework funktioniert und auf welche Kanäle er veröffentlicht werden kann.
Die eigentliche Logik der Bot Applikation befindet sich in einem gewöhnlichen Web Service. Dieser wird vom Bot Connector Service aufgefordert, auf die empfangene Nachricht zu reagieren. Der Web Service ist daraufhin zuständig, Aufgaben für die Benutzer:innen zu erledigen und diesen möglichst rasch eine Antwort zu liefern. Anhand von unterschiedlichen Dialogen nimmt er die Benutzer:innen an die Hand und führt sie durch die Kommunikation.
Mit dem Begriff Channel wird ein Kommunikationskanal für die Chatapplikation bezeichnet. Um eine weitreichende Unterstützung zu gewährleisten, werden renommierte Plattformen wie Facebook, Skype, SMS und E-Mail out-of-the-box angeboten. Mithilfe von Web Chats ist es auch möglich, Chatapplikationen zu konfigurieren, welche auf der eigenen Webseite veröffentlicht werden können.
Der Bot Connector Service verbindet die den Web Service mit den Channels. Mithilfe einer einfachen Konfiguration ist es möglich, einen Chatbot auf mehreren Kommunikationskanälen gleichzeitig zu veröffentlichen. Der Bot Connector Service ist verantwortlich für:
- Das Umwandeln der Textnachricht in ein Objekt, welches vom Web Service verstanden werden kann.
- Die Verwaltung der vergangenen Kommunikation (Die Nachricht bekommt den bisherigen Chatverlauf zugewiesen).
- Die Weitergabe von Textnachrichten zwischen den Kommunikationskanälen und dem Bot Web Service
Um den Bot schlussendlich auch „intelligent“ zu machen, wurden die Microsoft Cognitive Services entwickelt. Diese Dienste gehen über einen NLP-Service hinaus und ermöglichen auch die Interpretation von Bildern (Gesichtserkennung, etc.), Spracherkennung, Übersetzung von unterschiedlichen Sprachen sowie die Bing Suche. Microsoft Cognitive Services wurden standardmäßig in das Bot Framework integriert und machen es so zu einem mächtigen Werkzeug zur Erstellung von Chatbots.
Was Bots und Menschen jedoch gemein haben ist der Fakt, dass beide ohne entsprechende Ausbildung nicht „intelligent“ sind. Bei Bots nennt man diese Ausbildung Training.
Training
Das Training basiert auf sogenannten Stories (spezifische Anwendungen). Das Tool hinter dem Bot (Luis.ai) lernt den Ablauf von Unterhaltungen anhand vorgegebener Textnachrichten. Ein/e Expert:in ordnet diese Nachrichten einem Kommunikationspfad zu und bringt ihm somit bei, diesen in Zukunft selbstständig herausfinden zu können.
Der Kommunikationspfad ergibt sich aus den 2 Eigenschaften einer Nachricht:
- Intent – Die Absicht des Kommunikationspartners. (Was soll der Bot machen?)
- Entities – Zusätzliche Informationen zur Absicht. (Was benötigt der Bot für die Ausführung?)
Sobald es möglich ist, Intent und Entities aus den Chatnachrichten zu filtern, kann der Bot auf diese Informationen reagieren und den bestmöglichen Kommunikationspfad wählen.
Das Training findet über die Weboberfläche von Luis.ai statt. Dort werden im ersten Schritt Textnachrichten manuell erfasst. Jeder Textnachricht muss im Anschluss ein Intent zugewiesen werden. Durch das Markieren von wichtigen Informationen, werden Entitäten gekennzeichnet. Mit einem Klick auf den Button „Train“ wird das Training gestartet und das Tool ist einsatzbereit für den Bot.
Um das Tool verbessern zu können, kann es auch im Trainingsmodus vom Bot verwendet werden. Dabei werden alle empfangenen Nachrichten mitgeschnitten und automatisch in der Luis-Weboberfläche eingebunden. Dort können die Intents und Entitäten identifiziert und das Training darauf durchgeführt werden. Wenn man diese Funktionalität in einer Beta-Phase mit den zukünftigen Benutzer:innen verwendet, kann der Bot auf realitätsnahe Nachrichten mehrerer Personen trainiert werden.
Sprache und Kosten
Die Plattform unterstützt 10 Sprachen und ist für die ersten 10.000 Transaktionen pro Monat gratis.
Positiv:
- Cognitive Services ist sehr umfangreich
- Einfache Integration auf den gängigsten Kommunikationskanälen
- Trennung von Trainings- und Produktivnutzung möglich
- Viele offizielle Beispiele für fertige Bots vorhanden (Github)
Negativ:
- Erkennen von unbekannten Entitäten funktioniert noch nicht perfekt
Fazit
Microsofts Bot Framework und Cognitive Services ist perfekt für .NET-Developer und Projekt die eine Integration in Enterprise Software nötig macht. Es ist außerdem gut geeignet für IoT Anwendungen, virtuelle Assistenten, Anwendungen mit Bildinterpretation und Bots mit eingebauter Cortana Funktionalität.
Chatbot mit Facebook Messenger Plattform und Wit.ai
Facebook investiert stark in die Bot-Kommunikation, weil sie mit Messenger und WhatsApp der führende Anbieter auf dem Instant-Messaging Bereich sind. Sie wollen es möglichst einfach für Unternehmen machen, über Ihre Kommunikationsdienste direkt mit dem Kunden in Kontakt zu treten.
Das funktioniert ähnlich wie beim Microsoft Bot Framework mit flexiblen Nachrichtentypen und Templates mit strukturierter Hierarchie. Bisher gebaute öffentliche Bots können sogar als Ganzes kopiert und als Ausgangsbasis für den eignen Chatbot verwendet werden. Inklusive des bisherigen Trainings.
Es können neben Text auch einfache Rich Media Elemente wie Audio, Fotos und Videos verwendet werden. Um den Kommunikationsverlauf besser steuern zu können, ist es auch hier einfach möglich Buttons zu integrieren. So können Antwortmöglichkeiten oder bestimmte Aktionen vorgegeben werden.
Die NLP-Engine von Facebook heißt Wit.ai und ist ebenfalls in die Messenger-Plattform zur Chatbot-Erstellung integriert. Intentions und Entities werden hier nicht getrennt behandelt. Grundsätzlich gibt es nur Entities, da eine Intention eine Entität mit festgelegten Wertebereich.
Training
Der Chatbot kann auch hier über eine Weboberfläche trainiert werden. Das System versucht die eingegebenen Sätze anhand des bisherigen Trainings bereits zuzuordnen und schlägt vordefinierte Entities vor. Es können aber auch eigene Entities mit einem möglichen Wertebereich definiert werden. Standard-Entities sind z.B. Ort, Temperatur, Datum, Zeit, Alter und vieles mehr.
Zudem können den Entities auch Rollen zugewiesen werden. Bei einer Flugsuche werden zum Beispiel zwei Flughäfen als Information benötigt. Mithilfe von Wit.ai lässt sich nicht nur erkennen, dass es sich um einen Flughafen handelt, sondern auch ob es der Start- oder Zielflughafen ist.
Sprache und Kosten
Die Plattform unterstützt 50 verschiedene Sprachen und ist gratis.
Positiv:
- Optimal für die Verwendung auf dem Facebook Messenger
- Erkennung von noch unbekannten Entitäten funktioniert gut (z.B. Jobs)
- Trennung von Trainings- und Produktivnutzung möglich
- Rollenkonzept bei Entities
Negativ:
- Wit.ai ist ausschließlich eine NLP-Engine und weniger umfangreich als Microsofts Cognitive Services
Fazit
Die Messenger-Plattform ist perfekt für einfache B2C Bots und diverse MVP Projekte für die Nutzung auf dem Facebook Messenger. Das User Interface ist einfach gestaltet und alles gut dokumentiert. Das macht die Plattform ideal für den Start der Chatbot-Programmierung.
Chatbot mit Google Dialogflow
Googles hat sich vor einigen Monaten die NLP-Engine von Api.ai angeeignet und diese in Dialogflow umgetauft. Es handelt sich dabei lediglich um eine NLP-Engine, welche von Bots verwendet werden können, um natürliche Sprache zu erkennen. Ähnlich wie bei Microsoft sind auch hier Intents und Entities getrennt. Die Bots können um bestimmte Intents trainiert werden.
Die Kontextunterstützung ermöglicht es, Daten vergangener Nachrichten als Zustand zu speichern. Hat ein/e Benutzer:in dem Bot seine/ihre Lieblingsband bereits mitgeteilt, muss diese in den darauffolgenden Nachrichten nicht mehr erwähnt werden. Ein Einfaches „Kannst du mir mehr Songs nennen“ reicht aus, um weitere Songs zu dem bereits genannten Interpreten zu liefern.
Dialogflow unterstützt darüber hinaus auch Spracheingaben ohne zusätzlichen Aufwand. Der Chatbot kann also sowohl mit Texteingabe als auch mit Spracheingabe verwendet und trainiert werden.
Training
Auch in Dialogflow wird der Service mittels Intents und Entities trainiert. Die Nachrichten werden auch hier in der Weboberfläche eingegeben und identifiziert. Im Gegensatz zu den anderen NLP-Services bietet Dialogflow mit den sogenannten „Agents“ eine Reihe von vorgefertigten Beispielen an, welche von den Chatbots verwendet werden können. Die mittlerweile 40 vorgefertigten Agents umfassen Anwendungsgebiete wie: Hotelbuchung, Übersetzer, News, Smalltalk und vieles mehr.
Sprache und Kosten
Die Plattform unterstützt 15 Sprachen die kontinuierlich erweitert werden und ist komplett gratis.
Positiv:
- Spracheingabe ohne zusätzlichen Aufwand möglich
- Kontextunterstützung
- Einfache Integration auf den gängigsten Plattformen
- Vorgefertigte Agents vereinfachen die Entwicklung von gewöhnlichen Bots
Negativ:
- Erkennung von noch unbekannten Entitäten funktioniert nicht gut
Fazit
Dialogflow von Google ist dank der einfachen Nutzerführung und vieler fertigen „Agents“ ebenso einfach zum Starten wie die Plattform von Facebook. Mit Hilfe der „Agents“ ist es einfach, einen simplen Chatbot für viele Plattformen gleichzeitig zu bauen. Dialogflow ermöglicht zudem eine Spracheingabe ohne Mehraufwand.
Abschließendes Fazit
Es gibt einige Chatbot und NLP-Engines die es in kurzer Zeit ermöglichen, einen Bot aufzusetzen. Alle diese Tools stehen erst am Anfang der Entwicklung und werden immer ausgereifter.
Dass alle großen Player wie Amazon, Google, Microsoft, und IBM selbst NLP-Engines entwickeln, zeigt wie groß die Erwartungen für Chatbots sind. Jede Plattform hat seine Vor- und Nachteile und muss anhand der Anforderungen evaluiert werden. Der Vergleich zwischen den NLP-Engines von Microsoft, Google und Facebook zeigt, dass je nach Anwendungsbereich ein anderes Tool geeigneter ist.
Wir sind unter anderem Individualsoftwareentwickler für Web- und App-Anwendungen im Businessbereich. Für diese komplexeren Anforderungen an Chatbots empfehlen wir das Microsoft Bot Framework mit den integrierten Cognitive Services. Falls Sie also eine Anforderung für einen Chatbot in diesem Gebiet haben, kontaktieren Sie uns.