Wie FreeHAL funktioniert
Allgemein
Das Computerprogramm FreeHAL ist das am weitesten entwickelte Dialogprogramm, das lernfähig und als freie Software (open source) verfügbar ist. Das Projekt wurde 2006 von Tobias Schulz gegründet und befasst sich mit der Weiterentwicklung dieser künstlichen Intelligenz.Es benutzt semantische Netze und arbeitet mit Mustererkennung, Stemmern, Wortartdatenbanken und Hidden Markov Modellen, um in Gesprächen ein möglichst menschliches Verhalten zu imitieren.
Im Gegensatz zu den meisten freien und kommerziellen Chatbots lernt FreeHAL jedoch selbstständig hinzu. Durch das Kommunizieren (per Tastatur) erweitert das Programm seine Wissensdatenbank.
Es unterstützt die Sprachen Deutsch und Englisch, wobei bisher nur für deutsch eine umfangreiche Datenbank - als semantisches Netz - vorliegt.
Der Antwortprozess
Der Beutzer sieht bei FreeHAL zumeist nur die GUI, die grafische Benutzeroberfläche. Im Hintergrund startet FreeHAL aber zwei Prozesse, einer davon ist die GUI, und im anderen findet die Verarbeitung der Benutzereingaben statt. Alle Eingaben und alle Antworten von FreeHAL werden über eine interne TCP/IP-Verbindung verschickt.Gibt der Benutzer eine Aussage oder Frage ein, wird dieser Text also an den Verarbeitungsprozess mit dem Namen "runner.exe" gesendet. Dort finden nun verschiedene Verarbeitungsstufen statt:
Einfache Mustererkennung
Zuerst wird versucht, bestimmte umgangssprachliche Formulierungen durch äquivalente standardsprachliche Ausdrücke zu ersetzen, um FreeHAL die Verarbeitung zu erleichtern. Auch werden hier die in der Datenbank eingetragenen Tippfehler verarbeitet.Der Wortart-Tagger
Danach wird jedem Wort in der Eingabe Wortart und Genus (grammatisches Geschlecht) zugeordnet. Dies geschieht einerseits mit Hilfe von bereits definierten Wörtern in den Wortart-Dateien
und andererseits - für die noch nicht definierten Wörter - mit dem Wortart-Tagger. Dieser Programmteil ordnet mit statistischen Berechnungen den noch unbekannten Wörtern eine Wortart zu, die er von bereits bekanntem Material abzuleiten versucht. Im Zweifelsfall wird der User um eine Wortart-Eingabe gefragt.Der Parser
Der Parser ist dafür zuständig, den in natürlicher Sprache geschriebenen Text mit den Ergebnissen des Taggers in seine Bestandteile - Subjekt, Prädikat, Objekt, adverbiale Bestimmungen, ... - aufzutrennen.Nach dem Parsen werden, soweit möglich, den Personal- und Possesivpronomen ihre entsprechenden Nomen zugeordnet. Als letzter Schritt während dem Parsen versucht FreeHAL, aufgrund von Erfahrungswerten und vorgegebenen Eigenschaften abzuleiten, welche Art von Antwort genau gemeint ist. Das kann eine Bestätigung, eine Sachantwort, ene Aufzählung, eine Begrüßung, eine Beleidigung oder ähnliches sein.
Die Datenbank
Mit Hilfe der Ergebnisse des Parsers wird nun in der Datenbank nach Fakten gesucht, aus denen sich Antworten ableiten lassen. Die Datenbank liegt in Form eines semantischen Netzes vor. Dies ist im Abschnitt "Semantisches Netz" genauer beschrieben.Bewertungssystem
Wenn ein- oder mehrere Fakten, die sich als Antwort eignen, gefunden wurden, wird mit dem Bewertungssystem
eine Antwort ausgewählt. Wenn keine Antwort gefunden wurde, wird mit einer Standardantwort geantwortet.Formulierung der Antwort
Die Formulierungsfunktion formuliert aus dem Fakt einen deutschen Satz. Hier kommt es beispielsweise darauf an, Groß- und Kleinschreibung zu beachten, Artikel zu ergänzen und Verben zu ordnen.Das semantische Netz
Alle Informationen, das gesamte Wissen von FreeHAL, wird als ein sogenanntes semantisches Netz abgespeichert. Das macht es möglich, nahezu alle Zusammenhänge zwischen bestimmten Begriffen anzuordnen und effizient Schlüsse zu ziehen. So kann FreeHAL von einem bestimmten Begriff zu anderen über diese Verbindungen Zusammenhänge in (theoretisch) beliebiger Tiefe herstellen.Jeder Begriff ist mit allen Fakten und ausformulieren Sätzen verknüpft, die den Begriff oder ein Synonym des Begriffs enthalten. Nebensätze werden im semantischen Netz als eigenständige Sätze behandelt und sind formal nur lose als solche gekennzeichnet. Als Fakten werden Sätze bezeichnet, die nur eine elementare Aussage beinhalten und ohne konkrete Formulierung abgespeichert werden (z.b. "A=B" statt "ein A ist ein B").
Alle Fakten oder Sätze stellen jeweils Verknüpfungen zwischen ein oder mehreren Subjekten, Objekten, Verben, adverbialen Bestimmungen dar Fragewörtern. Außerdem beinhaltet diese Verbindung verschiedene Klassifikationen wie Wahrheitsgrad (wahr, falsch, unsicher in verschiedenen Abstufungen) und Quelle (meist eine .pro-Datei) sowie bei ausformulierten Sätzen mögliche Nebensätze. Ausformulierte Sätze stellen eine Brückentechnologie dar: noch lässt sich nicht alles, was Freehal an Wissen abspeichern kann, als nicht-ausformulierter Fakt darstellen. Die Anzahl der noch nötigen Sätze wird im Entwicklungsprozess kontinuierlich reduziert.

Zurück zur Dokumentation
Comments
Alarmanlage ABUS Secvest 2Way mit satten Rabatten
Selbst Weihnachtskarten gestalten & drucken
Aktuelle Buchmessen-Termine
Buchmessen
Selbst Weihnachtskarten gestalten & drucken
Aktuelle Buchmessen-Termine
Buchmessen



