Data Processing - lichtsprung/topicvizz GitHub Wiki
Spezifikation
Anforderungen
Spezifikation der Anforderungen für das Backend und die reine Aufbereitung der Informationen (später mit Bezug auf die Einleitung/Aufgabenstellung):
- Alle Meta-Informationen des Dokumentes sollen extrahiert werden und dem Dokument zugeordnet werden, um später einen zeitlichen Vergleich darstellbar zu machen.
- Alle themenbezogenen Informationen aus den Dokumenten sollen extrahiert werden. Im Gegenzug sollen alle Informationen welche nicht im Bezug zu dem Thema des Dokumentes stehen rausgefiltert werden.
- Alle Daten, welche den Author betreffen, sollen seperat aufbereitet werden, um sie dann den Dokumenten zuzuordnen.
- Die extrahierten Informationen sollen in sogenannte Topics aufgespaltet werden und aufgrund dem mangelnden Informationsgehalt mit zusätzlichen Daten angereichert werden. Jedes angereicherte Topic soll dabei eindeutig den Dokumenten zugeordnet werden, wo es erwähnt wird.
- Der Bezug zu den einzelnen Topics untereinander soll bestimmt werden und dabei die Ähnlichkeit der vorliegenden Daten, um eine statistische Darstellung zu gewährleisten.
- Zur Vereinfachung der Informationsflut und zur gezielteren Darstellung der Beziehungen zwischen den Daten, soll ein Clustering erfolgen.
- Alle gewonnenen Daten und deren Beziehungen untereinander sollen in einem allgemeingültigen Datenformat gesichert werden, um eine einfache und konsistente Übergabe an das Frontend zu gewährleisten.
Produkteinschränkung (falls nötig?) Die Implementierung soll über Scala/Java erfolgen mit Hilfe von Spotlight und DBPedia. Das gewählte Datenformat für die Übergabe an das Frontend ist JSON.
Ablaufsbeschreibung
[Grafischer Ablauf der einzelnen Schritte]
[Architekturbildchen]
1. Extraktion der Informationen aus Dokumenten
- Einfache Erweiterbarkeit für unterstützte Datenformate (Pluginprinzip)
- Resultat als Plaintext
- Zusätzliche beiliegende Informationen wie Author, Datum und Typ des Dokumentes werden ebenfalls extrahiert, falls möglich.
2. Aufbereitung der extrahierten Informationen
- Entfernen von Füllwörtern, unrelevanten Begriffen und inkompatiblen Symbolen
3. Aufspaltung der Dokumente in Topics
- Erkennung durch Topics über Spotlight/DBPedia
- Zuordnung der Topics zu den Dokumenten
- Zuordnung der Topics zu den Authoren, falls möglich
- Bewertung der Topics via Tf-idf
4. Anreicherung der Informationen zu den Topics durch externe Quellen
- Beschaffung von Abstracts über DBPedia
5. Ähnlichkeiten zu den einzelnen Topics bestimmen
- Erkennung der verwandten Topics über Spotlight/DBPedia mit Hilfe der vorher zugeordneten Abstracts
6. Clustering
- Anhand der Tf-idf und Verlinkungen zwischen den Topics:
- Bestimmung übergeordneter Topics, um eine hierarische Struktur für das Clustering aufzubauen.
7. Bereitstellung der Informationen
- Konvertieren der ermittelten Daten zu JSON für die Darstellung im Frontend
- Einfache Erweiterbarkeit für weiter unterstützte Datenformate (Pluginprinzip)