ParlDebateScanner - About

About

Diese Seite enthält Angaben zur Funktionsweise und zu den Hintergründen von ParlDebateScanner. Kontaktmöglichkeiten für Fragen, Anregungen, Lob und Kritik findest du unter Kontakt.

Der ParlDebateScanner ist ein privates Projekt, entstanden aus Interesse an der Politik und Begeisterung für Technologie. Auf parlament.ch befinden sich bereits verschiedene Services, welche das Geschehen im Schweizer Parlament verständlich und nachvollziehbar machen. Beispielsweise kann mit Curia Vista die Geschäftsdatenbank im Volltext durchsucht werden. Der ParlDebateScanner ist ein kleines Recherche-Tool und macht auch die Wortprotokolle der Parlamentsdebatten durchsuchbar. Dies aber mit zwei kleinen Twists:

Semantische Suche nach Wortbeiträgen
Der ParlDebateScanner durchsucht die Wortbeiträge nicht nur mittels Wörtervergleich, sondern liefert auch Resultate durch eine semantische Suche. Bei der semantischen Suche wird durch maschinelles Lernen die inhaltliche Bedeutung der Suchanfrage analysiert und mit den Aussagen in den Wortprotokollen verglichen. So sind nicht nur Stichwortsuchen möglich - auch offen formulierte Suchen können eingetippt werden. Da sich die semantische Suche auf die inhaltiche Bedeutung bezieht, werden Zitate in allen Landessprachen gefunden, unabhängig von der Sprache im Suchtext.

Der ParlDebateScanner basiert ausschliesslich auf Open-Source-Software
Sowohl die Webseite als auch die Datenbanken und die Machine-Learning-Modelle für die Analyse der Suchanfragen und Wortbeiträgen basieren auf Open-Source-Software. Das Tool soll damit ein Beispiel liefern, wie auch ohne proprietäre Produkte und den damit verbundenen Abhängigkeiten maschinell gestütze Analysen von Textbeständen möglich sind.

Open Data API der Parlamentsdienste als Datengrundlage
Die Open Data API der Parlamentsdienste enthält diverse Informationen zum Parlamentsbetrieb - unter anderem auch die Wortprotokolle der Sessionen.
Jeder Eintrag in den Wortprotokollen enthält den gesprochenen Text und Informationen zur sprechenden Person, wie zum Beispiel Namen und Fraktionszugehörigkeit. Es existieren Einträge im Zeitraum Dezember 1999 bis heute. Dieser Link zeigt als Beispiel einen solchen Eintrag. Der ParlDebateScanner synchronisiert sich mehrfach pro Tag mit dieser Datenbank und verwendet deren Einträge für die Suche. Es gelten die folgenden Einschränkungen:

Die Angezeigten Suchergebnisse sind eins zu eins aus der Open Data API der Parlamentsdienste übernommen und werden jeweils mit einem Link zur Quelle versehen.

Textsuche mit Hilfe von maschinellem Lernen und Vektordatenbanken
Die semantische Suche auf ParlDebateScanner funktioniert in vier Schritten:

  1. Jeder Wortbeitrag, welcher aus dem Wortprotokoll heruntergeladen wird, wird zuerst in kleinere Teile zerlegt. Ein Teil besteht aus maximal 128 Tokens. Im Bereich der maschinellen Sprachverarbeitung werden Tokens verwendet um kleinere Textbausteine zu repräsentieren. Ein Token entspricht im Schnitt ca. 4 Buchstaben.
  2. In einem zweiten Schritt wird jeder dieser Teile mit Hilfe eines Machine-Learning-Modells in eine mathematische Repräsentation umgewandelt. Diese numerische Repräsentation erfasst die Bedeutung und den Inhalt des Textabschnitts. Eine solche Repräsentation kann als Liste von Zahlen, also als Vektor verstanden werden. Die resultierenden Vektoren werden im Anschluss in einer sogenannten Vektordatenbank gespeichert.
  3. Jede Suchanfrage wird mit denselben Modellen ebenfalls in eine mathematische Repräsentation umgewandelt.
  4. Um relevante Ergebnisse zu liefern, wird der Vektor, welcher die Suchanfrage repräsentiert durch eine mathematische Operation mit allen Vektoren in der Vektordatenbank verglichen. Wenn diese mathematische Operation eine Ähnlichkeit zwischen zwei Vektoren feststellt, bedeutet das, dass auch die Inhalte der Texte, welche sie repräsentieren, ähnlich sind. Die Texte der ähnlichsten Vektoren werden am Ende zurückgespielt.

