4230 Zeilen unter dem Datenmeer: Nutzung von OpenRefine zur Datenbereinigung bei uneindeutigen Datensätzen in DigiKAR

Bing Image Creator: Ein hyperrealistisches Bild von zwei Taucherinnen, die 4000 Zeilen unter dem Datenmeer Daten sammeln und sortieren, im Hintergrund ist ein U-Boot zu sehen.

von Meike Starke und Catharina Strokowsky

Die Arbeit mit uneindeutigen Daten lässt auch technische Lösungen irgendwann an ihre Grenzen stoßen. Diese Herausforderung stellte sich auch bei der Arbeit mit Daten zu den Lebenswegen von frühneuzeitlichen Professoren im Projekt „Digitale Kartenwerkstatt Altes Reich“ (DigiKAR). Eine manuelle Bereinigung war notwendig, um mehr als 750 Informationen zu Lebensereignissen zu prüfen und zu korrigieren. Als uns Hilfskräften diese Aufgabe übertragen wurde, hatten wir bisher keinerlei praktische Erfahrung mit der Arbeit an Datensätzen und haben unsere eigene Arbeitsweise anhand dieses Projekts entwickelt. In diesem Post schildern wir unsere ersten Erfahrungen, um Anfänger*innen Hilfestellungen zum Einstieg zu geben und Erfahrenen unsere Perspektive zu eröffnen. Auf zu unserem ersten Tauchgang ins Datenmeer!

Sich den uneindeutigen Daten stellen

DigiKAR ist ein von der Leibniz-Gemeinschaft gefördertes interdisziplinäres Verbundprojekt und widmet sich anhand von zwei Fallstudien der Konstituierung von Räumen durch Mobilität (Fallstudie Kurmainz) und durch die Verteilung von Herrschaftsrechten (Fallstudie Kursachsen) im frühneuzeitlichen Heiligen Römischen Reich deutscher Nation. Dabei entwickelt und erprobt das Projekt Konzepte zur Erfassung, Modellierung und Visualisierung von frühneuzeitlichen Orts- und Personendaten, bei denen besonders die Unvollständigkeit und Mehrdeutigkeit der Daten aus (analogen und digitalisierten) historischen Quellen berücksichtigt werden soll. Diese Eigenschaften treffen auch auf die projektintern sogenannten „Professorendaten“ zu, die in der Fallstudie zur Mobilität in Kurzmainz für das Projekt aufbereitet werden sollten. Die Informationen, die in der Nachkriegszeit auf einer Schreibmaschine getippt worden waren, mussten für das Projekt in nutzbare Datenpakete überführt werden. Zuvor waren an der Johannes Gutenberg-Universität Mainz bereits Daten daraus im Rahmen des Projekts Gutenberg Biographics in einem Verzeichnis auf einer Website zusammengefasst worden. Für das DigiKAR-Projekt wurden nun sowohl die Schreibmaschinenseiten per OCR gescannt, als auch die in HTML vorliegenden Websitedaten in ein bearbeitbares Datenformat konvertiert.

Auschnitt aus der Spalte „additional info" der Professorendaten dargestellt in OpenRefine v3.7.9, nachträgliche Markierungen von Meike Starke
Screenshot A: Auschnitt aus der Spalte „additional info“ der Professorendaten

Diese Informationspakete wurden von den Bearbeiter*innen der Fallstudie Kurmainz mit technischer Unterstützung nun grob in der Kategorisierung des Projektes aufgeschlüsselt und in Excel-Dateien übertragen. Der Name kam in die Spalte „pers_name“, die Jahreszahl, mit der der Beginn z.B. einer Funktionsausübung gekennzeichnet wurde, wurde beispielsweise in die Spalte „event_start“ eingetragen. Außerdem erkannte das System zum Beispiel im Verb „lehrte“ eine Funktionsausübung („event_type“) und in der Bezeichnung Lehrer eine Personenfunktion („pers_function”) . Mehr kann man in Monika Bargets Blogartikel Vom Text zur Tabelle mit OCR und Python nachlesen.

Auschnitt aus den Spalten „pers_function", „place_name", „inst_name" und „additional info" der Professorendaten dargestellt in OpenRefine v3.7.9, nachträgliche Markierungen von Catharina Strokowsky
Screenshot B: Auschnitt aus den Spalten „pers_function“, „place_name“, „inst_name“ und „additional info“ der Professorendaten

