Alle Beiträge
Datenbereinigung

Freitextfelder aus der Hölle

Wie man Felder, in denen alles steht außer dem, was hineingehört, mit einem lokalen LLM bereinigt - ohne dass ein Datensatz das Firmennetz verlässt und ohne den Halluzinationen des Modells zu vertrauen.

Wer Daten migriert oder für KI-Systeme aufbereitet, lernt eine Sorte Feld besonders gut kennen: das Freitextfeld. Nichts wird kreativer befüllt.

Beispiel: ein Feld für Kundennummern, beschriftet mit „Kundennummern durch Komma getrennt eingeben”. Was darin landet, sind Kundennummern - gemischt mit Ansprechpartnern, Telefonnummern, halben Adressen.

Solche Daten mit konventionellen Mitteln zu bereinigen, ist praktisch aussichtslos. Eine Kundennummer sieht aus wie eine Postleitzahl, die wiederum aussieht wie eine Telefonnummer. Den Text herauszufiltern hilft nur begrenzt: Sobald er weg ist, bilden die übrigen Zahlen einen neuen, falschen Kontext.

Hier spielt KI ihre eine echte Stärke aus - sie erkennt Kontext, ähnlich wie ein Mensch. „45312 Teststadt” liest sie als Ort, „0170 123456” als Telefonnummer, auch ohne saubere Feldgrenze.

Bleibt der Einwand, der bei diesem Publikum sofort kommt: Wir reden über Namen, Adressen, Telefonnummern. Wer solche Daten an Claude oder ChatGPT schickt, hat ein DSGVO-Problem.

Für eine Datenbereinigung braucht es keine High-End-Modelle. Ein lokales LLM genügt, und die Daten verlassen das Firmennetz nicht. In der Praxis heißt das: Ollama als Runtime, dazu ein Modell wie Qwen2.5.

Der Ablauf ist schlicht. Die Daten werden exportiert. Die KI erhält zunächst einen einfachen Prompt zur Bereinigung. Anhand der Sonderfälle in den echten Daten wird dieser Prompt dann schrittweise nachgeschärft - etwa an Zeilen wie dieser:

12345 Herr X, 45312 Teststadt, Tel. 0170 123456, 34321 - Frau Y

Danach kommt der Teil, der über brauchbar oder nicht entscheidet: die Prüfung. Das Ergebnis der KI wird mit klassischen Mitteln gegengeprüft - regulären Ausdrücken -, und zwar in beide Richtungen. Erstens: Sind die neuen Werte korrekt formatiert? Zweitens, und das ist die wichtige Richtung: Findet sich jeder neu formatierte Wert exakt so in den Originaldaten wieder?

Diese zweite Richtung fängt ab, was ein Sprachmodell gelegentlich tut - einen plausibel aussehenden Wert erfinden, der nie in den Daten stand. Was die Rückwärtsprüfung nicht bestätigt, ist nicht bereinigt, sondern halluziniert. Ohne diese Prüfung wäre das Verfahren nicht produktionstauglich.

Je nach Schwere der Verunreinigung sind mehrere Durchläufe nötig. Am Ende bleibt meist ein Rest an Datensätzen, der von Hand bereinigt werden muss. Das Ziel ist, diesen Rest so klein wie möglich zu halten.

Zwei Grenzen muss man kennen. KI-Modelle erkennen Muster gut, rechnen aber schlecht. Formatanpassungen - führende Nullen einsetzen, Stellen auffüllen - gehören deshalb nicht in den KI-Schritt, sondern in ein klassisches Skript danach.

Und eine Bereinigung läuft nie direkt in der Datenbank oder im Zielsystem. Der Weg ist Export → Bereinigung → Prüfung → Import, davor ein Backup der Originaldaten. Ausnahmslos.