Home / LinuxUser / 2006 / 09 / Mit der Artificial Intelligence Markup Language dem Computer das Sprechen beibringen

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(179 Punkte bei 5 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)
Mageia 2 ist fertig
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

"Computer, bitte melden!"

Mit der Artificial Intelligence Markup Language dem Computer das Sprechen beibringen

QAIML benutzen

Um Ihren neuen Sprachroboter regelmäßig zu testen, lohnt sich die Installation eines virtuellen Gesprächspartners auf dem heimischen PC, kurz: Sie brauchen einen AIML-Interpreter. Dieses Programm legt die in AIML formulierten Sprachbrocken in Datenstrukturen im Arbeitsspeicher ab und reagiert auf Benutzereingaben mit der vordefinierten Antwort.

Unter [1] finden sich diverse Kandidaten zum Download, die jeweils einen unterschiedlichen Funktionsumfang mitbringen. Wollen Sie den Chatbot offline testen und keinen eigenen Webserver aufbauen, bietet sich Qaiml (Program Q) an, dass Sie im Web [3] oder von der Heft-CD beziehen. Es stellt eine Qt-basierte Oberfläche bereit und glänzt durch einfachen Aufbau (Abbildung 2).

Abbildung 2: Die Benutzeroberfläche von QAIML erlaubt eine direkte Kommunikation mit dem virtuellen Wesen.

Installation

Um das Programm aus dem Quelltext zu kompilieren, benötigen Sie daher die Entwicklerversion der Qt-Bibliothek. Unter Debian/Ubuntu heißt das entsprechende Paket libqt3-mt-dev, unter Suse und Fedora brauchen Sie qt3-devel und qt3-devel-tools. Entpacken Sie in einem Terminalfenster mit dem Befehl tar xjf QAIML1.0.tar.bz2 das Archiv. Wechseln Sie in das neu entstandene Verzeichnis mit cd QAIML1.1 und geben Sie die Befehlszeile qmake; make ein. Nach erfolgreichem Übersetzen können Sie das Programm nun durch Eingabe von ./QAIML & starten.

Im Dialogfeld, das nach dem Programmstart erscheint, wählen Sie english aus. Der Name entspricht dem Verzeichnisnamen des Unterverzeichnisses im Programmordner aiml_sets. Die Software lädt die darin liegenden AIML-Dateien in den Speicher, was einige Zeit benötigt (siehe Abbildung 3). Anschließend wartet der Bot auf Ihre Eingaben.

Abbildung 3: Das Generieren der internen Wissensdatenbank aus dem AIML-Code nimmt etwas Zeit in Anspruch.

Das Archiv von Qaiml enthält die Sets arabic, charlix sowie english. Um nun einen anderen Chatbot auszuprobieren, wechseln Sie in das Verzeichnis aiml_sets und erstellen Sie einen neuen Ordner. Dorthinein kopieren Sie nun alle neuen AIML-Dateien. Beim Neustart des Programms steht der neue Bot bereit. Sie finden entsprechende Sets auf der Heft-CD im gleichen Ordner als Zip-Datei.

Voreinstellungen

In den üblichen AIML-Sets sind nicht alle Eigenschaften und Vorlieben eines Bots fest kodiert. Vielmehr kommen hier sogenannte Bot-Predicates zum Einsatz. Ein solches Predicate arbeitet im Prinzip wie eine Variable beim Programmieren: Der Betreiber des Chatbots legt in dieser im Voraus einen Wert fest, und der Interpreter fragt ihn zur Laufzeit ab. Auf diese Weise dienen dieselben AIML-Dateien als Grundlage für mehrere Bots mit jeweils unterschiedlichen Persönlichkeiten.

Der Bot reagiert auf eine Frage wie "Was ist dein Lieblingsbetriebssystem?" also nicht etwa, indem er auf gut Glück "GNU/Linux" erwidert, sondern er fragt der Inhalt des entsprechenden Bot-Predicates ab und liefert die Zeichenkette an den Gesprächspartner aus. Mit "GNU/Linux" bedient er einen Pinguinliebhaber, genauso gut dürfte das Prodicate jedoch auch "FreeBSD" oder "OpenSolaris" enthalten.

Das Festlegen der Predicates handhaben die Interpreter unterschiedlich. Bei QAIML kommt die Datei bot.xml im Hauptverzeichnis des Programms zum Einsatz. Sie enthält – in AIML kodiert – eine Liste aller zu benutzenden Bot-Predicates mit entsprechenden Werten. Indem Sie diese Datei in einem Texteditor bearbeiten, verändern Sie die Voreinstellungen des Bots. Die einzelnen Einträge haben dabei folgenden Aufbau:

<set name="<i class="replaceable">Bot-Predicate-Name
">Bot-Predicate-Wert
</set>

Beispielsweise existiert in dieser Datei eine Zeile, die den Namen des Erschaffers und Betreibers des Chatbots festlegt. Tragen Sie hier Ihren Namen ein, weiß der Bot für die Zukunft, wem er seine Existenz zu verdanken hat:

<set name="master">Tuxedo T. Penguin</set>

Neben den Bot-Predicates bietet AIML die Möglichkeit, bestimmte Werte (wie zum Beispiel den Namen des Gesprächspartners, das aktuelle Thema, die im Gespräch vom Benutzer vermittelte Grundstimmung) zur Laufzeit zwischenzuspeichern. Damit diese Werte auch nach einem Neustart des Interpreters noch vorhanden sind, speichert Qaiml diese in der Datei vars.xml. Diese Datei folgt beim Format den Konventionen, die in bot.xml zum Einsatz kamen.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 0 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...