Praxis der Software Entwicklung: Design und Implementierung einer Webapplikation zur Trendanalyse von Zeitreihen

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.