LIBREAS.Library Ideas

#oebt11 : Echtzeit – Visualisierung und Download von Tweets

Posted in LIBREAS aktuell, LIBREAS.Visualisierung by libreas on 20. Oktober 2011
kann jemand ein Archiv bei twapperkeeper für den Hashtag #oebt11 einrichten? Hab mit zwei Archiven das Gratislimit schon überschritten

beschreibt librarymistress ein klassisches Problem des Social-Media Monitorings anhand von Twitter.  Zwar bestehen Online-Archive für Tweets, allerdings führt die rigide  Twitter-Politik dazu, dass Services wie TwapperKeeper keinen benutzerfreundlichen Download der Daten für die eigene Tabellenkalkulation anbieten dürfen (siehe TwapperKeeper Blog).

Als Alternativen bieten R und der neue Cloud-Computing Service OpenCPU Möglichkeiten, sich seinen eigenen Echtzeit-Export inklusive Visualisierung anzulegen .

Echtzeit-Export als csv, unter

http://beta1.opencpu.org/R/call/store:tmp/8f81a308a4f8898f0aff6ba41bead5e4/csv?tag=%22oebt11%22

Echtzeit-Visualisierung:

http://beta1.opencpu.org/R/call/store:tmp/8f81a308a4f8898f0aff6ba41bead5e4/png?tag=%22oebt11%22

R-Funktion

Zunächst bedarf es einer generischen R-Funktion, die das Abfragen von Hashtags über die Search-API von Twitter erlaubt. Ziel ist sowohl der Download des data.frame als auch ein Säulendiagramm über die zeitliche Verteilung nach Tag.

tweets <- function(tag=""){

require(XML)
require(ggplot2)

url<-paste("http://search.twitter.com/search.atom?tag=", tag, "&rpp=50", sep="")

id <- c()

name <- c()

tweet <- c()

updated <- c()

for (i in seq (1, 100, by=1 )) {

url.d <- paste (url, "&page=", i , sep="")

doc <- xmlTreeParse(url.d,useInternal=T)

id.tmp = tweet.tmp = xpathSApply(doc, "//r:entry//r:id",xmlValue,

namespaces=c(r="http://www.w3.org/2005/Atom"))

name.tmp = xpathSApply(doc, "//r:name",xmlValue,

namespaces=c(r="http://www.w3.org/2005/Atom"))

tweet.tmp = xpathSApply(doc, "//r:entry//r:title",xmlValue,

namespaces=c(r="http://www.w3.org/2005/Atom"))

updated.tmp = xpathSApply(doc, "//r:entry//r:published",xmlValue,

namespaces=c(r="http://www.w3.org/2005/Atom"))

if (length(id.tmp) == 0)
break
else

id <- c(id, id.tmp)
name <- c(name,name.tmp)
tweet <- c(tweet, tweet.tmp)
updated <- c(updated, updated.tmp)

my.data <- data.frame (id, name, tweet, updated)

my.data$updated <- as.Date(my.data$updated, format="%Y-%M-%d")

time.bib <- as.data.frame(table(unlist(my.data$updated)))

p <- ggplot(time.bib, aes(x=as.Date(Var1), y=Freq)) +

geom_bar(fill="darkred", stat="identity") +

xlab("Day") + ylab("Tweets") + opts(title= tag)

print(p)

}
return(my.data)
}

Created by Pretty R at inside-R.org

OpenCPU

Eine Beschreibung, wie sich Echtzeit-Visualisierungen über OpenCPU generieren lassen, befindet sich hier .

Über den URL-Parameter tag=[] lässt sich beispielsweise oebt11 abfragen. OpenCPU bietet zudem eine Vielzahl an Ausgabeformaten an.

Grenzen

Die Funktion enthält keine Speicherroutine, sondern fragt jedesmal die Twitter Search-API ab. Zudem sollten idealerweise Datengewinnung und Visualisierung in zwei getrennten Funktion behandelt werden.

OpenCPU zeigt, wie statistische Programmierung in die Cloud ausgelagert und im Sinne von Open Science öffentlich zur Verfügung gestellt werden kann. Allerdings befindet sich OpenCPU in einer frühen Beta-Phase. Als Alternative gibt es im Umfeld der R-Entwicklung mit rApache  eine Umgebung, mit der die Entwicklung von Web-Applikationen aus R heraus möglich ist. Und auch Hosting-Angebote für das Cloud-Computing gibt es reichlich (zB Amazon Elastic Compute Cloud (Amazon EC2) ).

2 Antworten

Subscribe to comments with RSS.

  1. […] (Najko Jahn?) hat im Libreas-Blog kürzlich vorgestellt, wie man OpenCPU nutzen kann, um sich ein eigenes Tweet-Archiv anzulegen und […]

  2. […] der API, gäbe es noch die Möglichkeit, über die Twitter Search API die Daten zu gewinnen (siehe #oebt11 : Echtzeit – Visualisierung und Download von Tweets). Jedoch lassen sich über diesen Weg nur max. 750 Tweets der letzten 5 bis 7 Tage […]


Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: