parlerStadtparlament

Open Data Hack Challenge No. 5: Welche Themen beschäftigen das Stadtparlament St.Gallen wie stark?

⛶  Open fullscreen

Open Data Hackathon Challenge parlerment

Open Data Hack St.Gallen 2023

README Verzeichnis

Ausgangslage

Auf der Open-Data-Plattform der Stadt St.Gallen liegt ein Datensatz mit den Geschäften aus dem St.Galler Stadtparlament. Darin aufgeführt sind etwa der Titel des einzelnen Vorstosses, welche Poltiker:in ihn eingereicht hat, und welche Partei dadurch dahinterstand.

Über den Datensatz sind zu jedem Geschäft die dazugehörigen Dokumente downloadbar. Bei Vorstössen etwa der jeweilige Vorstoss und die Antwort des Stadtrates darauf. Die Dokumente liegen als PDFs in einem Zip-Ordner vor.

An einem früheren Hackathon haben Studierende der Fachhochschule OST einen Code geschrieben, der den Volltext jedes Dokuments ausliest und dem jeweiligen Geschäft hinzufügt. Es wurde ausserdem versucht, jedem Geschäft ein Thema zuzuordnen, was aber nicht verlässlich gelang.

Um das volle Potenzial des Datensatzes ausreizen zu können, ist das jedoch nötig. Gerade vor Wahlen könnte der Datensatz so Einsichten liefern, für welche Themen sich welche Parteien wie stark einsetzen.

Aus diese Grund wurde diese Aufgabe als Challenge am Open Data Hack St.Gallen eingereicht.

Datenquellen

Datensatz Parlamentsgeschäfte

  • Ein Datensatz auf der Open-Data-Plattform der Stadt St.Gallen: "Traktandierte Geschäfte in Sitzungen des Stadtparlaments St.Gallen (RIS – Ratsinformationssystem)". Der Datensatz enthält auch Links zu den Sitzungsprotokollen des Stadtparlaments.

  • Eine Kaggle-Competition (kaggle.com/competitions/male-stgallen-recommender) mit einer detaillierten Problembeschreibung.

  • Code von Studierenden (bei Beat Tödtli beziehbar). Der Code ermittelt eine Vorhersage des Themas aufgrund der Titel der Geschäfte und den Kategorien aus dem Aktenplan. Das Machine Learning Modell muss jedoch weiterentwickelt werden, um die Verlässlichkeit bedeutend zu erhöhen.

Ziel

Für jedes einzelne Geschäft sollen dem Datensatz dessen wichtigsten Themen hinzugefügt werden. So sollen Auswertungen möglich werden wie zum Beispiel:

  • Wie oft hat sich das Stadtparlament mit dem Thema X beschäftigt?
  • Welche Themen waren im Jahr Y, im Zeitraum Z besonders wichtig?
  • Wie hat sich die Themenkonjunktur über die Jahre/Jahrzehnte entwickelt?
  • Welche Parteien/Fraktionen widmeten sich welchen Themen? Und wie hat sich das verändert?
  • Interessiert sich die SP vor allem für schulische Themen und die FDP vor allem für Finanzthemen?
  • Worüber wird im Stadtparlament kaum je diskutiert?
  • Sind klimapolitische Themen seit Fukushima stärker auf der Agenda als davor?

Der Code, um solche Auswertungen möglich zu machen, soll in einer Form vorliegen, dass er weiterentwickelt werden kann. Marlen Hämmerli, Datenjournalistin beim "St.Galler Tagblatt" und Challengeownerin möchte mit dem Code weiterarbeiten und ihn auch weiter entwickeln.

In einem zweiten Schritt stand es dem Team offen, ein Tool/Dashboard zu bauen. Dadurch sollte es der breiten Öffentlichkeit - und damit der Wählerschaft - möglich werden, eigene Analysen vorzunehmen.

Vorgehen

  1. Llama wurden Themen vorgegeben und die KI angewiesen, jedem Geschäft das passende zuzuordnen. So wurde der Datensatz mit Hilfe bekannter Tools (pandas) erweitert.
  2. Die Volltexte wurden nach Quartiernamen durchsucht, um so festzustellen, welche Geschäfte welchem Quartier zugeordnet werden können. (Oder nicht.) Auf diese Art wurde der Datensatz erweitert.
  3. Mit ChatGPT-4 wurden ebenfalls Themen abgefragt, aber auch Prompts mitgegeben wie z.B. "Wie links oder rechts ist Vorstoss X?"
  4. ChatGPT wurde mit den Datensätzen trainiert mit dem Ziel, die KI in einem Dashboard einzubetten.
  5. Mit Power BI wurden Visualisierungen erstellt.
  6. Ein Dashboard wurde erstellt, in das die genannten Ergebnisse einflossen.

