Touristen Typologie

Touristen Typologie berechnet und visualisiert ein dynamisches User Clustering von Touristen anhand von Bildbewertungen.

Motivation

Im Auftrag von Prof. Dr. Roman Egger wurde ich als Full Stack Developer engagiert, um sein Konzept des dynamsichen User Clusterings von Touristen anhand von Bildbewertungen als Web-Applikation umzusetzen.

Touristen sind multioptionale Kunden, die hybride Reisemuster zeigen. Für das Marketing stellt dies eine enorme Herausforderung dar, da Kundensegmentierungen schwierig werden. Welcher Typologie sollte jemand zugeordnet werden, der einmal Strandurlaub mit seinen Kindern macht, das nächste Mal einen Actionurlaub mit Freunden unternimmt? Jemand, der sich im 5-Sterne Hotel verwöhnen lässt, das nächste Mal einen Campingurlaub verbringt? Mit diesem Projekt soll die Multioptionalität von Reisenden abgefragt und Touristen in Cluster kategorisiert werden, indem sie Bilder bewerten.

Nutzerbewertung der Bilder
Nutzerbewertung der Bilder

Basierend auf anerkannten Typologien der Literatur wurden jeweils 6 Bilder zu 16 Typologien ausgewählt und auf 3 repräsentative Bilder durch Nutzervoting reduziert. Die 48 Bilder wurde von 622 Personen annotiert. Die Vektoren der Bilder (doc2vec) dienen als Grundlage für den Nutzervektor. Alle Nutzer werden mittels Louvain Algorithmus geclustert und mittels der Algorithmen t-SNE und UMAP visualisiert.

Visualisierung der User Cluster
Visualisierung der User Cluster

Eckdaten des Projekts

  • Start: 16.07.2020
  • Übergabe: 07.08.2020
  • Status: production

Technische Beschreibung

In meiner Verantwortung standen Anforderungserhebung, technische Konzeption, Entwicklung und Deployment. Bilder, initiale Daten der Entitäten in CSV und Skripte in Python zur mathematischen Berechnung der Typologie wurden zur Verfügung gestellt.

Verwendete Technologien

  • Backend
    • Python: Backend und Skripte zur Dateninitialisierung aus CSV
    • Flask: Web-Framework zur Bereitstellung einer REST API
    • Flask-Migrate: Database Migrations mit alembic und SQLAlchemy
    • SQLAlchemy: Object-Relational Mapper
    • Docker: Development (VSCode devcontainer) und Production
    • gunicorn / nginx: WSGI bzw. Reverse Proxy
  • Frontend
    • HTML: Markup
    • CSS / SCSS: Styling
    • JavaScript: Interaktion
    • Chart.js: Datenvisualisierung
  • Google Cloud Platform: Cloud-Infrastruktur
    • Compute Engine: Hosting der Flask Applikation
    • Cloud SQL: Serverless Database (PostgreSQL)

Architektur

Datenmodell

Touristen Typologie Datenmodell
Touristen Typologie Datenmodell