Skip to article frontmatterSkip to article content

Ähnlichkeit von CSV-Dateien

Dieses Projekt wird seit SS 2024 im Rahmen eines Studienprojektes bearbeitet. Diese Seite hier: Kontext-Informationen zum Studienprojekt für interessierte Beobachter aus der Linked Open Government Data-Szene.

Usecase: Uns interessieren Daten über die Belegung von Parkhäusern, z.B. Parkhausbelegungsstände in Heidelberg. Suche auf https://www.govdata.de/:

Suchraum: Auf https://www.govdata.de/ sind rund 96k Datensätze (Stand April 2024) aus der Verwaltung öffentlich verfügbar. Das wollen wir wissen:

  • Welche anderen Datensätze auf govdata.de enthalten ebenfalls Parkhausdaten?

Lösungsansätze:

  • Suche auf GOVDATA über Metadaten, d.h. Recherche über die Verschlagwortung von Datensätzen. Leider zeigt die Erfahrung, dass die Verschlagwortung subjektiv und nicht treffgenau ist, und nicht alle interessanten Datensätze zurückgibt.
  • interessantes Projekt: https://www.bertelsmann-stiftung.de/de/unsere-projekte/smart-country/musterdatenkatalog. Einschränkung: Die Suche nach ähnlichen Datensätzen wird hier ausschließlich auf den Metadaten durchgeführt.
  • Idee für einen ergänzenden Ansatz: Wir suchen nach ähnlichen (CSV-) Dateien, indem wir direkt die Spalten der Dateien miteinander vergleichen:
    • Welche Spalten haben ähnliche Inhalte?
    • können aus den Inhalten einer Spalte ihren Typ erschließen? z.B. Adresse, Geburtsdatum, Ort, Kontonummer, Uhrzeit etc.

Aufgabe im Studienprojekt:

  • Entwickle ein Konzept und ein Demo-Beispiel, wie man die Ähnlichkeit von CSV-Dateien feststellen kann.

Die Ähnlichkeit kann man dann nutzen, um

  • zu einer gegebenen CSV-Datei eine andere ähnliche zu finden (obige Aufgabe)
  • eine größere Menge von CSV-Dateien zu clustern (allgemeine Anwendung)
  • ggf. Nebenprojekt: Lassen sich ggf. sogar Spaltenüberschriften aus den Spalteninhalten erschließen? Wie genau der Datentyp?

Wenn die Spaltenüberschriften ähnlich sind, ist die Sache einfach. Wir gehen jedoch davon aus, dass die Spaltenüberschriften (Metadaten) nicht gegeben sind, oder jedenfalls zu wenig normiert sind, um ausreichend relevant zu sein. Hypothese deshalb:

  • Je mehr ähnliche Spalten zwei CSV-Dateien haben, desto ähnlicher dürften sie auch insgesamt sein.

Also Lösungsansatz:

  • Bestimme die Ahnlichkeit einzelner Spalten in verschiedenen CSV-Dateien
  • Die Ähnlichkeit von zwei Dateien ergibt sich dann als Funktion der Ähnlichkeit ihrer einzelnen Spalten.

Vorgehen:

  • Synthetische Konstruktion einiger dutzend CSV-Dateien von unterschiedlichem Typ, z.B.
    • Adressen: Name, Vorname, Straße, PLZ, Ort
    • Produkte: Produkt-Name, EAN-Nummer, Einkaufspreis, Verkaufspreis, Datum, Menge
    • Klausuren: Name, Vorname, MatNr, ModulNr, Datum, Note
    • Blitzer: PLZ, Ort, Straße, Datum, Zeit, Kennzeichen, Geschwindigkeit
  • Realexperiment: Übertragung der Ergebnisse auf Datensätze aus govdata
  • Evaluation: noch unklar, TBD
    • eigene manuelle Recherche und Suche nach ähnlichen Dateien bei govdata (Goldstandard, aber aufwändig)
    • Vergleich der eigenen Ergebnisse mit den Clustern aus dem Musterdatenkatalog?
    • andere?

Literatur:

Teilaufgaben

Typ der Daten in einer Zelle feststellen

gegeben:

  • eine einzelne Zelle einer CSV-Datei als String
    • Bsp.: ein (Geburts-) Datum in ganz unterschiedlichen Darstellungen; TelNr; ISBN, DOI; URI; Name in der Form Nachname, Vorname;