Berechnung der Treffer-Score
Für jeden Textabschnitt wird bei der Suche eine Treffer-Score berechnet. Die 15 Textabschnitte mit der höchsten Treffer-Score werden sortiert nach absteigender Score und Aktualität zurückgespielt.*
Bei einem Volltext-Treffer wird automatisch eine Treffer-Score von 100% vergeben. Bei der semantischen Suche wird basierend auf den Vektorrepräsentationen des Suchtexts und des Textabschnitts die Kosinus-Ähnlichkeit berechnet. Die Kosinus-Ähnlichkeit ist ein Mass dafür, wie stark zwei Vektoren in die gleiche Richtung zeigen. Da die Vektoren den Inhalt des Texts repräsentieren, bedeutet eine ähnliche Richtung der Vektoren zugleich einen ähnlichen Inhalt der Texte. Die Kosinus-Ähnlichkeit hat in diesem Fall einen Wertebereitch zwischen 0 und 1 und wird der Zugänglichkeit halber als Prozentzahl interpretiert.

* Zur Optimierung der Abfragen wurden die Textabschnitte indexiert (IVFFlat) und nur die vielversprechendsten Textabschnitte werden tatsächlich mit der Suchabfrage verglichen. Eine 100-Prozentige Trefferquote kann darum nicht garantiert werden. Auf Anfrage liefert der Autor dieser Anwendung gerne genauere Angaben zur Implementation der Suche.

Hybride Suche
Der ParlDebateScanner führt für jede Suchanfrage eigentlich zwei Suchen durch. Einmal wird eine Volltextsuche durchgeführt, welche überprüft, ob ein Textabschnitt die eingetippten Suchbegriffe enthält. Diese Suche ist vergleichbar mit der Wortsuche in einem Word-Dokument. In einem zweiten Schritt wird die semantische Suche durchgeführt, welche mit Hilfe von Machine-Learning-Modellen den Inhalt der Suche analysiert und versucht, passende Textabschnitte zu finden.
Die 15 Suchergebnisse, welche gemäss einem Bewertungsalgorithmus am besten zur Suche passen, werden zurückgespielt und im Wortbeitrag fett hervorgehoben. Ob ein Suchergebnis von der Volltextsuche oder der semantischen Suche stammt, wird jeweils im Titel des Suchergebnisses angegeben.
Grundsätzlich führen Suchen mit wenigen Wörtern eher zu Ergebnissen aus der Volltextsuche, während Suchanfragen mit vielen Wörtern eher die semantische Suche begünstigen.

Volltextsuche
Die Volltextsuche sucht nach Textstellen, welche alle ins Suchfeld eingetippten Wörter enthalten. Zur Ausweitung der Suche mit Teilergebnissen können Wörter mit OR zusammengehängt werden. Beispiel: "Haus Baum" sucht alle Textstellen, welche sowohl das Wort Haus als auch das Wort Baum enthalten. "Haus OR Baum" sucht alle Textstellen, welche entweder das Wort Haus und/oder das wort Baum enthalten.

Semantische Suche
Die semantische Suche kommt vermehrt zum Zug, wenn ein langer Suchbegriff eingetippt wird. Wird zum Beispiel nach "Immigration" gesucht, wird der Bewertungsalgorithmus eher Ergebnisse aus der Volltextsuche liefern, da viele Texte den Begriff Immigration enthalten. Wird nach "Ist Immigration gut für die Schweiz?" gesucht, werden vermehrt Ergebnisse der semantischen Suche erscheinen, da sich dieser Text besser auf seinen Inhalt untersuchen lässt.
Bedenke, dass die semantische Suche auf Details im Suchtext reagiert. So sind die Aussagen der Suchbegriffe "Ist Immigration gut für die Schweiz?", "Immigration ist gut für die Schweiz" und "Immigration ist schlecht für die Schweiz" unterschiedlich und liefern dementsprechend unterschiedliche Suchergebnisse.

Neuste Einträge
Bei einer Suche ohne Suchtext werden die aktuellsten Debattenbeiträge für die Auswahl angezeigt. In diesem Fall werden keine Beiträge mit weniger als 25 Zeichen verwendet, da die Schnittstelle des Parlaments bei kürzlich hinzugefügten Beiträgen oft nur Fülltexte wie z.B. 'asdf' zurückgibt.

Der ParlDebateScanner ist ein privates Projekt von Johannes Hool. Der Autor dieses Tools ist dankbar für Fehlermeldungen und Verbesserungsvorschläge, damit das Tool auf dem laufenden Stand gehalten werden kann.

Auch Fragen zum Tool und Ideen für Erweiterungen (Zusammenarbeit, Analysen, usw.) werden gerne beantwortet.

Falls dir das Tool gefällt oder geholfen hat, freut sich der Autor über eine Erwähnung auf einem öffentlichen Kanal.

Kontaktmöglichkeiten

Der ParlDebateScanner speichert keine Nutzerdaten. Lediglich der Zeitpunkt und Text der Suchanfrage wird anonymisiert erfasst und gespeichert, um die Leistungsfähigkeit und Nutzung des Tools zu analysieren. Der Transparenz halber zeigt die folgende Grafik die tägliche Anzahl der Suchabfragen auf ParlDebateScanner.