Dieser Prozess verlief jedoch aufgrund der bereits bestehenden Uneindeutigkeiten nicht reibungslos. Informationspakete, in denen Jahreszahlen nicht der richtigen Spalte zugeordnet und Lebensstationen nicht sauber voneinander getrennt werden konnten, wurden mit einem #-Symbol ausgegeben.

An dieser Stelle kamen wir ins Spiel: Zwei Hilfskräfte aus dem Projekt, die sich nun erstmals mit der Bereinigung von Daten und Biografien von Personen aus dem Alten Reich auseinandersetzten. Als Geschichtsstudierende im Bachelor und Master konnten wir zwar auf ein grundlegendes Wissen zum Alten Reich zurückgreifen, aber die administrative Struktur des Reiches mit ihren verschiedenen Positionen und Titeln erschien uns eher rätselhaft. Unsere Hilfskraftstellen, die wir seit April 2023 ausfüllen, sind außerdem nicht in der digitalen Methodik, sondern in der Projektkoordination angesiedelt, sodass wir uns auf ganz neuem Gebiet orientieren durften.

Schweizer Taschenmesser der Datenbereinigung

Für die Bereinigung der zur Verfügung gestellten Excel-Dateien haben wir mit OpenRefine (v3.7.9) gearbeitet. Das Programm bietet verschiedene Möglichkeiten zum Durchsuchen und Bearbeiten großer Datenmengen (dazu später mehr) und unterstützt verschiedene Dateiformate (Ohne Erweiterungen: TSV, CSV, *SV, Excel (.xls und .xlsx), JSON, XML, RDF als XML und Google Data).

Ursprünglich hatten wir geplant, auch unsere Zwischenstände in Excel zu speichern. Allerdings stellte sich bald heraus, dass es ohne Kennzeichnung schwer möglich war nachzuvollziehen, welche Datensätze bereits bereinigt waren, und welche nicht. Zudem traten immer wieder Unklarheiten aufgrund von verwirrenden Titelabkürzungen oder uneindeutigen Jahreszahlen bei einzelnen Datensätzen auf, die bis zu ihrer Klärung markiert werden mussten. Die Stern- und Flaggenmarkierung in OpenRefine konnte dieses Problem lösen. Damit die Markierungen für die nächsten Bearbeitungen erhalten bleiben, muss allerdings eine OpenRefine-Datei im Format .tar oder .tar.gz exportiert werden, die über „Import Project“ wieder geöffnet werden kann.

Auschnitt von der Startseite von OpenRefine v3.7.9 unter dem Reiter „Import project“, nachträgliche Markierungen von Catharina Strokowsky
Screenshot C: Auschnitt von der Startseite von OpenRefine v3.7.9 unter dem Reiter „Import project“

Nach dieser Erkenntnis stand der gemeinsamen Arbeit an der Datei nichts mehr im Wege. Die Version mit dem aktuellen Arbeitsstand konnten wir so den Bearbeiter*innen der Fallstudie unkompliziert per Filesharing zur Verfügung stellen. Allerdings konnten wir trotzdem nicht gleichzeitig arbeiten und engmaschige Absprachen waren notwendig, um Missverständnisse und doppeltes Arbeiten zu verhindern. Glücklicherweise arbeiten wir ohnehin eng zusammen und stehen im regelmäßigen Austausch.

Wie funktioniert das mit den Facets?

Die vielfältigen Filteroptionen ermöglichten uns mit geringer Einstiegshürde eine Orientierung in der Datenmasse. Durch Klicken auf den Pfeil neben der Spaltenüberschrift kann die Spalte nach Inhalten gefiltert werden. Es wird ein sogenanntes Text-Facet gebildet. Auf der linken Seite erscheint ein Fenster, das alle Inhalte der Spalte angibt. Ein Klick auf einen Inhalt zeigt alle Zeilen mit diesem Inhalt an. Bei den Professorendaten ist es zum Beispiel sinnvoll nach Funktionen zu filtern. Das über die Spalte „function“ erstellte Facet zeigt dann eine lange Liste aller angegebenen Funktionen wie „Lehrer“, „Professor“ oder „Kantor“. Wenn es notwendig wird, bei allen Einträgen zu „Lehrern“ nochmal einen Blick über die Datensätze zu werfen, kann man so alle Datensätze mit dieser Funktion auswählen. Wenn man diese Einträge zum Beispiel schon bearbeitet hat, kann man mit „invert“ alle „Lehrer“-Datensätze aus der Liste ausschließen, indem man die Auswahl umkehrt.

