1. Datenquellen
- Basis ist die öffentlich zugängliche Ratsinformations-Plattform der Stadt München.
- Dokumente werden per Crawler geladen und in
data.csvabgelegt (Spalten u. a.: Drucksachen-Nr., Titel, Typ, Gestellt am, Erledigt am, Gestellt von, Zuständiges Referat, document_content). - Personen- und Fraktionsnamen stammen ausschließlich aus den veröffentlichten Dokumenten.
2. Vorverarbeitung
- Alle Texte werden als String gespeichert, Datumsspalten in Datumsformate konvertiert (ungültige Daten werden verworfen).
- Keine automatische Korrektur oder Normalisierung des Inhalts; eventuelle OCR-/Formatierungsartefakte bleiben bestehen.
- Optional können Filter nach Antragstyp (
typ_filter) angewandt werden (OR-Logik über ausgewählte Typen).
3. Such- und Zählregeln
- Suche erfolgt regex-basiert, case-insensitive, pro Suchwort.
- Schwelle:
MIN_OCCURRENCES_PER_DOC = 1. Ein Dokument zählt als Treffer, sobald das Suchwort mindestens einmal vorkommt. - Binär pro Dokument: Ein Dokument trägt maximal 1 zum Zähler bei, auch wenn das Wort mehrfach vorkommt.
- Theme-Expansion (aktiv): Suchbegriffe werden über
THEME_MAPum thematisch verwandte Phrasen erweitert (z. B. "Wohnen" → Wohnung, Miete, Zimmer ...). Dadurch steigen Trefferzahlen, weil Synonyme mitgezählt werden. Abschaltbar viaexpand_with_themes=False. - Mehrere Suchwörter: Trefferlisten werden vereinigt (Union).
total_word_countzählt jedes Dokument höchstens einmal über alle Suchbegriffe. - Lemmatisierung: Für Theme-Expansion wird spaCy auf Lemmebene eingesetzt; die eigentliche Zählung bleibt regex-basiert.
4. Theme-Expansion und semantische Suche
Wie ein Suchbegriff zu mehreren Suchbegriffen wird:
Um die Suchergebnisse zu verbessern, gibt es die Möglichkeit, mit einem Suchbegriff automatisch verwandte Begriffe zu finden. Dieses System heißt Theme-Expansion und funktioniert folgendermaßen:
- Der Nutzer klickt einen Theme-Button (z. B. „Wohnen") auf der Startseite oder gibt einen Suchbegriff ein.
- Das System prüft, ob dieser Begriff einem Theme in der THEME_MAP entspricht oder einer der zugeordneten Phrasen.
- Falls ja: Alle Phrasen dieses Themes werden zur Suche hinzugefügt. Z. B. werden bei „Wohnen" automatisch auch „Wohnung", „Miete", „Mietspiegel", etc. gesucht.
- Die Regex-basierte Suche wird dann für jeden dieser expandierten Begriffe durchgeführt.
- Die Ergebnisse werden zusammengefasst (Union), sodass jedes Dokument maximal einmal gezählt wird.
Technischer Hintergrund: Die Theme-Expansion ist lexikon-basiert (rule-based) und nutzt spaCy auf Lemma-Ebene für die Erkennung von Themenbegriffen in Texten. Die eigentliche Zählung bleibt regex-basiert für optimale Performance. Die Theme-Expansion ist standardmäßig aktiviert, kann aber über expand_with_themes=False deaktiviert werden.
Verfügbare Themes und ihre Suchbegriffe
Hier ist eine Übersicht aller Themes und ihrer zugeordneten Suchbegriffe:
🏠 Wohnen
Wohnung, Miete, Mietspiegel, Wohnraum, Zimmer, Vermietung, Untermiete
🚌 Mobilitaet
ÖPNV, Bus, Tram, Straßenbahn, U-Bahn, S-Bahn, Fahrrad, Radweg, Parkplatz
📚 Bildung
Schule, Kita, Kindergarten, Universität, Hochschule, Ausbildung
🌍 Umwelt
Klimaschutz, CO2, Emissionen, Nachhaltigkeit, Energiewende, Solaranlagen, Grünflächen, Parks, Bäume, Begrünung, Abfallwirtschaft, Recycling
🤝 Soziales
Sozialhilfe, Grundsicherung, Armut, Obdachlosigkeit, Migration, Integration, Flüchtlinge, Chancengleichheit, Familien
🎭 Kultur
Theater, Museen, Kunstförderung, Kulturzentren, Bibliotheken, Kulturelle Vielfalt, Denkmalschutz, Architektur
⚕️ Gesundheit
Krankenhäuser, Ärzte, Gesundheitsversorgung, Psychiatrie, Pflege, Altenbetreuung, Behindertenbetreuung, Pandemie
💼 Wirtschaft
Arbeitsmarkt, Arbeitsplätze, Unternehmensförderung, Gewerbebetriebe, Handwerk, Startups, Fachkräftemangel
🚔 Sicherheit
Polizei, Feuerwehr, Kriminalität, Ordnung, Sauberkeit, Verkehrssicherheit, Prävention
⚽ Sport
Sportanlagen, Freizeiteinrichtungen, Schwimmbäder, Spielplätze, Sportförderung, Jugendangebote
💻 Digitalisierung
Breitband, Glasfaser, 5G, Smart City, Digitalisierung, IT-Infrastruktur, Online-Dienste
🔌 Versorgung
Wasser, Energieversorgung, Tierschutz, Kinderrechte, Verbraucherschutz
5. Auswertungen
- Trend: Gruppierung nach Monat (YYYY-MM) und Summe der binären
count-Spalte; optionale Typ-Breakdowns. - Fraktionen/Einreicher: Feld
Gestellt vonwird an Kommata gesplittet, pro Name summiert; optional Typ-Breakdowns. - Anteil pro Fraktion: Verhältnis (Treffer / alle Dokumente je Fraktion), Null-Divisionen werden entfernt.
- KPI Verarbeitung: Durchschnittliche Bearbeitungszeit (Erledigt am − Gestellt am) nur für erledigte Vorgänge; offene/geschlossene Zähler basieren auf Vorhandensein des Erledigt-Datums; Referats-Breakdown über erledigte Vorgänge.
6. Visualisierung
- Frontend nutzt D3.js; Daten werden über JSON-Endpunkte aus Flask geladen.
- Keine clientseitige Nachfilterung außer Darstellung (Tooltips, Sortierungen auf Basis der gelieferten Aggregationen).
7. Grenzen & Bias
- Regex- und Theme-Expansion können Über- oder Unterzählungen verursachen (z. B. Teilwörter, fehlende Synonyme).
- Binäre Zählung ignoriert Mehrfachnennungen innerhalb eines Dokuments.
- Qualität der Ergebnisse hängt von Datenvollständigkeit und Richtigkeit der Quelle ab.
- Kein automatisches Entfernen von Stoppwörtern in der Zählung; Theme-Expansion ist kuratiert und kann unvollständig sein.