Universitätsbibliothek der TU Dortmund setzt auf GaitoBot

by Daniel Springwald 24. Mai 2014 21:04

Der virtuelle Mitarbeiter 'ASKademicus' der TU Dortmund beantwortet seit 2004 rund um die Uhr Fragen zur Bibliothek.

Zu seinem 10. Geburtstag wurde nun seine Wissensbasis überarbeitet und auf unsere GaitoBot Technologie umgestellt.

>>> zur Universitätsbibliothek >>>

Tags:

AIML | GaitoBot AIML Editor

Neue HTML5-Darstellerin "Claudia" verfügbar

by Daniel Springwald 27. April 2014 23:31

Ab sofort ist für die HTML5 Ansicht von GaitoBot die Darstellerin "Claudia" verfügbar. 

Für Claudia sind Lippenbewegungs-Animationen hinterlegt, welche bei aktivierter Sprachausgabe automatisch angezeigt werden.

Rufen Sie einfach die Einstellungen Ihres GaitoBots auf www.gaitobot.de auf und wählen Sie unter "Darsteller auswählen und bearbeiten" die Darstellerin "Claudia".

Tags:

GaitoBot Darsteller

Das Star-Element

by Daniel Springwald 5. Oktober 2013 19:54

Das Star-Element ist ein so genanntes Wildcard, auch Joker genannt. Dies ist ein Platzhalter für eine beliebige Zeichenfolge in den Benutzereingaben.

Sie kennnen Joker bestimmt bereits aus der Verwendung von Suchmachinen: Dort können Sie nach kompletten Begriffen wie "Bildschirm" suchen. Sie können aber auch mit einem Joker zum Beispiel nach "Bild*" suchen und damit auch Treffer wie "Bilderrahmen" oder "Bildungslücke" finden.

Verwendung des Star-Elementes im Pattern-Element

In AIML bietet das Joker-Element * eine ähnliche Funktion. Es ist hier jedoch nicht Platzhalter für einzelne Buchstaben, sondern für ganze Wörter oder sogar Satzteile. Das folgende Beispiel macht die Funktion deutlich.

Beispiel für den *-Joker im Pattern-Element

Durch dieses Pattern-Element werden zahlreiche Benutzereingaben erkannt, wie zum Beispiel "Hallo, wie geht´s?", "Hallo, ich heiße Sven." oder "Hallo Leute". Die Antwort lautet hier immer "Hallo, ich freue mich, Sie kennen zu lernen.".

Wie im vorherigen Beispiel gezeigt, ist das *-Element im Template ein Platzhalter. Dieser Platzhalter kann für eine beliebige Anzahl von Wörtern stehen. Sie können sogar mehrere *-Elemente in einem Template verwenden.

Das Star-Element im Template einsetzen

Wie soeben gesehen, können Sie im Pattern-Element einen oder mehrere *-Platzhalter verwenden und dadurch Benutzereingaben verallgemeinern. Im Template-Element können Sie darüber hinaus auch noch den Inhalt dieser Platzhalter weiter verarbeiten.

Dafür verwendet AIML das Star-Element. Dieses enthält den Inhalt des jeweiligen *-Platzhalters aus der Benutzereingabe.

Ein einfaches Beispiel für die Verwendung des Star-Elementes

 

 In diesem Beispiel kann der Chatbot den Benutzer mit seinem Namen begrüßen. Eine Eingabe von "Ich heiße Seven." wird beantwortet mit "Hallo Sven.".

Das Star-Element sieht in diesem Beispiel etwas anders aus, als die bisher bekannten Elemente. Dies liegt daran, dass im Gegensatz zu beispielsweise dem Pattern-Element keinen Text oder weitere Element enthalten kann.

Tags:

AIML

Weiterleitung mit dem Srai-Element

by Daniel Springwald 5. September 2013 01:21

Ein sehr mächtiges Werkzeug innerhalb von AIML ist das Srai-Element. Es kann nur innerhalb des Template-Elementes eingegeben werden. Die kryptische Abkürzung dieses Elementes kann man sich anfangs meist nur schwer merken. Unglücklicherweise ist die ausgeschriebene Bezeichnung "Stimulus-Response artificial intelligence" auch nicht viel verständlicher oder einprägsamer.

Die Funktion von Srai hingegen ist leicht beschrieben: Trifft der AIML-Interpreter auf ein Srai-Element, behandelt er den Inhalt des Elementes wie eine neue Benutzereingabe. Ein Blick auf die folgenden Beispiele macht die Funktion deutlich.

