Eine Anfrage ist jede an den Server abgesendete Benutzereingabe sowie sonstige Ereignisse, die eine Nachricht an den Nutzer auslösen. Die fest hinterlegte statische Begrüßungsnachricht zählt nicht als Anfrage.
Ein Chatbot ist ein textbasiertes Online-Dialogsystem. Es dient dazu, automatisierte Gespräche mit Nutzern zu führen. Der Kunde kann den Bot in die eigenen Kommunikationsmittel integrieren und seinen Nutzern, z.B. per Webchat im Internet oder im geschützten Intranet zur Verfügung stellen. Die Nachrichten und das anpassbare Verhalten des Bots werden durch den Kunden bestimmt.
Ein Bot versteht eine vorbereitete Menge von Absichten des Nutzers. Jede Absicht kann zu einer vorbereiteten Antwort führen, die dem Nutzer ausgegeben wird.
Ein Entitätswert ist ein Schlüsselwort bzw. eine erkannte Information aus dem Text der Benutzereingabe. Entitätstypen fassen mehrere Entitätswerte zusammen. So kann z.B. der Entitätstyp “Farbe” die einzelnen Entitätswerte “rot”, “gelb” und “grün” beinhalten.
Ein Gespräch (auch Konversation genannt) ist ein fortlaufender Dialog zwischen Nutzer und Chatbot. Im Verlauf einer Konversation werden dem Nutzer eine oder mehrere Anfragen beantwortet.
Zur Beantwortung einer Anfrage kann der Bot Rückfragen stellen. Erst nach der finalen Beantwortung der Anfrage oder einem Abbruch durch den Nutzer ist sie abgeschlossen.
Eine zeitlich zusammenhängende Gruppe von Anfragen bezeichnen wir als Sitzung. Eine Sitzung gilt als beendet, wenn der Nutzer sich länger als 10 Minuten nicht auf eine Rückfrage des Bots gemeldet hat oder wenn der Nutzer keine neue Anfrage gestellt hat.
Ein Intent steht für die Absicht des Nutzers, wenn er dem Bot eine Frage stellt.
Meist ist es das Ziel eines Chatbots, aus dem Anfragetext des Nutzers eine hinterlegte Absicht zu erkennen, um den damit verbundene Antworttext auszugeben.
Ein Intent ist also immer mit einer Antwort oder mit einer Aktion verbunden.
Um den Intent zu erkennen gibt es mehrere Methoden.
Bei der regelbasierten Methode wird der Anfragetext nach einer Kombination von Schlüsselwörtern - den sogenannten Entitätswerten - durchsucht.
Der Intent kann aber auch durch mehrere gezielte Rückfragen und einer Auswahl von Antwortmöglichkeiten ermittelt werden - dem sogenannten Entscheidungsbaum.
Bei der dritten möglichen Methode wird der Intent durch ein statistisches Modell vorhergesagt, welches auf Maschinellem Lernen (ML) basiert.
"Maschinelles Lernen ist ein Oberbegriff für die „künstliche“ Generierung von Wissen aus Erfahrung: Ein künstliches System lernt aus Beispielen und kann diese nach Beendigung der Lernphase verallgemeinern." (Wikipedia, 2018)
Wir verwenden Maschinelles Lernen bei der Spracherkennung zur Ermittlung von Intents und Entitäten im Text der Nutzeranfrage. Zu diesem Zweck müssen vorher Trainingsbeispiele gesammelt, klassifiziert und trainiert werden.
Der Metabot ist ein Bot-Typ, welcher das Gespräch mit dem Nutzer an einen untergeordneten Subbot weiterleiten kann. Er ermittelt zuerst den groben Intent des Nutzers und beantwortet sie direkt oder leitet sie zur weiteren Auswertung an einen verbundenen Subbot weiter. Der Subbot kann weitere Rückfragen stellen, agiert für den Nutzer aber verdeckt im Hintergrund. Für den Nutzer fühlt es sich so an, als ob er nur mit einem Bot kommuniziert.
Der Metabot besitzt für die ML-basierte Spracherkennung ein eigenes Sprachmodell, welches unabhängig von denen der Subbots trainiert wird.
Mit einem Sprachmodell findet die Bot-Anwendung aus einer Textnachricht des Nutzers heraus, was der Nutzer beabsichtigt und welche relevanten Informationen seine Anfrage enthält (= Intents und Schlüsselwörter).
Dadurch kann ein Bot die Befehle oder die Intentionen des Nutzers erkennen und entsprechend agieren.
Ein Sprachmodell wird durch definierte Regeln oder mittels maschinellem Lernen (ML) so trainiert, daß es die vorher festgelegten Intentionen und Entitäten in einer Nutzereingabe automatisch erkennt.
Subbots werden eingesetzt, wenn eine große Menge von verschiedenen Intents (z.B. >200) durch den Bot erkannt werden soll. Um das Training des Sprachmodells und die Pflege der Inhalte besser zu organisieren, werden die Intents zu verschiedenen Wissensbereichen gruppiert und in einem eigenen Subbot gepflegt. Wenn der übergeordnete Metabot einen zum Subbot passenden Intent erkennt, leitet er den Nutzerdialog im Hintergrund an den Subbot weiter, bis die Anfrage beantwortet oder abgeschlossen ist.
Für die Beantwortung der Fragen hat der Subbot tieferes, detaillierteres Wissen über zugehörige Intents und Entitäten einer Nutzeranfrage. Daher besitzt er ein eigenes Sprachmodell.
Damit die regelbasierte Erkennung über einen möglichst breiten Wortschatz verfügt, kann je Entitätswert eine Liste von Synonymen hinterlegt werden. Ein Synonym ist dabei ein denkbarer alternativer Ausdruck bezüglich des Entitätswert im Kontext des Bot. Synonyme sind somit weitere Schlüsselwörter über die Entitätswerte erkannt werden.