5.15 Dubletten-Prüfung /-Handling
- Das Luka
Motivation
In einer föderierten Infrastruktur werden an verschiedenen Stellen Metadaten über bildungsrelevante Objekte erschlossen. Bei einem Austausch der Daten werden diese in bereits vorhandene Datenmengen eingefügt. Um ein konsistentes und eindeutiges Ergebnis bei Suchen zu bekommen ist es notwendig die evt. vorhandenen Dubletten zu erkennen und ggf. die Metadaten zu vereinigen.
Ist-Stand der Lösung
Duplikatserkennung
Wie oben erläutert, stellen Duplikate in der Plattform eine Herausforderung dar, da sie das Suchergebnis unerwünscht vergrößern.
Ziel ist es, beim Einspielen eines Inhalts festzustellen, ob der Inhalt bereits im Corpus vorhanden ist und
bereits im Corpus vorhandene Duplikate zu identifizieren.
Beides setzt voraus, zunächst festzulegen, wann zwei Dokumente als Duplikat gelten:
Folgende Abbildung stellt hierfür verschiedene Ebenen dar.
Zwei Dokumente gelten beispielsweise als Duplikat wenn:
- Quelle: Sie den selben URL haben, bzw. der URL auf die selbe Web-Ressource verweisen.
- Struktur: Die Struktur der Inhalte (inklusive Text, o.ä.) identisch ist.
- Text: Der textuelle Inhalt oder bestimmte Metadaten identisch sind.
- Thema: Die Dokumente das selbe Thema behandeln.
- Detailgrad: Die Dokumente das selbe Thema beim selben Detailgrad behandeln.
Diese Liste stellt nur einige Beispiele dar und ist keinesfalls vollständig. In unserer Plattform setzen wir auf zwei Stufen an: Quelle und Text.
Hierfür wurde eine Methode entwickelt, die anhand des URLs Duplikate feststellt. Des weiteren wurde ein “MinHash”-Algorithmus implementiert, um effizient Duplikate auf Basis des Textes im Bestand zu ermitteln.
Beim Minhash-Algorithmus ist eine Approximation des Jaccard Index, mit dem die Größe der Schnittmenge zweier Mengen quantifiziert werden kann. D.h. für zwei Dokumente wird geprüft, wie viel sie gemeinsam haben. Das Hashing hilft dabei, die Komplexität zu reduzieren, denn jedes Dokument muss mit jedem verglichen werden (d.h. 120000*120000 Vergleiche). Im Weiteren ermöglicht das Hashing die Invarianz bzgl. Dokumentenlänge. Ergebnis ist ein Wert zwischen Null und Eins, je größer der Wert, desto mehr haben zwei Dokumente gemeinsam. Bei 1.0 sind die Dokumente inhaltlich identisch. Über einen Schwellenwert ist die Toleranz bzgl. des Unterschieds konfigurierbar.
Die Implementierung und ein entsprechender Service ist im GitHub zu finden unter:
https://github.com/yovisto/wlo-duplicate-detection
Nötige Arbeiten
Dublettenerkennung / Provenienz
Offene Fragestellungen:
- Wie hängen die OER-Materialien zusammen?
- Sind es Dubletten oder Remixe?