Beispiel: Ohne Srai-Element

 

 
In diesem Beispiel wird auf beide Eingaben "Hallo" und "Guten Tag" die gleiche Antwort "Hallo, ich freue mich, Sie kennen zu lernen." gegeben. Die Antwort musste dazu aber auch an zwei Stellen in gleicher Weise erfasst werden. Es ist aber nicht empfehlenswert, die gleiche Information an verschiedenen Stellen doppelt zu speichern.

Statt dessen wäre es attraktiver, beide Eingaben zusammen zu führen und auf die selbe Antwort zu bündeln.

Genau dies ermöglichst das nächste Beispiel:

Beispiel: Mit Srai-Element

  

Das Verhalten des ersten Category-Elementes kennen wir bereits: Auf die Eingabe von "Hallo" antwortet der Chatbot "Hallo, ich freue mich, Sie kennen zu lernen.".

Das zweite Category-Element verwendet nun eine Weiterleitung per Srai. Gibt der Benutzer "Guten Tag" ein, antwortet der Chatbot hier ebenfalls mit "Hallo, ich freue mich, Sie kennen zu lernen.".

Im Hintergrund geschieht dabei folgendes: Der AIML-Interpreter findet in der zweiten Category das passende Pattern-Element zu Benutzereingabe "Guten Tag". Im Template-Element dieser Category befindet sich nun eine Srai-Weiterleitung mit dem Inhalt "HALLO". Dieses "HALLO" wird nun wie eine neue Benutzereingabe verarbeitet: Der Interpreter sucht nach einem Pattern-Element, das zur Benutzereingabe "Hallo" passt. Genau diese Aufgabe erfüllt die erste Category. Dadurch kann der Chatbot dann auch die passende Antwort geben.

Man kann also mit dem Srai-Element mehrere inhaltsgleiche Benutzereingaben von der selben Antwort beantworten lassen.

Tags:

AIML

Normierung im Pattern -Element

by Daniel Springwald 29. August 2013 14:12

Es ist Ihnen sicher aufgefallen, dass die Eingabe im Pattern -Element komplett aus Großbuchstaben besteht und keine Interpunktion enthält. Im Template -Element hingegen ist als Antwort ein ganz normaler Satz eingetragen.

Der Grund dafür ist, dass der AIML-Interpreter, welche eine AIML-Datei verarbeitet, die Eingabe des Benutzers zuerst normiert. Erst danach vergleicht er diese mit den Inhalten der Pattern -Elementen .

Normierung bedeutet hierbei (am Beispiel für deutsche Sprache):

  • Alle Buchstaben werden in Großschrift umgewandelt.

  • Sonderzeichen und Umlaute werden - soweit möglich - durch alternative Schreibweisen ersetzt. Dies gilt auch für deutsche Umlaute. Aus "ä" wird dabei also "ae" und aus "ß" ein "ss".

  • Interpunktion wird komplett entfernt. Zeichen innerhalb eines Satzes (also zum Beispiel ein Komma) werden direkt gelöscht.

    Besteht die Eingabe des Benutzers aus mehreren Sätzen, werden die Satztrennzeichen (zum Beispiel ein Punkt oder ein Fragezeichen) ebenfalls entfernt. Gleichzeitig wird aus dem zweiten Satz eine eigene Eingabe erzeugt. Diese wird anschließend wie eine zweite Benutzereingabe (und getrennt vom ersten Satz) verarbeitet. Für den AIML-Interpreter erscheint es dann so, als seien zwei Benutzereingaben getätigt worden.

  • Gängige Abkürzungen und Schreibfehler werden ersetzt. Die Grundlage dafür bilden Übersetzungslisten, welche der AIML-Interpreter für jede unterstützte Sprache bereit hält. Eine solche Übersetzung kann zum Beispiel lauten, dass "geht's" nach "geht es" übersetzt wird.

Beispiele für die Normierung der Benutzereingaben

  • "Hallo, ich heiße Sven." wird zu "HALLO ICH HEISSE SVEN"

  • "Hallo, ich heiße Sven. Wie geht's Dir?" wird zu "HALLO ICH HEISSE SVEN" und einer zweiten Eingabe "WIE GEHT ES DIR"

