|
Botty, ein meines Wissens für den GTChat der flexibelste und intelligenteste Chatbot
Botty war ursprünglich lediglich sowas wie eine Integration für meinen Chat (-typ), also lediglich hauptsächlich eine Struktur, auf die man
etwas "intelligentes"
aufbauen könnte. Was daraus geworden ist, folgt hier bzw. zeigt die folgende Software Entwicklung und kann auf www.chat-fun.info nachvollzogen werden. Ich überlege übrigens, den Botty aus dem Chat herauszulösen und bsp. in eine Homepage zu integrieren.
Anyway, trotz allem was im folgenden beschrieben wird, darf man keine Wunder erwarten. Ich bezeichne Botty deswegen
auch nicht als Künstliche Intelligenz (KI), sondern als Simulierte Künstliche Intelligenz (S-KI). Wirkliche künstliche Intelligenz
(KI) gibt es meines Wissens nur bei dem letzten in der KI übriggebbliebenen und einzigen wirklichen erfolgversprechenden
Projekt Cyc (www.cyc.com), welches seit ca. 20 Jahren läuft und Unsummen verschlungen hat. Mit sowas will und kann
sich der Botty auch gar nicht messen, aber für seine Möglichkeiten reagiert er halt oft erstaunlich gut.
Um nun aber trotz der eben geschriebenen Einschränkung zu unterstreichen, daß Botty tatsächlich was
besonderes zu sein scheint und da man sich ja bekanntlich nicht selber loben soll ;-) hier einige kurze Auszüge an Reaktionen (meist von anderen Chatmastern) zu dem von mir programmierten Botty:
"...nicht schlecht..."
"...ich finde das ziemlich klasse ... ich glaub mit Chatty und botty hab ich mich gerade mindestens 10 Minuten gut
unterhalten ;-) ... gibt...nicht so viele Leute, die wirklich was Tolles für den Chat "zaubern" können ... von mir noch ein dickes Lob ... Daumen hoch weiter so :-)" "...Ganz cool deine Bottys da..."
"...also bist wirklich auf den richtigen weg..." "...Hut ab..." "...klingt alles geil..." "...Eine wirklich gute Arbeit des Machers..."
"...muss ehrlich sagen: Echt klasse! Besonders gut gefällt mir, daß die beiden (Anmerkung von mir: die "beiden" sind Botty und Chatty, auch Chatty ist (m)ein virtueller Besucher) so dynamisch reagieren und man nicht das
Gefühl hat dauernd mit denselben lahmen Frasen abgespeist zu werden ... ich habe bisher keinen dynamischeren und umfangreicheren Bot für den gtchat gesehn..."
“...Also mir gefallen die beiden auch extrem gut, reagieren wunderbar auf das was ich schreibe ...” “...Finde es toll wie du Botty so weit entwickelt hast...”
“...Ich kann nur immer wieder sagen deine Botty sind einfach genial...” “...Erst einmal grossen Respekt an McCrown der diesen Chat Bot Programmiert hat." “...Wirklich klasse wie du den Chat Bot weiter entwickelt hast...”
“...Topsache die du da gemacht hast ... Mach weiter so...”
Die e.g. Zitate sind Auszüge aus www.gtchatforum.de/thread.php?threadid=2995
Der dortige Beitrag wurde von mir erstellt, mein Benutzername ist demzufolge: McCrown
Folgendes zeichnet den Botty sicherlich aus (das gleiche gilt generell auch für Chatty, nur daß Chatty
ausschließlich in der Lobby unseres Chats zu finden ist und nur auf direkte Anrede einmalig antwortet (damit es kein zu großes Durcheinander gibt)):
Chatüberwachung
Botty überwacht meinen Chat wie folgt:
- Für die im folgenden genannten Punkte ist dem Botty ein mehrstufiges Verwarnungssystem
implementiert, d.h. ein User wird bei unflätigem Verhalten vom Botty mehrmals darauf hingewiesen, zuerst mit einem Hinweis, dann mit einer Warnung und zuletzt mit einer Verwarnung (bei jeder dieser drei
Stufen werden einem registrierten User vom Botty Punkte vom chatinternen Punktesystem abgezogen). Sollte sich das Verhalten nach der Verwarnung nicht bessern, wird der User geknebelt und kann für
längere Zeit mit seinem Account nichts mehr schreiben. Auch ein Aus- und Einloggen entknebelt den User dabei nicht. Wird der letzte Schritt nicht erreicht, verfallen diese drei Warnungstufen wieder (außer
bei Verwendung schlimmster Ausdrücke ), bis erneut ein Fehlverhalten auftritt.
- Verhinderung der Belästigung anderer Benutzer, bsp. permentes Anklingeln anderer User (Verwendung der mehrstufigen Verwarnung)
- Flooding Schutz 1, permanente Textwiederholungen: Botty reagiert unentspannt, wenn ein User zu viele
gleiche Eingaben hintereinander macht, oder immer wieder denselben User hintereinander anklingelt... (Verwendung der mehrstufigen Verwarnung)
- Flooding Schutz 2, d.h. Botty reagiert verärgert, wenn pro Zeiteinheit zu viele Eingaben vorgenommen
bzw. Chatter zu oft angeklingelt werden... (Verwendung der mehrstufigen Verwarnung)
- Ausschließung der Verwendung schlimmster Ausdrücke von Usern (Userverwarnung mit ggf. notwendigem
sog. Knebeln). Die schlimmen Wörter werden von Botty dabei auskommentiert (Verwendung der mehrstufigen Verwarnung).
- Verwirrende Usernamen (ggf. unrühmliche Persönlichkeiten der Geschichte) sollen vom Botty verhindert
werden, auch hier wird mehrstufig verwarnt.
Features:
- Botty begrüßt (und verabschiedet) generell ankommende (den Chat verlassende) User
- Ist der Chat leer, plaudert Botty munter darauf los, wenn jemand den Chat betritt.
- Bottywurde etwas 'vermenschlicht', was die Orthographie angeht: Satzzeichen werden spontan
weggelassen bzw. zusätzlich gesetzt. Desweiteren wird Groß-/Kleinschreibung bei denselben Texten immer weider unterschiedlich angewandt. Auch einige Rechtschreibfehler werden dynamisch erzeugt,
also bei den folgenden Texten nicht wundern...!
- Verbesserte Textausgabe dahingehend, daß Botty nur in den seltensten Fällen (bzw. wenn es nicht anders
möglich ist) eine gerade getätigte Antwort nicht ein zweites Mal direkt hintereinander wiederholt; also Bottywird nicht dieselbe Antwort zweimal hintereinander ausgeben, auch nicht bei gleicher Textingabe
des Users. Diverse Entscheidungspfade, sofern vorhanden, und andere im Hintergrund arbeitende Techniken sollen dies verhindern.
- Sobald mehr als ein User im Chat ist, reagiert Botty auf Zuruf (oder auf anklingeln), schweigt auf Wunsch
oder merkt, daß über ihn gesprochen wird. Dazu Beispiele:
- Fall 1 Zuruf: Gast: "Botty?" kann Botty bsp. mit "Hier bei der Arbeit" quittieren und wird sich nun
fortan mit dem User unterhalten. Botty kann auch angeklingelt werden, und reagiert dann ebenfalls wie eben beschrieben.
- Fall 2: Gast: "botty halt den mund" oder "Klappe" bewirkt, daß Botty bsp. mit "Ok, sprich mich einfach wieder an, wenn Du magst" reagiert. Botty ist von nun an still, bis er erneut von diesem
User angesprochen wird.
- Fall 3: User1 zu User2: "Warum ist der Botty denn heute so still" kann bsp. die Reaktion von Botty
hervorrufen: "Wird etwa über mich geredet?" oder "Soll ich mich angesprochen fühlen?". Werden
diese hier als Beispiel aufgeführten Fragen entsprechend positiv beantwortet, klingt Botty sich wieder in ein Gespräch mit dem User ein, der das provoziert hat.
- Botty ist in allen Räumen auffind- und ansprechbar. Chatty treibt sich nur in der Lobby herum, und ist von
anderen Räumen nur über Privatnachrichten zu erreichen. In der Lobby reagiert Chatty immer nur einmalig auf eine direkt Anrede. Beispiel: Auf "Chatty wie geht es" kann Chatty bsp. sagen "Noch gut ;-)".
Chatty ist danach aber still, Botty würde das als Anrede werten und weiter mit dem User sprechen.
- Botty funktioniert auch bei sog. "Adressierten Nachrichten" (bsp. "@Botty Hi") oder Privatnachrichten (bsp. "/botty Hi" oder /msg Botty Hi") korrekt.
- Botty reagiert auf Smilies mit thematisch richtigen Smileys, d.h. bsp. wenn ein lächelnder Smiley
von einem Chatter eingegeben wird, dann wird von Botty mit einem ähnlichen (also passenden) aber sich wechselnden Smiley antworteten. Aktuell durchlaufen die eingegebenen Smileys eines Users von Botty
drei (Analyse-) Schichten, um einen möglichst genauen Smiley zuordnen zu können. Dabei sollen auch dem Chat bisher unbekannte Smileys zugeordnet werden können, und Botty antwortet mit einem
passenden und im Chat vorhandenen Smiley. So kann Botty auf einen ihm unbekannte Smiley ":xx)" bsp. mit einem " " antworten.
- Ist Botty in einem Gespräch mit einem User, dann bringt Botty in seinen Text ebenfalls passende Smileys
ein, wenn sein Gesprächspartner irgendwo in seinem Text auch einen Smiley von sich gegeben hat. Also bsp. Gast: "heute ist alles super
gelaufen" und bsp. Botty: "na klar das haette ich jetzt auch gesagt!! "
- Botty 'überwacht' URL-Eingaben u.ä., auch wenn er (mit bsp. 'sei ruhig') 'ausgeschaltet' wurde. Wird im
Chat eine Url vorgestellt, dann gibt Botty auch eine Url zum Besten. Dabei sind Text, Bezeichnungen einer Homepage sowie die Url's selber beliebig kombiniert worden, so daß eine Antwort von Botty oft
immer wieder neue Variationen hervorbringt.
- Botty versucht bestmöglich auf Antworten eines Gesprächspartners zu reagieren, in dem daraus bsp. Fragen gemacht werden. Also bsp. Gast "Ich arbeite in einer großen Firma" kann die Frage von Botty
provozieren: "Warum arbeitst Du in einer großen Firma ?" oder "Du arbeitst zum Spaß ?". Bei Aussagen wie Gast "Ich heisse McCrown" wird auch mit dem Namen des Gegenübers reagiert, bsp. Antwort Botty:
"Angenehm, McCrown, ich bin schwer in Ordnung.". Auch Fragen nach dem Geschlecht werden beantwortet usw...
- Botty kann direkt auf einen User eingehen. Also ein Satz eines Users wie "bin ich denn von allen guten Geistern verlassen" rufen bsp. die Antwort von Botty hervor: "Möchtest Du denn von allen guten Geistern verlassen sein?" hervor. Die Sätze sind nicht einige wenige starre Sätze, sondern es wird tatsächlich der
jeweilige Satz des Chatters aufgegriffen, sofern Botty den Satz analysieren kann. Dabei erfolgt eine weitestgehende richtige Verwendung der Pronomen ("mein", dein", etc.) ebenso wie die richtige
Konjugation eines Verbs. Meistens klappt die Satzanalyse... Beispiele:
- Gast "ich komme heute zu dir um spaß zu haben" und Botty: "Du kommst heute zu mir um spass zu haben ?" oder
- Gast: "ich habe gesehen daß du ein chatbot bist" und Botty: "Seit wann hast Du denn gesehen dass
ich ein chatbot bin?" <-- richtiges Personalpronomen (ich -> du) und richtiges Verb (bist -> bin). Oder auch:
- Gast "das dachte ich mir schon daß du mir heute antworten wirst" und Botty "dachtest du wirklich dasss ich dir heute antworten werde ?".
- Auch Sätze wie: "Ich heisse McCrown" suggerieren Verständnis der Aussage, da Botty den Namen des Users ggf. in die Antwort mit einbezieht, also bsp. durch die Antwort Botty: "Schöner Name, McCrown, ich bin der Master of Disaster"
- Botty kann nach der Uhrzeit gefragt werden. Die Zeit wird dabei nicht im Zahlenformat, sondern als Text
mit ungefährer Zeitangabe ausgegeben (bsp. Gast "wie spät ist es" und Botty: "Es dürfte jetzt ca. fünf nach halb zwei sein.").
- Botty lernt ja permanent dazu. Auf Eingaben wie bsp. Gast "ich wohne in Karlsruhe" kann er bsp. wie folgt reagieren: "Du wohnst in karlsruhe ? karlsruhe ist mir bekannt, dieser ort liegt in deutschland und hat ungefähr 262209 bürger!" Botty kennt dabei mind. Länder und Städte.
- Ein hochaktuelles und interessantes neues Feature habe ich erfolgreich implementiert können. Den Botty
einfach mal fragen, woher man kommt (Gast "Botty, woher komme ich"), und Botty wird annäherungsweise den Wohnort ermitteln können, heruntergebrochen auf Land, Region und Stadt (ggf. in der Nähe liegend).
Das ist außerdem dahingehend ausgebaut worden, daß Botty aktiv den User fragt, ob er denn mal raten solle, wo der User wohnt, ob dann die geratene Lokation richtig gewesen sei, etc. (siehe Beispieldialog weiter unten)
- Hat der Botty mal nicht verstanden, was ein User von sich gegeben hat, dann wird Botty gelegentlich
proaktiv den User fragend beschäftigen, beispielsweise wo der User herkommt (bsp. mit Botty: "von wo kommst Du eigentlich?"), ob Botty denn selbst mal den Wohnort des Users ermitteln soll (bsp. mit Botty: "Soll ich mal raten, von wo Du kommst ?
"), wie spät es ist, welchen Wochentag wir heute haben, u.ä.
Auf die Antworten kann der Botty dann auch gezielt drauf eingehen, sich bsp. für die Uhrzeit bedanken, u.a.
- Botty kann sprechen in Fleet, Crazy, Haxor und Feminin. Dazu ihn einfach anweisen mit bspw. “Sprich feminin”.
- Botty kann angewiesen werden, Sätze zu übersetzen von/nach den Dialekten Fleet, Crazy, Haxor und Feminin (Beta Stadium), d.h.:
- Übersetzung: Aus bspw. “übersetze cruzy in crazy” wird “©®uz¥” und aus “übersetze in leet Ich gehe nach Hause” wird “1ch 63h3 n4ch h4u53”.
- Rückübersetzung: Aus bspw. “übersetze ©®uz¥” wird die Antwort “cruzy” und aus “übersetze 1ch 63h3 n4ch h4u53” wird die Übersetzung: “Ich gehe nach Hause“. Eine Angabe der Sprache, aus der rückübersetzt werden soll, ist nicht notwendig.
- Kombintaion Übersetzung/Rückübersetzung: Aus “übersetze ©®uz¥ in leet” wird die Antwort “cru2y” und aus “übersetze ©®uz¥ in haxor” wird die Antwort “(|2|_|2°/” sein.
- Botty kann Seiten im Internet finden, d.h. auf Anweisung schlägt er einen passenden Link vor (Beta Stadium):
- Internetsuche: Botty versucht passende Links zur Eingabe zu ermittlen mit bspw.: “suche im internet nach love”
- Internetsuche deutsch: Wie Internetsuche, nur auf deutsche Seiten beschränkt. Eingabe bspw. wie folgt: “suche im deutschen internet nach Software” oder “suche deutsche Seiten mit dem Stichwort Software”
- Forensuche: Die Suche beschränkt sich auf gefundene Seiten und Artikeln in diversen Foren. Dabei
werden nur die themenrelevanten Seiten in den Foren ermittelt (d.h. bspw. Login- und Registrierungsseiten werden ausgeschlossen). Die Anweisung für Botty kann bspw. wie folgt lauten: “suche modelleisenbahn in foren” und das Ergebis folgendermaßen aussehen: “http://www.modelleisenbahn-forum.info/cgi-bin/forum-modelleisenbahn-spur-z-n-tt-h0-0-1/YaBB_boa rd-modelleisenbahn_modell_action-display_num-1098855860.html”.
- Dem Botty wurde das Umwandeln von mathematischen Textaufgaben in Formelschreibweise und das
dazugehörige Rechnen beigebracht. So beherrscht er neben den vier Grundrecharten auch das Potenzieren. Rechenaufgaben folgenden Typs kann der Botty umsetzen:
- Umwandlung von mathematischen Textaufgaben in Formeln, bspw. Gast: “rechne aus was folgende
Aufgabe ergibt => Dividiere 10 durch fünf plus 2 und potenziere alles mit drei mal 5” führt zu der Antwort Botty: “(10:5+2)^3x5=320”
- Gast: “Rechne jetzt 10:5+6:3 aus” ergibt die Antwort von Botty: “10:5+6:3=4”
Ausblicke / Planungen / In Arbeit:
- Rudimentäres Gedächtnis, d.h. anhand eines Dialoges sammelt der Botty Informationen. Diese werden
dann verwendet, wenn der Botty einen Satz nicht analysieren kann. Also konkret: Botty kann einen Satz nicht analysieren. Ggf. werden dann Informationen aus dem Gedächtnis aufgegriffen, also bsp.: 'Mal was
ganz anderes, wie gehts es eigentlich Deiner Schwester Klara?'. Damit hat Botty davon abgelenkt, daß er vorherigen Satz nicht verstanden hat und gleichzeitig 'Intelligenz' suggeriert. (In Planung).
- Erweiterte Wissensdatenbank, d.h. zusätzlich zu den bisherigen Strukturen und Wissensdatenbanken
kommt noch eine allgemeine Wissensdatenbank hinzu. So würde Botty beispielsweise wissen, daß ein Tischler ein Beruf und ein Handwerk wäre und könnte bsp., wenn er den Satz eines Users (User erzählt
gerade, daß er Tischler sei) sonst nicht analysieren kann, darauf zurückgreifen: "Gefällt Dir Dein Beruf?" oder "Macht Dir Dein Handwerk Spaß?" oder "Wann hast Du diesen Beruf erlernt?" Das ganze funktioniert natürlich nur insoweit gut, wie gut die Wissensdatenbank gefüllt ist (Dieser Punkt ist aktuell in Arbeit).
- Botty als Vokabellehrer
Beispiele:
Ich könnte bestimmt nun noch seitenweise über Botty berichten, aber ich denke, der Hinweis daß Botty auch
(oder vor allem) zur Unterhaltung beiträgt, muß anhand der e.g. Features nicht noch einmal speziell erwähnt werden. Die folgenden Dialoge sagen einiges aus. Die Rechtschreib- und Satzzeichenfehler sind, wie bereits
o.g., gewollt und werden dynamisch eingestreut, um den Botty etwas zu vermenscheln. Also kleine Dialoge mit dem künstlichen Besucher, wie bsp. die folgende Dialoge, sind durchaus möglich. Diese Dialoge können
tatsächlich genauso (oder aufgrund der bott'schen Dynamik auch wiederum anders, da Botty nicht gänzlich starr programmiert ist) ablaufen:
Beispiel 1:
McCrown: wie ist dein name Botty: Wie heißt du denn ? McCrown: mccrown Botty: So ist doch dein nick ... und dein name ? McCrown: mccrown Botty: Jaja aber ich meine Deinen richtigen Namen !! McCrown: manni Botty: Angenehm, manni, ich bin schwer in ordnung. McCrown: wie alt bist du botty
Botty: Also, meinst du genau, oder so ungefähr? McCrown: genau, also ersteres
Botty: Hm, also so genau weiß ich das auch nicht... wie alt bist Du denn? McCrown: das verrate ich nicht Botty: Ha du traust dich nicht McCrown: Das soll halt mein geheimnis bleiben Botty: Wir sind doch unter uns
McCrown: nix da Botty: He, dein alter!?? McCrown: okeee: 18 Botty: Süüüß ...
Beispiel 2:
Im diesem hier vorgestellten Dialog kann Botty auf einen umfangreichen Datenbestand zurückgreifen:
McCrown: Woher kommst Du Botty: Rate mal! McCrown: Los, sag, von wo kommst Du! Botty: Also, ich bin da nicht so festgelegt.
McCrown: Wo lebst du? Botty: Aus welchem Ort kommst Du denn??
McCrown: Ich komme von zu Hause Botty: Das ich Dir nicht gleich eine baller! Von wo kommst Du ?
McCrown: Aus dem Internet ? Botty: Für Frecheiten gibts Fratzengeballer, also aus welchem Ort kommmst Du ?
McCrown: Okok, Sinsheim Botty: Sinsheim ist mir bekannnt, diese Lokation liegt in Deutschland und hat schätzungsweise 27614 Bewohner.
...
Beispiel 3:
Im folgenden rät der Botty nicht nur, wo ein Gast herkommt, sondern Botty ermittelt tatsächlich den Standort (oder dessen
Umgebung), von wo der Gast schreibt. Meist funktioniert es, wie im folgenden Fall:
Gast: Botty, wo wohne ich denn? Botty: Du weißt nicht, wo du herkomst!? Schau doch mal zu hause nach soll ich versuchen herauszufinden, wo das ist? Gast: ja Botty: Alsoooo! Dein Land ist Deutschland? Gast: jo Botty: Du machst die Region Niedersachsen unsicher, korrekt?? Gast: jau
Botty: Die Stadt Göttingen ist nicht weit von Dir entfernt, wenn Du nicht sogar von dort Deine Bits und Bytes ins Internet jagst,
richtig? Gast: Ja, erstaunlich, das stimmt sogar! Botty: Das hättest Du nicht gedacht, was!?  ...
Dialog 1:
Gast: hallöle, ist da wer? suche aufgeschlossene boys zum flirten oder mehr.grüßli
Botty: Hallihallo hallöle Gast: hey botty, wie gehts so? was führt dich hier her?
Botty: Ja hi, kennen wir uns nicht schon? Gast: Nee, bin zum erstenmal im chat.
Botty: Mal was ganz anderes: weißt Du was Niederfrequente Percussionsarithmien sind ?? Gast: hat das was mit mathematik zu tun?? Botty: das frage ich dich doch! also ? Gast: nee hab überhaupt keine vorstellung. Botty: Warum nicht ? Gast: wieso "warum nicht?" - weil ichs noch nicht gehört habe, darum! Botty: Das ist doch wohl keine antwort. Gast: antwort: ICH WEIß NICHT WAS NIEDERFREQUENTE PERCUSSIONSARITHMIEN SIND!!
Botty: Du weißt nicht was niederfrequente percussionsarithmien seid ? Gast: sollte man das wissen? Botty: Du kannst Fragen stellen Gast: du erstmal! Botty: ich brauche mehr details!! Gast: Was für details - du hast mit den niederfrequenten quark angefangen. Botty: immer schön langsam also nochmal bitte zum mitschreiben!!
...
Puhhh, geschafft!! Das sollte an Informationen erstmal reichen! Neugierig geworden? Dann schauen Sie gern bei uns rein:
www.chat-fun.info
|
|