Tag: selbstlernend

Twempy der twitternde Software Roboter

Geschrieben von – 12. Dezember 2009

Ich habe meine Idee, ein selbstständig twitterndes Programm zu schreiben, nun weitgehend in die Tat umgesetzt. Twempy arbeitet im Augenblick an seiner Antwort-Datenbank, antwortet aber bereits auf Anfragen, gibt gelegentlich seinen Status bekannt und twittert sogar manchmal seine Gedanken und Gefühle. ;-)
Die Qualität der Antworten lässt im Moment teilweise noch etwas zu wünschen übrig, da die Datenbank der Antworten erst rund 220 Einträge umfasst, aber in der Stunde kommen im Schnitt 20 bis 30 neue Antworten hinzu.

Und so funktioniert es: Twempy sucht alle 5 Minuten nach Tweets mit bestimmten Schlüsselwörtern wie “und, er, sie, das, …”. Findet er einen passenden Tweet, ermittelt der Bot, ob es eine Antwort auf einen anderen Tweet war. Ist dies der Fall wird die Ursprungnachricht geladen und die Wörter extrahiert. Die Wörter werden danach verknüfpt mit dem Antwort-Tweet in einer Datenbank gespeichert. So bildet sich eine Relation von Wörtern zu tweets. Das schöne dabei ist, das Twempy im Grunde jetzt Sprache lernen kann, denn seine Datenbasis wird nicht durch den Programmierer beeinflusst, sondern ausschließlich aus echten Konversationen gebildet.

Erhält Twempy eine @reply (mention), extrahiert er die Wörter und schlägt in der Datenbank nach, welche Antworten passen könnten. Gibt es mehrere gleichwertige Antwortmöglichkeiten, wird zufällig eine mögliche Antwort ausgewählt und getwittert. Ich hoffe, dass die Qualität der Antworten mit wachsender Datenbank besser wird.

Ein weiteres nettes Feature ist, dass beim Lernen die Tweets, die nicht an einen anderen Twitter-Account gerichtet waren ebenfalls in der Datenbank gespeichert werden. Von Zeit zu Zeit twittert Twempy zufällig einen dieser Tweets. Danach wird die Nachricht gelöscht, damit er auf keinen Fall zwei Mal das gleiche sagt.

Offen ist noch, ob ich dieses Verfahren auch auf die Antworten, die der Bot sendet anwenden sollte, so dass auch niemals zwei Mal die gleiche Antwort gesendet werden könnte. Twempy würde seinen Antworten damit wieder verlernen, was aber auch das Risiko birgt, dass er irgendwann keine Antworten mehr parat hat. Da bin ich noch unschlüssig.

Wenn der Quellcode ausgereift ist, werde ich ihn veröffentlichen, aber ich muss noch etwas abwarten. Einige Dinge sind noch unklar, zum Beispiel die Frage, ob die Datenbasis besser wird, wenn nur Anworten gespeichert werden, die einen Ursprungstweet als Auslöser hatten, der nicht selbst ebenfalls eine Antwort auf einen anderen Tweet war. Mir ist nämlich aufgefallen, dass diese mitten aus der Konversation gegriffenen Antworten teilweise in keinem logischn Zusammenhang zu den verwendeten Wörtern stehen.

Es wird noch einige Tests benötigen, warten wir mal ab…

(251x gelesen)

Selbstlernender Chat-Bot mit der Twitter API?

Geschrieben von – 11. Dezember 2009

Ich habe mich schon immer für künstliche Intelligenzen und selbstlernende System interessiert. Die Spielereien mit der Twitter API hat mich nun auf folgende Idee gebracht.

Es ist jetzt erstmal nur ein Gedankenspiel, viel nachgedacht habe ich darüber noch nicht, aber könnte man die Twitter API nicht dazu nutzen einen Chat-Bot zu entwickeln, der aus Konversationen auf Twitter lernt? Nehmen wir doch mal eine wahllos ausgewählte Konversation aus meiner Timeline:

vjstephan: Sich selber mal für ein paar Stunden ohne Internetz und Handy in den Schnittraum einsperren wirkt wahre Wunder. #twitaly
motorradblogger: @vjstephan Oh darf man gespannt sein? #twitaly
vjstephan: @motorradblogger Wieso solltest du gespannt sein? Du warst doch dabei.
motorradblogger: @vjstephan Das ist so lang her. Hab schon wieder alles vergessen. ;-)

Ein Bot könnte über die Twitter API solche Konversationen suchen und bis zum Ursprung zurückverfolgen. Dafür wird in den Tweets extra eine “in reply to” ID gespeichert. Ist der Ursprungstweet gefunden, werden die einzelnen Wörter (ohne Links und Hashtags) herausgeschnitten und in einer Datenbank mit der Antwort (oder den Antworten) auf den Tweet verknüpft. Dieses Verfahren wird auf alle Tweets der Konversation angewendet.

Hat dieser Bot eine große Datenbasis angesammelt, könnte man ihm selbst einen Tweet schicken. Auch hier werden die einzelnen Wörter wieder ausgeschnitten und mit der Datenbank verglichen. Es ergeben sich dann aufgrund der Worthäufigkeit verschiedene Antwortmöglichkeiten, von denen die passenste, oder manchmal auch eine zufällige, als Antwort gesendet wird.

Das System würde von echten Konversationen lernen und möglicherweise würden die Antworten des Bots dadurch auch sehr echt wirken.

Ich werde das am Wochenende mal ausprobieren. Mal sehen was daraus wird. Vielleicht knackt so ein Bot ja endlich den Turing Test. ;-)

Einen Account und einen Namen hat der Bot jedenfalls schonmal: http://twitter.com/twempy

(497x gelesen)