Limitationen

Bei der Auswertung wurde nur auf die Vorstösse konzentriert. Jedem Vorstoss sind jedoch zwei Dokumente beigelegt. Neben jenem vom Parlament, auch jenes vom Stadtrat. Diese konnten nicht aus dem Datensatz gefiltert werden, flossen also in die Auswertung ein.

Prozess Architektur

Prozess Architektur Diagram

Mögliche Weiterentwicklungen

Die Integration von ChatGPT.

Team

This content is a preview from an external site.
 

Github Repo

Video Alternativer Link auf [Google Drive](https://drive.google.com/drive/folders/1RKf1eUuCuI7YBX5QFhoou2vY0h7xMyzC?usp=drive_link](Google Drive))

Edited content version 40

13.12.2023 14:10 ~ gaston_wey

Edited content version 39

13.12.2023 14:09 ~ gaston_wey

Edited content version 38

13.12.2023 14:08 ~ gaston_wey

Verify

03.12.2023 14:53

Awesome sauce

Most Creative award, 1st place award

03.12.2023 14:53 ~ loleg

Event finished

03.12.2023 10:00

Repository updated

03.12.2023 08:44 ~ gaston_wey

Edited content version 34

03.12.2023 08:44 ~ gaston_wey

Edited content version 32

03.12.2023 08:35 ~ nicola_wullschleger

Update readme.md (@Simon Stratemeier)

Verify

03.12.2023 08:04

Edited content version 31

03.12.2023 08:04 ~ simon_stratemeier

Edited content version 30

03.12.2023 08:01 ~ simon_stratemeier

Edited content version 29

03.12.2023 08:00 ~ simon_stratemeier

Update url to live page (@Simon Stratemeier)

Verify

03.12.2023 07:57

Edited content version 28

03.12.2023 07:57 ~ simon_stratemeier

Edited content version 27

03.12.2023 07:57 ~ simon_stratemeier

Edited content version 26

03.12.2023 07:56 ~ simon_stratemeier

Edited content version 25

03.12.2023 07:56 ~ simon_stratemeier

Edited content version 24

03.12.2023 07:54 ~ simon_stratemeier

Edited content version 23

03.12.2023 07:54 ~ simon_stratemeier

Edited content version 22

03.12.2023 07:54 ~ simon_stratemeier

Update link (@Simon Stratemeier)

Update texts (@Simon Stratemeier)

Add margin to header (@Simon Stratemeier)

Add navigation icons (@Simon Stratemeier)

Fix typo (@Simon Stratemeier)

Add Chatbot Button (@Simon Stratemeier)

Fix syntax error (@Simon Stratemeier)

Merge branch 'main' of github.com:sstratemeier/stadtparlaments-dashboard (@Simon Stratemeier)

Add reworks for partei, thema and other (@Simon Stratemeier)

logo (@Till-JS)

Merge pull request #3 from osaeedi/main

Add files (@sstratemeier)

Merge branch 'sstratemeier:main' into main (@osaeedi)

Add files (@osaeedi)

Add process architectur image (@tobit01)

Verify

03.12.2023 03:13

Image caption

03.12.2023 03:13 ~ orhansaeedi

Get

03.12.2023 03:13

Image caption

03.12.2023 03:13 ~ orhansaeedi

Image caption

03.12.2023 03:12 ~ orhansaeedi

Image caption

03.12.2023 03:12 ~ orhansaeedi

Find

03.12.2023 03:12

Image caption

03.12.2023 03:12 ~ orhansaeedi

Remove duplicate README (@Simon Stratemeier)

update README (@Beat Tödtli)

Merge branch 'main' of github.com:sstratemeier/parlerStadtparlament (@Beat Tödtli)

Add mail address (@tobit0101)

Merge branch 'main' of github.com:sstratemeier/parlerStadtparlament (@Beat Tödtli)

remove docx document (@Simon Stratemeier)

Merge branch 'main' of github.com:sstratemeier/stadtparlaments-dashboard (@Simon Stratemeier)

Add another README :) (@Simon Stratemeier)

Refactor readme link table (@tobit01)

Merge branch 'main' of github.com:sstratemeier/parlerStadtparlament (@Beat Tödtli)

Add readme link table (@tobit01)

Readme-Datei für den Datenanalyse-Teil der Challenge (@Beat Tödtli)