Durch diese Normierungen ist es möglich, Benutzereingaben im Pattern -Element sehr universell zu formulieren. Man muss nicht alle Variationen der Interpunktion und Abkürzungen einzeln erfassen.

Leider hat dies - gerade in der deutschen Sprache - auch Nachteile. Da AIML ursprünglich für die englische Sprache konzipiert wurde, entfällt zum Beispiel das Fragezeichen am Ende einer Frage. Dadurch ist es möglich, die unterschiedliche Bedeutung der beiden Eingaben "Sven ist 30 Jahre alt?" und "Sven ist 30 Jahre alt." zu erkennen. Beide Eingaben werden auf die selbe Eingabe "SVEN IST 30 JAHRE ALT" normiert.

Lassen Sie auch aber von diesen kleinen Unstimmigkeiten nicht täuschen: Die Vorteile dieser Normierungen überwiegen sehr deutlich. Selbst das vermeintlich fehlende Fragezeichen am Satzende ist besser als die Alternative: Diese würden nämlich bedeuten, dass der Benutzer die Eingabe einer Frage immer zwingend mit einem Fragezeichen abschließen muss. Das wäre dann zwar syntaktisch korrekt, entspricht aber leider gar nicht dem Verhalten der meisten Chatbot Benutzer. Diese sparen statt dessen sehr gerne an Interpunktion - was dann aber durch die Normierung des AIML-Interpreters neutralisiert wird..

Tags:

AIML

Die wichtigsten AIML Elemente

by Daniel Springwald 29. August 2010 14:06

AIML enthält zahlreiche Elemente. Einige davon werden Sie sehr oft benötigen - sie gehören sozusagen zum Grundwortschatz.

In den später folgenden Praxisbeispielen werden diese Grundelemente als bekannt vorausgesetzt und dort nicht besonders erklärt.

Die drei grundlegenden Elemente: Category, Template und Pattern

Der Inhalt einer AIML-Datei besteht hauptsächlich aus einer Anzahl von Category Elementen. Jedes Category-Element stellt eine Reaktion auf eine mögliche Benutzereingabe dar. Dazu enthält es als Erstes einen Pattern -Element. In wird die Eingabe des Benutzers eingetragen. Darauf folgt ein Template-Element, in welchem die Reaktion des Chatbots auf diese Benutzereingabe enthalten ist.

Das folgenden Beispiel zeigt eine Reaktion auf die Eingabe "Guten Tag". Gibt der Benutzer dies bei einem Gespräch ein, so wird der Chatbot antworten "Hallo, ich freue mich, Sie kennen zu lernen."

Ein Beispiel für ein Category-Element

 

Tags:

AIML

Was ist ein AIML-Interpreter?

by Daniel Springwald 22. August 2010 12:17

AIML Dateien für sich allein können nicht praktisch eingesetzt werden - ähnlich wie eine CD ohne CD-Player nicht abgespielt werden kann. Neben Ihren erstellten AIML Dateien benötigen Sie daher noch einen AIML Interpreter.

Der Interpreter ist ein Programm, welches die AIML Dateien zunächst einliest und dann das enthaltene Wissen zur Benutzung bereit hält. Anschließend versucht der Interpreter, auf getätigte Eingaben die am besten passende Antwort auszugeben.

Im Laufe der Zeit wurden von vielen Softwareautoren weltweit zahlreiche AIML Interpreter erstellt. Die meisten davon können kostenfrei heruntergeladen[3] und genutzt werden. Viele sind sogar inklusive Quellcode verfügbar.

Die offensichtlichsten Unterschiede der verschiedenen AIML Interpreter sind die verwendete Programmiersprache und die Plattform, auf welcher der Interpreter betrieben werden kann. Einige Interpreter sind z.B. in Java programmiert und benötigen daher eine Java Runtime.

Darüber hinaus verhalten sich die Interpreter zum Teil selbst bei der Verarbeitung identischer AIML Dateien unterschiedlich.

Der Grund dafür ist meist, dass die Interpreter für unterschiedliche AIML Versionen implementiert sind. In Version 1.0.1 der AIML Definitionen sind beispielsweise zahlreiche Elemente der Version 0.9 ersetzt worden oder weggefallen.

Darüber hinaus behandeln einige Interpreter nicht alle AIML-Elemente, was ebenfalls zu Unterschieden in den Antworten des Chatbots führen kann.

