Webscraping mit Raspberry Pi – Teil 3 – Datenauswertung

Ich habe mich entschieden, dieses kleine Webscraping-Projekt mit dem Raspberry-Pi durchzuführen, weil der Stromverbrauch des kleinen Rechners bei nur 3,5 Watt liegt. So habe ich kein schlechtes Gewissen, wenn ich den Raspberry-Pi 2-3 Wochen am Stück laufen lasse, um eine Datenbasis für meine Radiosong-Auswertung zu generieren.

Datenauswertung
Bei einem Blick auf die gewonnenen Rohdaten, fiel mir auf, dass ab und zu Duplikate von Einträgen entstanden sind. Das heißt, dass derselbe Song direkt hintereinander zweimal in der Liste gelandet ist. Das hatte ich durch einen Abgleich in der Schleife meines Python-Codes eigentlich vermeiden wollen und es hat auch überwiegend funktioniert. Die Ursache hierfür muss ich noch herausfinden.

MacDonald,Amy This is the life 07:22 14-12-13
MacDonald,Amy This is the life 07:22 14-12-13
Foster The People Pumped up kicks 07:25 14-12-13
Foster The People Pumped up kicks 07:25 14-12-13
Farin Urlaub Racing Team Herz? Verloren 07:32 14-12-13
Farin Urlaub Racing Team Herz? Verloren 07:32 14-12-13
FUN. We are young 07:36 14-12-13
FUN. We are young 07:36 14-12-13

Für die weitere Arbeit mit dem Datensatz muss ich also diese unmittelbar aufeinanderfolgenden Duplikate entfernen. Dies mache ich natürlich mit R, denn dort brauche ich nur eine kleine Zeile Code für diese Aufgabe.

#Daten einlesen
radio<-read.csv2(file="C:/Beispieldaten/radio.csv",sep=";",header=FALSE)
names(radio)<-c("Kuenstler","Titel","Uhrzeit","Datum")

#Doppelte Einträge löschen
radio<-unique(radio)
[/code]
Und schon sieht die Datenbank so aus:
<code>
MacDonald,Amy	This is the life	07:22	14-12-13
Foster The People	Pumped up kicks	07:25	14-12-13
Farin Urlaub Racing Team	Herz? Verloren	07:32	14-12-13
FUN.	We are young	07:36	14-12-13

Datenauswertung
Als erstes interessiert mich: Welche Künstler werden am häufigsten gespielt?
Hierfür werde ich erstmal eine Wordcloud für den groben Eindruck machen, anschließend ein normales Balkendiagramm, da man hier deutlich besser vergleichen kann.

#Wordcloud
library("tm")
library("wordcloud")

test<-as.character(radio$Kuenstler)
tweet.corpus<-Corpus(VectorSource(enc2utf8(test)))
tdm = TermDocumentMatrix(tweet.corpus)

m = as.matrix(tdm)
word_freqs = sort(rowSums(m), decreasing=TRUE) 
dm = data.frame(word=names(word_freqs), freq=word_freqs)

#Plotten
wordcloud(dm$word, dm$freq, random.order=FALSE, colors=brewer.pal(8, "Dark2"))

Das Ergebnis sieht wie folgt aus. Leider werden Künstlernamen mit dem obigen Code leider bei Leerzeichen getrennt. Daher sind „one“ und „republic“ an zwei Stellen in der Grafik vorhanden und nicht zusammengeschrieben an einer. Hier muss ich nochmal nachforschen.
Es fällt ausserdem auf, dass ich die Musik im Dezember gespeichert habe, da Wham und Melanie Thornton sowie Band Aid in der Liste der meistgespielten Künstler vorkommen.
radio

Top 20 Songs auf Bremenvier
Leider habe ich aktuell keine Zeit, die Daten weiter auszuwerten. Als Appetitanreger gibt es eine Grafik vorweg:
radiosongs

Weitere Auswertungen
In Kürze wird die Auswertung noch ergänzt.
– Häufigkeit von Künstlern (Barchart, Bubble/Balloon-chart)
– Zeitpunkte von Liedern (Uhrzeiten, Wochentage mittels Calender Heatmap)