Ausschnitt aus der Facet-Anzeige der Spalte „pers_function" der Professorendaten dargestellt in OpenRefine v3.7.9, nachträgliche Markierungen von Catharina Strokowsky
Screenshot D: Ausschnitt aus der Facet-Anzeige der Spalte „pers_function“ der Professorendaten

Ein Facet kann beliebig mit anderen Facets kombiniert werden, sodass sich eine komplexe Auswahl treffen lässt. In unserem Fall hieß das, wenn man einen neuen Datensatz bearbeiten wollte: „kein Stern (noch nicht bearbeitet), keine Flagge (kein Problem, das noch bearbeitet werden muss), Informationstext zu Professor“. Auf diese Weise werden alle Zeilen angezeigt, die die Daten aus dem angewählten Informationstext abbilden sollen. Bei vielen Zeilen pro Information ist zu beachten, dass die Anzahl der angezeigten Zeilen in der Mitte über der Tabelle auf 10 voreingestellt ist und daher möglicherweise nicht alle angezeigt werden. Die komplexe getroffene Auswahl kann auch für später gespeichert werden, indem man den Link der Seite kopiert. Hilfreich kann auch die Zählfunktion unter „count“ in den Facets sein. Hier kann danach sortiert werden, wie viele Zeilen denselben Eintrag in der ausgewählten Spalte haben.

Ausschnitt aus der Facet-Anzeige für „Starred Rows” und „Flagged Rows” der Professorendaten dargestellt in OpenRefine v3.7.9, nachträgliche Markierungen von Catharina Strokowsky
Screenshot E: Ausschnitt aus der Facet-Anzeige für „Starred Rows“ und „Flagged Rows“ der Professorendaten

Für uns war das hilfreich, um zu erkennen, ob bereits genug Zeilen vorhanden waren, um alle Daten im Informationstext abzubilden. Denn ein entscheidender Nachteil bei der Datenbereinigung ist für uns, dass in OpenRefine das Hinzufügen neuer Zeilen nicht möglich ist. Wenn zuvor durch die technische Lösung nicht ausreichend Zeilen generiert wurden, mussten wir diese Fälle herausfiltern und in Excel mit weiteren Zeilen versehen. Um die einzelne Bearbeitung jeder Zelle kommt man allerdings nicht herum. Geht man mit dem Mauszeiger auf eine Zelle, erscheint ein edit-Symbol. Im geöffneten Fenster kann man dann den neuen Text eingeben und anschließend zwischen den Optionen „Apply“, „Apply to all identical cells“ und „Cancel“ auswählen.

Ausschnitt der Bearbeitungsmaske für einzelne Zellen in OpenRefine v3.7.9 anhand der Professorendaten, nachträgliche Markierungen von Catharina Strokowsky
Screenshot F: Ausschnitt der Bearbeitungsmaske für einzelne Zellen

Wir haben an dieser Stelle einen kurzen Druckabfall erlitten, da es schnell mal passiert ist, aus Versehen alle Zellen anstatt nur die ausgewählte zu ändern. Doch beim Deepdive gilt immer noch: Keine Panik auf der Titanic. OpenRefine gibt einem zum Glück die Funktion „Undo/Redo“ an die Hand, die sämtliche Änderungen, die bisher gemacht wurden, aufzeigt. Sollte ein Fehler passieren, kann man einfach wieder einen Schritt zurückgehen.

Ausschnitt aus der Maske zur Rückverfolgung von Änderungen in OpenRefine v3.7.9 anhand der Professorendaten, nachträgliche Markierungen von Catharina Strokowsky
Screenshot G: Ausschnitt aus der Maske zur Rückverfolgung von Änderungen

Fachkenntnisse als Hürden

Wie schon weiter oben im Text erwähnt, stießen wir durch den Projektkontext bedingt auf  verschiedenste Positions- und Ämterbezeichnungen,  Ränge und Titel innerhalb und außerhalb der Universitäten, die uns in der inhaltlichen Durchdringung der Daten an unsere Grenzen brachten. Vor allem einige Abkürzungen – teilweise auch auf Latein – gaben uns  Rätsel auf. Um nicht immer wieder von vorne zu beginnen, legten wir uns ein Wiki mit den Begriffen an, die wir mit dieser Hilfe bereits entschlüsseln konnten. Es wäre rückblickend auch hier vom Vorteil gewesen, derartige Herausforderungen  im Vorfeld so weit wie möglich abzuklären. Ohne den Austausch mit und die Unterstützung durch Monika Barget, eine der Bearbeiterinnen und Koordinatorinnen des DigiKAR-Projekts, wäre dies sicherlich die größte Hürde für uns gewesen.