Wenn Sie Ihren AIML Interpreter auswählen, geschieht dies oft auf Basis der Umgebung, in welcher der Interpreter betrieben werden kann. Wenn Sie zum Beispiel Ihre Website auf einem Server hosten lassen, welcher nur PHP-Script aber kein Java erlaubt, werden Sie wahrscheinlich einen PHP basierten Interpreter verwenden.

[3] Eine Übersicht der frei verfügbaren Interpreter finden Sie auf http://www.alicebot.org/downloads/programs.html

Tags:

AIML

Die Technik hinter AIML

by Daniel Springwald 15. August 2010 13:55

Ein AIML Chatbot besteht grundsätzlich aus zwei Teilen: Dem Wissen (gespeichert in AIML Dateien) und dem AIML Interpreter.

Um einen eigenen Chatbot zu veröffentlichen, müssen Sie daher zunächst eigene AIML Dateien erzeugen. Dazu benötigen Sie einen passenden Editor, wobei es auch ein gewöhnlicher Texteditor sein kann.

Haben Sie Ihre ersten AIML Dateien fertig gestellt, laden Sie diese in einen passenden AIML Interpreter. Der Interpreter haucht den Dateien dann Leben ein.

Je nachdem, ob der Interpreter auf Ihrem lokalen Computer oder auf auf einem Webserver betrieben wird, können Sie oder die ganze Internetwelt anschließend mit Ihrem Chatbot sprechen.

Welcher ist der passende AIML-Editor?

Eine AIML Datei ist prinzipiell eine Textdatei. Daher kann sie problemlos mit einem beliebigen Texteditor bearbeitet werden. Die meisten AIML Dateien, welche im Internet zur Verfügung stehen, sind mit normalen Texteditoren wie Notepad oder Ultraedit erstellt worden.

Arbeiten mit einem Texteditor

Die Vorteile eines klassischen Texteditors liegen auf der Hand:

  • Er ist auf nahezu jedem Computer und Betriebssystem verfügbar

  • Er hat meist nur sehr geringe Anforderungen an Hardware und Software

In einem Texteditor bearbeiten Sie die AIML-Dateien komplett von Hand. Auf der einen Seite haben Sie dadurch den größtmöglichen Einfluss auf Inhalt und Struktur der Datei. Das bedeutet andererseits aber auch, dass Sie für die korrekte Struktur der Datei selbst verantwortlich sind. Eine fehlerfreie AIML Datei muss nämlich bestimmten XML- und Syntax-Regeln entsprechen.

Der Inhalt Ihres Chatbots wird früher oder später so umfangreich werden, dass Sie ihn in mehrere AIML-Dateien aufteilen möchten. Mit einem Texteditor können Sie diese Dateien natürlich weiterhin problemlos bearbeiten. Allerdings wird es irgendwann auch recht unübersichtlich, das Wissen eines Chatbots in mehreren Dateien zu bearbeiten und dennoch die Übersicht zu behalten.

Der GaitoBot AIML Editor

Im Gegensatz zu einem normalen Texteditor ist der GaitoBot AIML Editor speziell für die Pflege von AIML-Dateien entwickelt worden. Er ist kostenfrei verfügbar und darf auch für kommerzeille Projekte uneingeschränkt eingesetzt werden.

Der GaitoBot AIML Editor unterstützt Sie bei der Eingabe von korrektem AIML. Wenn Sie mit mehreren Dateien gleichzeitig arbeiten, werden diese vom Editor synchronisiert, damit zum Beispiel keine doppelten Eingaben getätigt werden. Durch den eingebauten Testmodus können Sie bereits im Editor ein Gespräch mit dem Chatbot durchführen und damit schnell Lücken oder Fehler im enthaltenen Wissen aufspüren.

Aber wo Licht ist, gibt es leider auch Schatten. Die die zahlreichen Spezialfunktionen sprechen zwar für den GaitoBot AIML Editor, leider ist dieser aber aktuell nicht für jede Plattform verfügbar.

Den kostenfreien Download des Editors und weitere Informationen, sowie Tutorials finden Sie auf der GaitoBot Website unter www.gaitobot.de.

Verwendung von fremden AIML Dateien

Wahrscheinlich möchen Sie zu Anfang erst einmal sehen, wie eine fertige AIML Datei aussieht und dazu aus dem Internet eine der frei verfügbaren Dateien verschiedenster Autoren herunterladen. Sehr wahrscheinlich werden Sie diese Datei jedoch nicht problemlos im GaitoBot AIML Editor öffnen können.

