Praxis der Software Entwicklung: Design und Implementierung einer Webapplikation zur Trendanalyse von Zeitreihen
- Typ: Vorlesung
- Semester: WS 16/17
-
Zeit:
Auftaktveranstaltung:
Do, 27.10. 15:45 UhrErstes Gruppentreffen:
Di, 08.11. 13:00 UhrWöchentliche Gruppentreffen:
dienstags 13:00 – 14:30 Uhr (45 Minuten pro Gruppe) - Dozent:
Design und Implementierung einer Webapplikation zur Trendanalyse von Zeitreihen
Datensatz
In diesem Praktikum arbeiten wir mit den Daten aus dem Google Books Ngram-Viewer (https://books.google.com/ngrams). Dieser Datensatz enthält die Häufigkeit aller Wörter und Wortsequenzen (Ngrams) für alle von Google eingescannten Bücher (über acht Millionen Stück). Die Worthäufigkeiten werden für jedes Jahr einzeln angegeben, abhängig vom Erscheinungsjahr des jeweiligen Buchs.
Motivation
Google stellt mit dem Google Books Ngram-Viewer (https://books.google.com/ngrams) ein Benutzer Front-End bereit, um die Verläufe von Ngram Häufigkeiten darzustellen. Es handelt sich hier jedoch nur um einen Viewer und kein Analyse-Werkzeug – auch wenn es in einigen Veröffentlichungen als ein solches dargestellt wird. Zudem sind die Einstellungs- und Filtermöglichkeiten des Viewers sehr eingeschränkt. Es kann lediglich nach bekannten Ngrams gesucht werden, da diese explizit angegeben werden müssen. Die einzige Filtermöglichkeit, die der Viewer bietet, ist das anzuzeigende Zeitfenster.
Vorbereitungen
Um Analysen der Ngram-Zeitreihen zu ermöglichen, haben wir den Google Books Ngram-Datensatz bereits heruntergeladen und für das Praktikum vorbereitet. Die Daten werden von dem MapReduce-Framework Apache Flink (https://flink.apache.org) als Back-End bereitgestellt. Zudem haben wir eine API entwickelt um einfach Ngrams und Zeitreihen abzufragen und von aufwändigen Zeitreihenanalysen zu abstrahieren.
Aufgabenstellung
Im Praktikum werden Sie eine Applikation entwickeln mit der Nutzer anhand von Zeitreiheneigenschaften wie Steigung und Trend den Ngram-Datensatz durchsuchen können. Dabei werden Sie unser Back-End nutzen um auf den Datenbestand zuzugreifen und komplexere Analysen durchzuführen. Einfachere Berechnungen sowie Skalierungen werden in Ihrer Applikation vorgenommen. Des Weiteren sollen die Ergebnisse in einer geeigneten und ansprechenden Form dem Benutzer zur Verfügung gestellt werden. Um Plattformunabhängigkeit zu erreichen, soll dies als Web-Applikation geschehen.
Das zu entwickelnde Front-End soll dem Benutzer u.a. ermöglichen, folgende Analysemethoden des Back-Ends in frei wählbaren Zeitfenstern zu berechnen und anschließend darzustellen:
- Ausgabe einzelner Zeitreihe(n)
- lineare Approximation der Zeitreihe
- Aufsummierung der absoluten Jahresdeltas
Anhand dieser Werte soll im gesamten Datenbestand nach Zeitreihen mit bestimmten Eigenschaften gesucht werden (wird von der API bereitgestellt). Ein Beispiel ist die Suche nach Ngrams, deren Zeitreihe zwischen 1914 und 1955 eine stärkere Steigung aufweisen als die Zeitreihe zu Einstein. Zusätzlich soll der Benutzer weitere Einschränkungen in Form von Filtern definieren können. Beispielsweise sollen nur Zeitreihen betrachtet werden, die eine minimale Häufigkeit überschreiten.
Optionale Aufgabe
Zusätzlich zu den oben beschriebenen Mindestanforderungen können Sie selbst kreativ werden. Wir bieten Ihnen die Freiheit Erweiterungen der Anfragesprache zu definieren und realisieren, sodass weitere interessante Ergebnisse auf diesem Datensatz erzeugt werden können.
Anwendung
Dieses Projekt hat nicht nur einen akademischen Zweck (diese Lehrveranstaltung), sondern soll darüber hinaus bei gutem Projektverlauf und -ausgang KIT-Mitarbeiter und Studierenden aus der Philosophie zur Verfügung gestellt werden, die damit dann Hypothesen mit Philosophie-Hintergrund verifizieren werden.