Tutorial

Expert-Chatbot Aileen – Part 2 – Mehr als genaue Übereinstimmungen

Im letzten Blog-Post erforschten wir Chatbots und Experte-Chatbots und wofür sie verwendet werden. Wir haben verschiedene Fragen und Probleme kennen gelernt, die schwer zu beantworten für Chatbots sind. Außerdem haben wir uns klar gemacht, dass ein Großteil der Chatbots als Backend eine große Frage/Antwort-Datenbank besitzen.

Unser momentaner Ansatz mit exakten Übereinstimmung, hat ein großes Problem. Aileen kann nur auf Fragen antworten, die der Benutzer exakt auch so geschrieben hat wie sie abgespeichert sind. Es ist jedoch ziemlich unwahrscheinlich, dass eine zufällige Person, exakt die Fragen stellt, die wir in der Datenbank eingespeichert haben. Wenn jemand fragt “Ist schwarz eine Farbe?”, kann das auf verschiedene Wege ausgedrückt werden:

  • Ist schwarz eine Farbe?
  • Gehört schwarz zu den Farben?
  • Schwarz ist keine Farbe, oder?

All diese Fragen meinen irgendwie dasselbe. Dennoch müssten wir bei unserem aktuellen Ansatz alle möglichen Variationen in die Datenbank per Hand einbringen. Das würde eine endlose Anzahl an vordefinierten Sätzen mit sich ziehen. Stattdessen fokussieren wir uns auf die Gemeinsamkeiten in den Fragen.

  • Schwarz
  • Farbe

Sobald Aileen einen Satz bekommt, welcher die beiden Worte beinhaltet, antwortet sie mit einer vordefinierten Antwort. Dabei sollte die Antwort so allgemein wie möglich sein. Eine direkte und einfache Antwort wäre zum Beispiel: “Nein”
Aber diese Antwort lässt Aileen ziemlich dumm aussehen, wenn der User schreibt: “Ich liebe die Farbe schwarz”. Jetzt mit “Nein” zu antworten würde den Benutzer ziemlich misstrauisch machen. Deshalb ist eine Antwort wie “Schwarz ist keine Farbe” deutlich besser.

Diese Aussage ist in vielen Situationen eine gute Antwort, selbst wenn die Antwort manchmal etwas pingelig wirken mag, schaut Aileen zumindest nicht aus wie ein dummer Bot.

In Pseudo-Code könnte man es wie folgt implementieren:

Dieser Ansatz hat natürlich auch ein paar Einschränkungen. Ähnliche Fragen würden demnach vom selben if-Zweig beantwortet werden, obwohl vielleicht andere Antworten besser passen würden. Dieses Problem kann man aber einfach umgehen, indem man die spezifischen Antworten zuerst abprüft und immer unspezifischer wird. Es gibt noch weiter Möglichkeiten dieses Problem anzugehen, das sehen wir uns aber zu einem späteren Zeitpunkt genauer an. Im nächsten Post gehen wir darauf genauer ein.

Wie immer haben wir auch ein bisschen Javascript-Code vorbereitet, um den Ansatz einmal im Einsatz zu sehen.

Open in new window

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.