Der Grund liegt dann meist daran, dass diese Dateien mit Texteditoren bearbeitet wurden und sehr oft kleine Fehler in der Syntax enthalten. Die Autoren bemerken dies in der Regel nicht, da die AIML Interpreter meist recht tolerant sind und über kleine Fehler hinweg sehen oder die betroffenen Teile des Wissens einfach unbemerkt ignoieren. Der GaitoBot AIML Editor läßt jedoch nur korrektes AIML zu. Daher müssen Sie fremde AIML Dateien in der Regel meist von Hand in einem Texteditor korrigieren.

Tags:

AIML

Die Geschichte von AIML

by Daniel Springwald 14. August 2010 14:43

In der Science-Fiction ist es meist selbstverständlich, dass Computer mit Menschen natürlichsprachig kommunizieren. In unserem heutigen Alltag ist dies jedoch noch Vision. Zwar können wir unser Mobiltelefon bereits mit Sprachbefehlen steuern und in Telefonhotlines dem Anrufcomputer Stichworte nennen. Wir würden aber nicht annehmen, dass uns die Maschine am anderen Ende der Leitung wirklich inhaltlich verstanden hat oder glauben, dass es sich um einen echten Menschen handelt.

Seit einigen Jahren gibt es jedoch Bestrebungen, genau diese Illusion zu erzeugen. Zahlreiche Menschen und Firmen arbeiten weltweit daran, Computerprogramme zu erschaffen, deren Dialoge von denen echter Menschen nicht zu unterscheiden sind. Es werden Wettbewerbe veranstaltet, um das Progamm zu küren, welches im Dialog am menschenähnlichsten ist.

Chatbots können aber auch praktischen Nutzen haben. Unternehmen und Behörden setzen solche Chatbot Programme beispielsweise auf Ihren Internet-Homepages ein, um Kundenanfragen automatisiert zu beantworten.

Wenn Sie dieses Blog lesen, planen Sie wahrscheinlich, selbst einen solchen Chatbot "anzulernen" oder interessieren sich dafür, wie so etwas grundsätzlich funktioniert. In einem Satz zusammengefasst lautet die Antwort darauf: Um das entsprechende Wissen eines Chatbots zu pflegen, muss man es maschinentauglich formulieren.

Hier kommt AIML ins Spiel. AIML ist eine Sprache zu Formulierung von Chatbot-Inhalten und wurde im Jahr 1995 von Dr. Richard Wallace erfunden. AIML wird seitdem von ihm bzw. der von ihm im Jahr 2001 gegründeten "ALICE A. I. Foundation" ständig weiter entwickelt und als Open Source publiziert. Dr. Wallace schuf damit die Grundlage für seinen Chatbot "A.L.I.C.E.", welcher bereits einige Preise in Wettbewerben für den menschenähnlichsten Dialog gewonnen hat.

Die ALICE A. I. Foundation hat jedoch nicht nur die Struktur von AIML als Open Source veröffentlicht, sondern auch das Wissen des Chatbots A.L.I.C.E.. Viele Chatbot Autoren weltweit haben diese englisch sprachigen Inhalte übernommen und darauf aufbauend eigene Chatbots entwickelt.

Ein Besuch auf der Website des A.L.I.C.E. Projektes www.alicebot.org ist auf jeden Fall empfehlenswert. Dort berichten Dr. Richard Wallace und die ALICE A. I. Foundation regelmäßig über die neuesten Entwicklungen von A.L.I.C.E. und AIML. Aber auch über andere Chatbot Technologien, Chatbot Patente und Neuigkeiten aus dem weltweiten Chatbot Business kann man sich dort informieren.

Deutsche AIML Inhalte sind ebenfalls im Internet frei verfügbar. Der wohl bekannteste deutsche AIML-Chatbot stammt sicher von Christian Drossmann, welcher seinen Chatbot seit einigen Jahren pflegt. Auf seiner Website http://www.drossmann.de/ finden Sie neben den deutschen AIML-Inhalten auch ein Blog mit Chatbot-Neuigkeiten.

Tags:

AIML

Über dieses Blog

In diesem Blog finden Sie Informationen, Tutorials und Tipps zur Chatbot Sprache "AIML" und den kostenfreien GaitoBot AIML Editor.

Wenn Sie sich fragen "Warum überhaupt ein AIML Blog", klicken Sie hier für die Antwort ;-)