Fazit für beginnende Datenbereiniger*innen

Insgesamt fiel uns die Arbeit mit OpenRefine  auch ohne Vorerfahrung leicht. Die Einstiegshürden waren gering und wir fühlten uns zu keinem Zeitpunkt überfordert. Bei der direkten Arbeit an den Daten wird schnell klar, dass eher inhaltliche Vorkenntnisse wichtig sind, um die vielfältigen Entscheidungen zu treffen, die bei der Bereinigung aufkommen. Der zeitliche Aufwand für händische Bereinigung ist bei großen Datenmengen ebenfalls nicht zu unterschätzen und sollte im Vorhinein abgewogen werden. Bei uns waren es schließlich 25 Wochen. Wenn die händische Bereinigung unumgänglich ist, können jedoch auch Personen ohne Erfahrung auf dem Gebiet des Datenmanagements problemlos daran arbeiten. Entscheidend sind eher inhaltliche Vorkenntnisse oder Möglichkeiten, ein Fehlen dieser auszugleichen.

OpenRefine ist ein praktisches Tool, das durch seine Bereitstellung als freie Software leicht zugänglich und auch leicht zu bedienen ist. Bei einem sehr großen Datensatz, wie es bei uns der Fall war, hat jedoch die Übertragung der Daten nicht ideal funktioniert, sodass eine nachträgliche Bereinigung von Nöten war. Auch wenn die Bedienung von OpenRefine sich als sehr laienfreundlich erwies und man schnell in einen guten Workflow kommt, sollte man den Aufwand dahinter nicht unterschätzen. Die Filtermöglichkeiten durch die Facet-Funktion hilft sehr dabei, sich im Datenmeer besser zu orientieren, letztendlich müssen die Reihen aber einzeln bearbeitet werden. Im Zweifelsfall müssen nachträglich sogar noch weitere Zellen generiert werden, was dann wieder Fachexpertise erfordert.

An dieser Stelle würden wir die Empfehlung aussprechen OpenRefine erst einmal für kleinere Datensätze zu verwenden. Aber man sollte sich auch nicht von größeren Datenmengen abschrecken lassen: Mit etwas Geduld und Zeit lassen auch diese sich easy bewältigen. Wir hoffen, dass wir in diesem Blogpost mit unseren ersten Erfahrungen mit OpenRefine, anderen Student*innen, wissenschaftlichen Hilfskräften oder anderen Geisteswissenschaftler*innen einen guten Einblick an die Hand geben und den Schrecken der Datensätze etwas den Wind aus den Segeln nehmen konnten. Auch wir haben mit dieser Aufgabe nur an der Oberfläche gekratzt, was man mit OpenRefine noch weiter machen kann, der erste Tauchgang sollte damit ein voller Erfolg werden. Wir wünschen allen Leser*innen viel Glück auf ihrer Datenreise und wir sehen uns spätestens hier: 4230 Zeilen unter dem Datenmeer.


Featured image: Bing Image Creator: Ein hyperrealistisches Bild von zwei Taucherinnen, die 4000 Zeilen unter dem Datenmeer Daten sammeln und sortieren, im Hintergrund ist ein U-Boot zu sehen.

Cite this article as: Meike Starke und Catharina Strokowsky (2024, 25. April). 4230 Zeilen unter dem Datenmeer: Nutzung von OpenRefine zur Datenbereinigung bei uneindeutigen Datensätzen in DigiKAR. Digital Humanities Lab. Abgerufen am 25. April 2024, von https://dhlab.hypotheses.org/?p=4703

Please use the citation reference above. The reference below is generated automatically and does not take multi-authorship into account.



Diesen Blogbeitrag zitieren
DH Lab (2024, 26. April). 4230 Zeilen unter dem Datenmeer: Nutzung von OpenRefine zur Datenbereinigung bei uneindeutigen Datensätzen in DigiKAR. Digital Humanities Lab. Abgerufen am 20. Mai 2024, von https://doi.org/10.58079/wb79

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Suche in OpenEdition Search

Sie werden weitergeleitet zur OpenEdition Search