gesucht:

  • der wahrscheinlichste Typ der Daten in der Zelle
  • alternativ eine Liste von möglichen Typen zusammen mit einer Wahrscheinlichkeit zwischen 0 und 1

Idee: Stelle eine ganze Batterie von kleinen, leichtgewichtigen Test zur Verfügung, die man auf einen einzelnen Zelleninhalt loslassen kann ... mögliche Technologien: regex; ein konventioneller Klassifikator (aus Textmining bekannt: logistische Regression; andere?); ein Perzeptron; ein komplexres modernes NN? ... wenn man mit regex arbeitet, dann kann man alle Tests gleichzeitig (!) durchführen ... im Ergebnis wird der Typ einer Zelle durch einen Vektor dargestellt; Zellähnlichkeit dann wieder Cosinus-Ähnlichkeit?

Eine Spalte lässt sich dann beschreiben als eine Liste von Typ-Vektoren; wenn die meisten Zellen den gleichen Typ haben, vermuten wir auch für die Spalte einen Typ ... einzelne Zellen mit einem anderen Typ sind dann Ausreißer? Oder besonders signifikante Exemplare?

recherchieren: Wie wird das bei den Standard-Technolgien beim Schema-Matching gemacht?

Govdata Bsp Parkhausdaten

2024-04-19: hier wegen der Zugänglichkeit angelegt auf der Seite aehnlichkeit-von-csv-dateien.md, wird später verschoben nach LOVS

Was kann man an diesem Beispiel diskutieren?

  • eigentliches Interesse JB: Die Parkhausdaten in HD sind auf Govdata in der Terminologie von DCAT in ganz unterschiedlichen “Distributionen” vorhanden ... wir versuchen, den Begriff der dcat:distribution mit den FRBR-Begriffen zu verstehen; Vermutung: dcat:distribution entspricht frbr:manifestation: Was spricht dafür, was dagegen?
  • Studienprojekt Ähnlichkeit von CSV-Dateien: die vorliegenden Parkhaus-Belegungsdaten sind vielleicht weniger geeignet; aber wir lernen hier die Struktur von govdata; besser geeignet möglicherweise die Parkhaus-Metadaten in Heidelberg?

Wir wollen über die Parkhausbelegung von Parkhäusern in Heidelberg Auskunft geben ... z.B. https://parken.heidelberg.de/ (für Landshut siehe etwa https://app.landshut.de/freeparkinglots)... das Werk ist hier nicht Ergebnis der schöpferischen Leistung eines einzelnen Menschen, sondern das Ergebis von individuellem, unkoordinierten Parksuchverkehr (möglicherweise auch Ausdruck des Willens eines großen Weltgeistes) ... dennoch können wir es als eine Art Werk betrachten ... mittels automatischer Systeme werden verschiedene Expressionen erzeugt:

Für diese Daten gibt es auch andere Seiten, in denen die Daten mehrer Tage minutengenau verzeichnet sind, z.B.

Diskussion: Teil-Werke, -Expressionen, -Manifestationen

In diesem Beispiel drückt sich das spezifische Werk “Parkhausbelegung in Heidelberg” des großen Weltgeistes in verschiedenen “Distributionen” aus (wir haben hier 3 explizit genannt), die sich in der URI unterscheiden ... modellieren jeweils nur einen Teil des Werkes; verschiedene Modelle, Messreihen verschiedener Zustände ... das gleiche Werk, verschiedene Expressionen? oder verschiedene Teile des Werkes, jeder Teil eine eigene Expression? ... Interpretation : Eines von vielen Werken des Weltgeistes ist die Parkhausbelegung in der BRD insgesamt ... dieses Werk hat viele Teile: Parkhausbelegung in unterschiedlichen Städten, in verschiedenen Parkhäusern einer Stadt; dokumentierte Messdaten in unterschiedlichen Zeitintervallen, etc. ... wir können dieses große Werk und seine viele Teilen in vielfacher Weise beschreiben, modellieren. Wir systematisieren das etwas:

Parkhaus-Metadaten in Heidelberg

govdata.de, Suche nach “parkhaus heidelberg”, ergibt auch “Parkhausmetadaten in Heidelberg” https://www.govdata.de/web/guest/suchen/-/details/parkhausmetadaten-in-heidelberg

geeignet für die Suche nach ähnlichen Datensätzen?

Govdata Bsp Abfallmengen