Tag: twitter

Twempy der Twitter Bot: Source Code Release 0.4a

Geschrieben von – 30. Dezember 2009

Die aktuelle Version des Twempy Bots behebt zwei kleinere Bugs und bringt eine verbesserte Tweet-Routine mit sich. In der Vergangenheit fand ich es immer störend, dass Twempy manchmal zu unmöglichen Zeiten – meistens genau um Mittag rum – Sachen wie “ich gehe jetzt schlafen” oder ähnlich unpassendes twitterte. Deswegen wird beim Sammeln von Tweets nun die Uhrzeit mitgespeichert. So ist es möglich, dass Twempy nur zur Tageszeit – innerhalb eines Zeitfernsters von zwei Stunden – passende Tweets absetzt. Dies macht die Tweets des Bots wesentlich glaubhafter.

Die zwei Bugs die behoben wurden, verbessern die Qualität der Antworten, dafür muss allerdings die Konfiguration angepasst werden. Am besten den Wortfilter und die Einstellungen aus der neuen Datei nochmal in die veraltete Datei kopieren, dann müsste es passen. Zudem sollte das Problem, dass Twempy manchmal rumspamt ebenfalls behoben sein – ich musste um einen Bug in der Twitter API herumprogrammieren.

Wichtig: Die SQL Struktur einer Tabelle hat sich geändert, ein Patch von 0.3a auf 0.4a liegt bei und auch eine neuer Komplettabzug meiner Datenbank ist im neuen Archiv enthalten.

Und hier die aktuellen Quellen: http://www.codemonster.de/source/twempy_0.4a.rar (Lizenz: GPLv3)

Viel Spaß!

(479x gelesen)

Twempy der Twitter Bot: Source Code Release 0.3a

Geschrieben von – 28. Dezember 2009

Da die Datenbasis von Twempy nun durchaus Formen angenommen hat, mit der ich einige Tests bezüglich der Qualität der Antworten durchführen konnte, habe ich der ersten Version der Antwort-Suchfunktion nun eine verbesserte Funktion vorgeschaltet.

Die verbesserte Funktion berücksichtigt nun auch die Wortlängen und blendet mögliche Antworten, mit zu vielen Treffern bei kurzen Wörten aus, wenn eine bessere Antwort gefunden werden kann. Sollte die Funktion allerdings nichts passendes finden, dann wird wieder auf die alte unscharfe Funktion zurückgegriffen.

Und hier gibt es die aktuellen Quellen zum Download: http://www.codemonster.de/source/twempy_0.3a.rar (Lizenz: GPLv3)

Neu ist übrigens auch ein Ein- und Ausschaltbarer Debug Modus.

(223x gelesen)

Twempy der Twitter Bot: Source Code Release 0.2a

Geschrieben von – 18. Dezember 2009

Ich habe mir mal kurz die Zeit genommen, die Quellen und die aktuelle Datenbank von Twempy zu einem Release zu verarbeiten. Wer interessiert ist, der kann sich den Bot hier herunterladen: http://www.codemonster.de/source/twempy_0.2a.rar (Lizenz: GPLv3)

Die Installation wird in der Datei INSTALL.txt beschrieben, der Code ist ausreichend kommentiert. *hust*

Es hat sich inzwischen übrigens gezeigt, dass der Bot sehr viele Tweets lernen muss, um wirklich gute Antworten liefern zu können, und auch, dass bestimmte Worte besser nicht mit in die Suche nach einer Antwort mit einbezogen werden können. In einigen Bereichen bringt Twempy bereits jetzt treffende Ergebnisse, doch bis wirklich ein breites Spektrum an Themen abgedeckt werden können, wird vermutlich eine Antwort-Basis von wenigstens 20.000 Tweets oder noch mehr benötigt. Leider stoße ich mit dem Bot bereits jetzt oft an das Rate-Limit der Twitter API, ich muss dem Twitter Team wohl mal eine E-Mail schreiben.

Viel Spaß mit dem Bot. Wer Verbesserungsvorschläge hat, immer her damit!

CODE IS POETRY.

(501x gelesen)

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…

(273x 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

(539x gelesen)

Spaß mit der Twitter API und Ausdruck des Protests gegenüber Harley Davidson

Geschrieben von – 9. Dezember 2009

@moto1203 hat mich über Twitter kontaktiert und gefragt, ob es nicht irgendwie möglich sei ein Programm zu schreiben, dass bei bestimmten Hashtags eine @reply erzeugt. Thematisch ging’s konkret um den bekannten Motorradhersteller “Harley Davidson”, der kürzlich die Tochter- und Traditionsfirma “BUELL” einfach so dicht gemacht hat. Buell Motorräder wurden “nicht oft genug” verkauft, was aber nichts daran ändert, das die Kisten ihren Markt hatten. Das fanden wir jedenfalls schon ziemlich kacke von Harley Davidson.

Also habe ich kurzerhand einen neuen Twitter-Account mit dem klangvollen Namen “@subversives” erstellt und ein kleines PHP-Skript geschrieben, dass neue Tweets mit einem #harley Hashtag sucht und eine zufällig ausgewählte Antwort erstellt. Natürlich konfigurierbar. :-) Mehr

(289x gelesen)