In diesem Blog beleuchten wir zunächst die technischen Herausforderungen, die wir an KI-Lösungen herantragen, präsentieren anschliessend eine kurze Übersicht der Ergebnisse und vertiefen diese im weiteren Verlauf.
Herausforderung: Datenaufbereitung
Eine grosse Herausforderung für die von uns getesteten KI-Lösungen liegt darin, die von der öffentlichen Verwaltung in unterschiedlichen Formaten bereitgestellten Daten maschinenlesbar zu machen, sodass sie von der KI korrekt interpretiert werden können.
Für unseren Test wählten wir einen Abfallkalender des Verbands KVA Thurgau in der Schweiz, der im PDF-Format vorliegt. Verfügbar ist er unter https://www.kvatg.ch/fuer-private/entsorgungsplaene-1. Die PDF-Dateien enthalten grösstenteils Tabellen in verschiedenen Formaten, erstellt mit Hilfe von Adobe Illustrator. Schauen wir uns die darin für die KI enthaltenen Herausforderungen im Einzelnen an.
Beispiel 1
Neben der Texterkennung besteht hier die Herausforderung in der korrekten Zuordnung der Produkte, die über eine Punktmarkierung erfolgt.
Beispiel 2
Aus diesem Abschnitt ergibt sich das Problem der Kurzschreibweise der Monate und das Vorhandensein leerer Spalten. Auch muss die Tabelle korrekt zu den Abfallarten Papier oder Karton zugeordnet werden. Die Datenstruktur der PDF-Datei lässt hier keine Rückschlüsse zu, die Erkennung ist nur visuell möglich.
Beispiel 3
Die Schwierigkeiten hier: Mehrere Einträge pro Zelle, zusammengefasste Spalten, relative Angaben wie zum Beispiel "jeden Dienstag".
Die Ergebnisse im Überblick
Wir haben verschiedene Ansätze getestet, um eine optimale Lösung für diese Herausforderung zu finden. Zusammengefasst erhielten wir folgendes Ergebnis für die Test-Kandidaten:
- GPT-4: Zwar konnte GPT-4 die PDF-Dateien lesen, allerdings wurden die Zusammenhänge innerhalb der Tabellen nicht erfasst.
- Camelot (Python): Diese Library zeigt zwar Potenzial in der Tabellenextraktion, jedoch waren die Installation und die korrekte Erkennung aufgrund von zahlreichen Optionen für jede PDF-Datei komplex.
- ExtractTable: Unterstützt nur Bilder; liefert bei einfachen Tabellen korrekte Ergebnisse, aber hat Schwierigkeiten mit zusammengefassten Spalten.
- Nanonets: Verarbeitet ganze PDFs und erkennt alle Tabellen korrekt, kann jedoch Mehrfachspalten nicht richtig zuordnen.
- DocSumo: Erlaubt die Analyse kompletter PDFs, doch die Ergebnisse sind oft unbrauchbar und falsch zugeordnet.
Die Tests zeigen, dass die derzeit verfügbaren Lösungen in spezifischen Szenarien brauchbare Ergebnisse liefern können. Allerdings erfordert jede PDF-Datei individuelle Anpassungen und Feintuning, was den Einsatz im größeren Massstab erschwert. Die kontinuierliche Verbesserung und Anpassung der Algorithmen sowie das Experimentieren mit neuen Ansätzen bleiben essentiell, um die Potenziale der KI voll auszuschöpfen und effektive digitale Lösungen für die öffentliche Verwaltung zu realisieren.
Alternativ könnte eine manuelle Datenbereinigung nach der initialen Datenerfassung zum Beispiel mittels Optical Character Recognition (OCR) durch Einbeziehung des Menschen als Korrektiv erfolgen, um die Qualität der Trainingsdaten für den Einsatz in KI-Systemen zu optimieren.
Die Ergebnisse im Detail
Im Folgenden präsentieren wir die teilweise detaillierten Ergebnisse unserer Tests. Bei den SaaS-Tools ExtractTable, Nanonets und DocSumo, die teilweise KI-gestützte Tabellenextraktion ermöglichen, bleibt unklar, ob dahinter KI-Software von Drittanbietern oder eigens trainierte Modelle stehen, da die Anbieter hierzu keine transparenten Angaben machen.
GPT-4
GPT-4 kann die PDF-Dateien lesen, allerdings rein textbasiert - d.h. der Zusammenhang der Daten innerhalb der Tabellen wird nicht oder nicht korrekt erkannt.
Camelot (Python)
Camelot ist eine populäre Python-Library, um tabellarische Daten aus PDF-Dateien zu extrahieren.
Erkenntnisse:
- Die Library wird erst seit kurzer Zeit wieder gepflegt, nachdem mehrere Jahre keine neue Version erschien. Die Installation ist aufgrund zahlreicher Dependencies und Inkompatibilitäten zu neueren Python-Versionen kompliziert.
- Mit den Standard-Einstellungen werden drei Tabellen erkannt. Bei genauerem Hinsehen handelt es sich jedoch um die Daten aus dem ersten und letzten Block im Dokument, beides keine Tabellen. Die einzige korrekt erkannte Tabelle ist "Grünabfuhr", siehe Beispiel 3 oben.
Hier ein Auszug aus den erkannten Daten:
[
{
0: "Gebiet\nGR\u00dcNABFUHR",
1: "JAN",
2: "FEB\nM\u00c4R",
3: "APR\nMAI\nJUN\nJUL\nAUG\nSEP",
4: "OKT",
5: "NOV",
6: "DEZ",
7: "JAN 25",
},
{
0: "",
1: "9.",
2: "6.",
3: "M\u00e4rz bis November w\u00f6chentliche Sammlung",
4: "",
5: "",
6: "",
7: "",
},
{ 0: "Bernrain", 1: "", 2: "5.", 3: "", 4: "", 5: "26.", 6: "17.", 7: "7." },
{
0: "",
1: "23.",
2: "20.",
3: "jeden Dienstag",
4: "",
5: "",
6: "",
7: "",
},
{
0: "",
1: "10.",
2: "7.",
3: "M\u00e4rz bis November w\u00f6chentliche Sammlung",
4: "",
5: "",
6: "",
7: "",
},
{ 0: "Ost", 1: "", 2: "6.", 3: "", 4: "", 5: "27.", 6: "18.", 7: "8." },
{
0: "",
1: "24.",
2: "21.",
3: "jeden Mittwoch",
4: "",
5: "",
6: "",
7: "",
},
Es fällt auf, dass zwar die Zeichen korrekt erkannt werden, jedoch die Zuordnung in vielen Fällen nicht stimmt:
- Apr-Sep wird als eine Spalte erkannt, Okt jedoch separat
- Die Daten für Jan/Feb zum Quartier namens Bernrain in Keuzlingen werden als eigene Einträge ohne Zuordnung ausgegeben, der Monat März wird hingegen korrekt zugeordnet.
Die Erkennung lässt sich über zahlreiche Optionen verbessern, allerdings spezifisch für jede PDF-Datei, was wir bisher noch nicht getestet haben, da der Aufwand relativ hoch wäre. Details zu dieser Möglichkeit findet man unter https://camelot-py.readthedocs.io/en/master/user/advanced.html#advanced.
ExtractTable
In der Demo-Version werden nur Bilder unterstützt. Ein Test mit einer einfachen Tabelle liefert korrekte Ergebnisse.
Beispiel 3 (Grünabfuhr) liefert ebenfalls korrekte Daten, hat jedoch Probleme, die zusammengelegten Spalten zu erkennen:
Nanonets
Dieses Tool kann komplette PDF-Dateien verarbeiten. Beim ersten Versuch werden alle Tabellen korrekt erkannt:
Nicht korrekt hingegen:
- Bei Beispiel 1 fehlen die Punkte für die Zuordnung.
- Mehrfachspalten werden wie bei ExtractTable nicht korrekt erkannt.
DocSumo
Auch hier lässt sich eine komplette PDF-Datei analysieren, die Ergebnisse sind jedoch insgesamt unbrauchbar.
Es wird in DocSumo nur eine Tabelle erkannt und dort zum Teil Daten falsch zugeordnet. Die Bedienung für das Feintuning ist zudem wenig benutzerfreundlich.
Was kommt im nächten Blog-Post?
In unserem nächsten Beitrag werden wir weitere Ergebnisse, insbesondere zu
- GPT-4 (Image),
- Azure AI Document Intelligence und der
- KVA App,
vorstellen und bewerten, wie diese Technologien die Verarbeitung von öffentlichen Verwaltungsdaten verbessern können.