Natural Language Processing Case Study

Semantische Suche für die öffentliche Verwaltung

Tipp: Wechseln Sie zwischen allgemeinen Informationen und einer eher technischen Sicht auf dieses Projekt

Intro

Die Digitalisierung der öffentlichen Verwaltung nimmt in Europa zunehmend Fahrt auf. Eine einfache und intuitive Benutzung ist dabei bei der Einführung einer digitalen Dienstleistung essentiell, damit sie breite und demokratische Verwendung findet.

Öffentliche Behörden verwenden jedoch oft ihre eigene Fachsprache, die für die meisten Bürgerinnen und Bürger bei weitem nicht intuitiv ist. Bei digitalen Anwendungen ist zudem die Rücksprache mit der zuständigen Behörde deutlich aufwändiger als bei einem Behördenbesuch vor Ort. Daher entsteht hier schnell eine Sprachbarriere. Dies kann zu Frustration auf Seiten der Bürgerinnen und Bürger und im schlimmsten Fall zu einer mangelnden Akzeptanz des digitalen Dienstes führen.

Um dieses Problem zu beheben, hat dida einen KI-basierten Algorithmus zur Extraktion relevanter Informationen aus Behördendokumenten entwickelt.

Die Digitalisierung der öffentlichen Verwaltung nimmt in Europa zunehmend Fahrt auf. Eine einfache und intuitive Benutzung ist dabei bei der Einführung einer digitalen Dienstleistung essentiell, damit sie breite und demokratische Verwendung findet.

Öffentliche Behörden verwenden jedoch oft ihre eigene Fachsprache, die für die meisten Bürgerinnen und Bürger bei weitem nicht intuitiv ist. Bei digitalen Anwendungen ist zudem die Rücksprache mit der zuständigen Behörde deutlich aufwändiger als bei einem Behördenbesuch vor Ort. Daher entsteht hier schnell eine Sprachbarriere. Dies kann zu Frustration auf Seiten der Bürgerinnen und Bürger und im schlimmsten Fall zu einer mangelnden Akzeptanz des digitalen Dienstes führen.

Um dieses Problem zu beheben, hat dida einen KI-basierten Algorithmus zur Extraktion relevanter Informationen aus Behördendokumenten entwickelt.

Ausgangspunkt

Bürger, die in Deutschland ein neues Gewerbe anmelden, müssen bei der Anmeldung einen Branchencode angeben. Dieser Branchencode wird aus einer Liste von über 800 verschiedenen Codes ausgewählt, die jeweils in der komplizierten "Sprache der öffentlichen Verwaltung" beschrieben und definiert sind. Aus all diesen Möglichkeiten den richtigen Code zu finden ist eine schwierige Aufgabe, insbesondere wenn man mit der verwendeten Fachsprache nicht vertraut ist.

Der Kunde verfügte über eine bereits vorhandene Chatbot-Lösung, die zur Bedienung verwendet werden konnte, so dass die Bürgerinnen und Bürger ihre Gewerbebeschreibungen in Umgangssprache eingeben konnten und die fünf relevantesten Branchencodes als Antwort vom Chatbot erhielten.

Die Chatbot-Lösung ermöglicht die Weiterleitung verschiedener Benutzerfragen an entsprechende API-Endpunkte, was bedeutet, dass wir die von Benutzern geschriebenen umgangssprachlichen Gewerbebeschreibungen als API-Aufrufe erhalten haben. Unser Algorithmus sollte eine Antwort auf diese API-Aufrufe erstellen, die die 5 relevantesten Branchencodes enthält.

Herausforderungen

Die Eingabe für den hier entwickelten Algorithmus sollte die Beschreibung des Gewerbes sein, das angemeldet werden soll.

Da Behörden oft Wörter und Wendungen verwenden, die sich stark von der Umgangssprache unterscheiden, ist es eine nicht triviale Aufgabe, den richtigen Branchencode für eine bestimmte Gewerbeanmeldung zu finden.
Daher reichten einfache Algorithmen für die Textsuche nicht aus, um den richtigen Branchencode zu finden.

Es gab eine bereits existierende Lösung mit einfachen Worteinbettungen, die oft unbefriedigende Ergebnisse zeigte. Dies deutete darauf hin, dass ein besseres semantisches Verständnis der Definitionen und Beschreibungen der verschiedenen Branchencodes sowie der umgangssprachlichen Gewerbebeschreibungen erforderlich war.

Lösung

Wir haben eine KI-Architektur, die besonders auf die Verarbeitung natürlicher Sprache angepasst ist, auf die spezifische Aufgabe trainiert. Für eine gegebene umgangssprachliche Gewerbebeschreibung werden die relevanten Branchencodes ausgegeben.
Die Trainingsdaten für die KI waren historische umgangssprachliche Gewerbebeschreibungen und dazugehörige Branchencodes. Diese Daten wurden vom Kunden zur Verfügung gestellt.

Verwendete Technologien: Python, spaCy, PyTorch, fastAPI, Docker, Elasticsearch

Die Grundlage für unseren Algorithmus ist eine Version von BERT, einer von Google entwickelten neuronalen Netzarchitektur, die bereits auf einem großen deutschen Textkorpus vortrainiert wurde. Wir haben die vorhandenen Schichten nachtrainiert und die Ausgabe von BERT mit aufgabenspezifischen Features angereichert. Durch Hinzufügen einiger neuer Schichten und Nachbearbeitungsschritte waren wir in der Lage, einen Textklassifikator zu erstellen, der die vollen semantischen Fähigkeiten von BERT nutzt und gleichzeitig performant genug ist, um auf einer CPU zu laufen.
Dieser Klassifikator wurde dann anhand historischer Gewerbebeschreibung - Branchencode-Paare trainiert. Für eine gegebene Gewerbebeschreibung gibt er für jeden Branchencode einen Relevanzscore aus. Die 5 Branchencodes mit dem höchsten Score werden dann nach ihrer Relevanz sortiert und als Antwort auf die ursprüngliche Benutzeranfrage zurückgeschickt.

Product

Das Endprodukt wurde als Funktionalität eines Chatbots implementiert, über den der Kunde bereits verfügte. Neue Branchencodes, für die der Algorithmus noch nicht trainiert wurde, können mit sehr geringem Aufwand integriert werden. Unten sehen Sie drei Beispielausgaben des Algorithmus für verschiedene Gewerbebeschreibungen.

Das Endprodukt wurde als Funktionalität eines Chatbots implementiert, über den der Kunde bereits verfügte. Neue Branchencodes, für die der Algorithmus noch nicht trainiert wurde, können mit sehr geringem Aufwand integriert werden. Unten sehen Sie drei Beispielausgaben des Algorithmus für verschiedene Gewerbebeschreibungen.