Datenjournalismus (4): Messy data – Daten säubern mit OpenRefine

Unterschiedliche Schreibweisen, Abkürzungen oder Zahlenformate, Doubletten, Rechtschreibfehler, überflüssige Leerzeichen, fröhliches Hin und Her zwischen Singular und Plural: „Messy data“ ist das täglich Brot des Datenjournalismus. Besonders beim Zusammenführen von Datensätzen aus mehreren Quellen ist das Ergebnis mitunter ein ziemliches Durcheinander. Das weiß der französische Journalist und Programmierer Nicolas Kayser-Bril (Web, Twitter) aus eigener Anschauung, er ist Mitgründer und CEO der Daten-Agentur Journalism++. Im vierten Modul des Online-Kurses „Doing Journalism with Data“ schickt er professionelle Reinigungskräfte aufs Feld. Das stärkste Mittel gegen Datenmüll: OpenRefine (ehemals Google Refine).

OpenRefine hilft, Datenchaos zu bereinigen
OpenRefine hilft, Datenchaos zu bereinigen

Das Tool ist etwas gewöhnungsbedürftig, dann aber ausgesprochen nützlich. Mit seiner Hilfe spürt man inkonsistente Daten auf und kann in einem Datensatz sehr schnell aufräumen.

Einen guten ersten Überblick über die Funktionalitäten von OpenRefine gibt dieses Video:

Die Übungen in diesem Modul sind eine Herausforderung. OpenRefine ist, wie bereits angedeutet, nicht sehr intuitiv. Man braucht etwas Zeit, um sich einzufuchsen. Dann aber ist es der ultimative Daten-Besen. In meinem Datenwerkzeugschrank bekommt es einen festen Platz, und zwar ganz vorne, wo die Sachen liegen, die ich oft brauche.

Wenn Crowdsourcing „messy data“ produziert

Manchmal muss man die Recherche auf sehr viele Schultern verteilen, um sich Daten zu erschließen. Als eines der größten Crowdsourcing-Projekte dieser Art gilt wohl nach wie vor „Free the Files“: Die US-amerikanische Journalismus-Stiftung ProPublica wollte wissen, ob bei der Wahlwerbung für die Präsidentschaftswahl 2012 alles mit rechten Dingen zugegangen ist, und hat mehr als 40.000 Dokumente dazu gesammelt. Damit sich jeder Interessierte an der Auswertung beteiligen kann, hat ProPublica eine leicht verständliche Anwendung entwickelt. Laut Kayser-Bril ist das entscheidend: „When cleaning through crowdsourcing, keep the interface or method of cleaning simple.“ Klare Anweisungen sind ebenfalls wichtig: „When cleaning through crowdsourcing, provide clear instructions.“ Es gibt Tools, die dabei helfen: Crowdcrafting etwa ist eine Plattform, auf der man Aufgabenstellungen definieren und um Mithilfe bitten kann.

Kayser-Bril warnt zugleich davor, Crowdsourcing bei Datenprojekte zu überschätzen. „Crowdsourcing is interesting, but it should not be your default option for cleaning data.“ Ein Beispiel aus meinem eigenen Redaktionsalltag: Für eine Serie über Radfahren in Frankfurt am Main haben wir unsere User eingeladen, ihre Erfahrungen mit uns zu teilen und Problemstellen wie beispielsweise gefährliche Kreuzungen, häufig zugeparkte Radwege oder eine ungünstige Verkehrsführung in einen Stadtplan einzutragen. Innerhalb weniger Wochen kamen so mehr als 200 Hinweise zusammen. Weil ich der Einfachheit halber auf Google Maps zurückgegriffen hatte, lagen die Daten am Ende ziemlich unstrukturiert vor: Es gab lediglich ein Titelfeld (das manche für den Straßennamen, andere für ein Stichwort nutzten), ein Freitextfeld ohne Zeichenbegrenzung und die Ortsangabe im KML-Format. Ein klassischer Fall von „messy data“ also. 😉

Die Überarbeitung des Datensatzes war entsprechend aufwändig, doch OpenRefine hat mir gute Dienste bei der Kategorisierung der Inhalte geleistet.

OpenRefine: Die Funktion "Text Facet" hilft, unterschiedlichen Schreibweisen auf die Spur zu kommen. Hier entdeckt das Tool ein überflüssiges Leerzeichen.
Hier entdeckt OpenRefine ein überflüssiges Leerzeichen hinter einer ,Gefährlichen Kreuzung‘.
Cluster-Funktion: OpenRefine erkennt Ähnlichkeiten und hilft, Datensätze zu vereinheitlichen.
Cluster-Funktion: OpenRefine erkennt Ähnlichkeiten und hilft, Datensätze zu vereinheitlichen.

Am Ende standen zwei Visualisierungen: Eine mit Datawrapper erstellte Grafik, die auf einen Blick zeigt, welche Problematik häufiger, welche weniger oft genannt wurde. Und eine mit Hilfe des FusionTables Layer Wizards kreierte Karte, die sich nach Problem-Kategorie filtern lässt – quasi als Service für die Verantwortlichen bei der Stadt. 😉

Weiterführende Links
Paul Bradshaws Quick Guide to OpenRefine

ProPublica: Using OpenRefine to clean messy data

Nützliche OpenRefine-Rezepte

ProPublica: Viele gute allgemeine Tipps für den Umgang mit Datensätzen

Mein Fazit aus diesem Modul:

Hätte ich das nur früher gekannt!