Merge remote-tracking branch 'origin/main' (@tobit01)

Add completion module (@tobit01)

Verbesserungen der Main-Readme.md-Datei (@Beat Tödtli)

Update der Haupt-README.md-Datei (@Beat Tödtli)

Add HedvigLettersServif font (@Simon Stratemeier)

Merge pull request #2 from toedtli/main

Datenacquise und Preprocessing-Pipeline für die Stadtparlamentesdokumente (@sstratemeier)

Beiträge der Machine Learning-Klassen von Beat Tödtli (und Beat Tödtli, beat.toedtli@ost.ch) an der OST zur Vorverarbeitung der Daten der traktandierten Geschäfte des Stadtparlaments St.Gallen. Gezogen vom Repository opendatasg auf beat.toedtli@gitlab.ost. (@Beat Tödtli)

Move webapp into dedicated folder (@Simon Stratemeier)

Merge branch 'main' of github.com:sstratemeier/stadtparlaments-dashboard (@Simon Stratemeier)

Load tradants from multiple json files (@Simon Stratemeier)

Merge pull request #1 from toedtli/main

Beiträge der Analyse-Gruppe (@sstratemeier)

Beiträge der Analyse-Gruppe (@Beat Tödtli)

Add files via upload (@RaquelKehl)

changes (@Till-JS)

Add navigation button (@Simon Stratemeier)

Find

02.12.2023 21:49

Joined the team

02.12.2023 21:49 ~ tobias_mller

dashboard (@Till-JS)

Find

02.12.2023 20:50

Repository updated

02.12.2023 20:50 ~ marlen_hämmerli

Edited content version 13

02.12.2023 20:50 ~ marlen_hämmerli

Edited content version 12

02.12.2023 20:49 ~ marlen_hämmerli

Image caption

  1. Besprechung, 19.15 am 2. Dezember
02.12.2023 19:29 ~ marlen_hämmerli

Add article body (@Simon Stratemeier)

Add static sidemenu (@Simon Stratemeier)

syn (@Till-JS)

check (@Till-JS)

new nav (@Till-JS)

Change Menu Headers (@Simon Stratemeier)

Add initial chart.js demo (@Simon Stratemeier)

Update readme (@Simon Stratemeier)

Add initial tailwind (@Simon Stratemeier)

Find

02.12.2023 12:14

Image caption

Besprechung 2. Dezember 11.30 Uhr (Seite 3)

02.12.2023 12:14 ~ marlen_hämmerli

Image caption Besprechung 2. Dezember 11.30 Uhr (Seite 2)

02.12.2023 12:13 ~ marlen_hämmerli

Image caption

Besprechung 2. Dezember 11.30 Uhr (Seite 1)

02.12.2023 12:13 ~ marlen_hämmerli

Image caption

  1. Dezember: Brainstorming Marlen - mögliche Datensätze zur Erweiterung des bisherigen & mögliche Fragen
02.12.2023 12:11 ~ marlen_hämmerli

Edited content version 4

02.12.2023 12:08 ~ raquel_kehl

Joined the team

02.12.2023 12:08 ~ raquel_kehl

Fix typo in workflow file (@Simon Stratemeier)

Add deploy.sh script (@Simon Stratemeier)

Merge branch 'main' of github.com:sstratemeier/stadtparlaments-dashboard (@Simon Stratemeier)

Make a example change (@Simon Stratemeier)

Init inital working svelte app (@Simon Stratemeier)

Add or update the App Service deployment workflow configuration from Azure Portal. (@sstratemeier)

initial firebase integration (@Simon Stratemeier)

Find

01.12.2023 21:42

Edited content version 1

01.12.2023 21:42 ~ simon_stratemeier

Update README.md (@sstratemeier)

Find

01.12.2023 21:37

Joined the team

01.12.2023 21:37 ~ simon_stratemeier

Initial commit (@sstratemeier)

Find

01.12.2023 21:11

Joined the team

01.12.2023 21:11 ~ orhansaeedi

Challenge posted

01.12.2023 21:07 ~ beat_tdtli

Event started

01.12.2023 16:00
 
Contributed 3 months ago by beat_tdtli for Open Data Hack St.Gallen
All attendees, sponsors, partners, volunteers and staff at our hackathon are required to agree with the Hack Code of Conduct. Organisers will enforce this code throughout the event. We expect cooperation from all participants to ensure a safe environment for everybody.

Creative Commons LicenceThe contents of this website, unless otherwise stated, are licensed under a Creative Commons Attribution 4.0 International License.

Open Data Hack St.Gallen