#BonniconValley: Ein Twitterbot für die Bonner Startup-Szene (I)

Mich juckt es schon länger in den Fingern, mal einen Twitterbot zu programmieren. Twitter ist bekannt dafür, Entwickler für solche Ideen mit einem guten API zu unterstützen. Allerdings fehlte mir bisher der Anwendungsfall, weshalb die Idee in der Schublade verblieben ist. Das hat sich nun aber aus reinem Eigennutz geändert.

#BonniconValley Twitterbot auf Twitter

@BonniconValley ist ein Twitterbot, den ich mit dem Ziel gestartet habe, die Startup-Szene in Bonn zu beobachten und die verschiedensten Beiträge, Projekte und Akteure an einem Ort zu sammeln. Die Themen, die mich interessieren, sind Startups, Zukunft, Technologie, Disruption und Digitalisierung – mit einem klaren Fokus auf Bonn.

Zur initialen Umsetzung des Twitterbots habe ich mich für Python und für die Open-Source Bibliothek Tweepy entschieden. Tweepy ist mir bei der Recherche zum Thema immer wieder über den Weg gelaufen ist. Nach ersten Experimenten hat sich gezeigt, dass die Bibliothek sehr stabil, in aktiver Entwicklung und so entworfen ist, dass man sich gut am eigentlichen Twitter-API und dessen Dokumentation orientieren kann. Methodennamen und Objekte sind weitestgehend identisch. Außerdem ist die Bibliothek sehr gut dokumentiert.

Zur Beobachtung neuer Tweets hat Twitter ein exzellentes Realtime API, dass auch in Tweepy implementiert ist. Der Vorteil gegenüber dem regulären API ist, dass es sich um einen Event-basierten Endpunkt handelt, der immer dann eine Nachricht an alle aktiven Empfänger versendet, sobald ein neuer Tweet mit bestimmten Eigenschaften veröffentlicht wurde. Konkret heißt das in meinem Fall, dass über Tweepy ein EventHandler aufgerufen wird, sobald ein Tweet eine Zeichenfolge aus einer von mir festgelegten Liste enthält. Der EventHandler entscheidet dann, ob der Tweet weiter zu verarbeiten ist oder eben nicht.

In der jetzt aktiven Basisversion retweeted @BonniconValley immer dann einen Tweet, wenn dieser mindestens eins der Hashtags #BonniconValley, #StartupBonn oder #BonnStartup verwendet – Dank an Sascha für die sachdienlichen Hinweise. Außerdem muss der Tweet in Englisch oder Deutsch verfasst und selbst kein Retweet sein. In diesem Fall bestimme ich den Ursprungstweet und retweete – falls noch nicht geschehen – das Original.

Den Twitterbot möchte ich in nächster Zeit schrittweise weiterentwickeln und dafür auch Machine-Learning-Methoden einsetzen. Eine erste Idee, die ich im nächsten Teil besprechen werden, ist, einen einfachen Bayes Classifier einzusetzen. Dieser etablierte Algorithmus hat bereits das Potenzial, auch Tweets zu finden, die thematisch relevant sind, aber nicht die oben genannten Hashtags verwenden. Zur Vorbereitung des Modelltrainings habe ich 100 Twitternutzer aus der Szene als Followings ausgewählt und zusätzlich etwas mehr als 60 manuelle Retweets. Diese Tweets enthalten dann zum Beispiel Hashtags wie #bonn (39-mal verwendet), #startup (33), #startupbonn (11), #coworking (3), #digitalhub (3), #startupfriday (2) usw. aus denen man eine Gesamtpunktzahl bestimmen und zusammen mit einer Vergleichsmenge – z.B. alle anderen Tweets der 100 Followings aus demselben Zeitraum – das nötige Modell trainieren kann. Dasselbe Verfahren wird zum Beispiel seit vielen Jahren zur E-Mail-Spamerkennung eingesetzt.

Falls ihr Anregungen und Ideen zu diesem Thema habt, kontaktiert mich gerne per Twitter. Den Quellcode zum Projekt werde ich im Verlauf des Projekts noch online stellen.