Fall 2 von 6 · eigenes Werkzeug Stand 02.09.2026

Der Anonymisierer

Namen, Telefonnummern, Anschriften, Kennziffern und Daten aus deutschem Text entfernen, bevor er an einen Anbieter geht. Kein Sprachmodell, sondern Regeln und ein Sprachpaket. Und der einzige meiner Fälle, bei dem die Messlatte vor dem Bauen stand und beim ersten Lauf rot war.

Befund

Workflow  Ein Aufruf, ein festes Antwortformat, kein Modell, das über den Weg entscheidet.

Das Verfahren reduziert personenbezogene Daten. Es macht einen Text nicht anonym im Sinne der DSGVO, und ich setze es nicht als Torwächter vor eine Weitergabe an Dritte. Diese beiden Sätze stehen hier oben, weil sie sonst in einer Fußnote landen.

01

Aufgabe

Ein Text kommt herein: eine Gesprächsnotiz, ein Transkript, eine Mail. Heraus geht derselbe Text mit Platzhaltern statt Namen, Nummern und Adressen. Zwei Betriebsarten: endgültig schwärzen, oder nummerierte Platzhalter mit einer Zuordnungstabelle, damit die Schleuse die echten Werte nach der Antwort des Modells wieder einsetzen kann.

Technisch ein eigener Dienst auf eigener Hardware: ein Erkennungs-Framework, ein deutsches Sprachpaket für Namen, und eigene Regel-Erkenner für alles, was eine Form hat: Telefonnummern, Kennzeichen, Steuer-IDs, Kartennummern, Geburtsdaten. Zwei Fassungen laufen parallel, weil ein älteres Werkzeug noch an der ersten hängt. Das ist eine Absprache, keine technische Frage.

02

Vorfrage

  • NEINWeg unbekannt? Nein. Erkennen, ersetzen, zurückgeben. Ein Workflow, und zwar einer ohne Sprachmodell: was eine Form hat, erkennt eine Regel zuverlässiger als ein Modell, und eine Regel macht beim nächsten Mal denselben Fehler.
03

Messlatte

Sie entstand am 14. August 2026, vor dem Umbau. Und sie war rot.

Der Test besteht aus vier Teilen: die dreißig häufigsten deutschen Nachnamen in fünf Satzmustern mit Anrede oder Rollenwort, also 150 Namen. Zehn Pflichtmuster, die in keinem Fall stehen bleiben dürfen: Kreditkarte, Geburtsdatum, Steuer-ID, Kennzeichen, Telefon, Adresse und vier weitere. Sechs Texte ohne jede Personenangabe, die unverändert bleiben müssen. Und drei Wiederholungen desselben Textes, die dasselbe Ergebnis liefern müssen.

WasFassung 1Fassung 2.2Schwelle
Namen mit Anrede oder Rollenwort99 von 150 · 66 %150 von 15090 %
Pflichtmuster3 von 1010 von 1010 von 10
Texte ohne Personenangabe unberührt6 von 66 von 66 von 6
Wiederholbarkeit0 von 33 von 33 von 3
Fehler insgesamt1100
Warum die Schwelle bei 90 liegt und nicht bei 100Ein Test, der Vollständigkeit behauptet, wäre die gefährlichere Lüge. Er verführt dazu, das Prüfen einzustellen, und er verspricht dem Leser etwas, das kein statistisches Verfahren halten kann. Die hundert Prozent in der zweiten Spalte gelten ausschließlich für Sätze mit Anrede oder Rollenwort. Ein blanker Nachname ohne jedes Signal, „Bergmann hat angerufen“, wird in 18 von 30 Fällen erkannt. Passwörter werden nie erkannt, weil sie keine Form haben. In einem Test verschwand eines trotzdem, aber nur, weil das Sprachpaket es für einen Firmennamen hielt. Zwei andere blieben stehen.

Wichtiger als die Zahlen ist das Vorgehen: der Test wurde zuerst geschrieben und gegen den alten Stand ausgeführt. Er meldete elf Fehler. Erst danach hatte sein Bestehen eine Aussage. Die sechs Läufe im Wortlaut stehen im Werkstattbericht.

04

Was schiefging, und was davon still war

14.08.2026 · ein Ausfall, der aussieht wie ein sauberer Text

Fällt der Dienst aus, liefert die Zwischenschicht des älteren Werkzeugs den Originaltext zurück, mit einem Vermerk „eingeschränkt“. Das Werkzeug wertet den Vermerk nicht aus. Ein Totalausfall sieht damit genauso aus wie ein anonymisierter Text. Der Punkt ist dort bis heute offen. Die Schleuse tut seit August das Gegenteil: sie bricht ab und sendet nichts. Gefunden habe ich den Unterschied, weil ich solche Dinge zuerst an eigenen Prototypen ausprobiere.

14.08.2026 · null Treffer heißt zweierlei

Die Antwort „null Treffer“ bedeutet entweder „nichts gefunden“ oder „nichts drin“. Von außen ist das nicht zu unterscheiden. Deshalb steht in der Messlatte der Teil mit den sechs Texten, die unberührt bleiben müssen: er ist der einzige Weg, die zweite Bedeutung zu prüfen.

14.08.2026 · die Anrede machte es schlechter

In der ersten Fassung wurde „Bergmann hat angerufen“ erkannt und „Herr Bergmann hat angerufen“ nicht. Das ist nicht erklärbar und im Sprachpaket nicht reparierbar, es ist die Natur eines statistischen Modells. Repariert wurde es mit einer Regel: Anrede oder Rollenwort plus großgeschriebenes Wort ist ein Name. Die Regel schlägt das Modell, weil sie beim nächsten Mal dasselbe tut.

14.08.2026 · Kartennummern blieben lautlos stehen

Der Erkenner für Kreditkartennummern war im Framework nur für Englisch registriert. In deutschem Text blieb jede Kartennummer stehen, ohne Fehlermeldung. Gefunden durch das Pflichtmuster, nicht durch Lesen des Codes.

Muster laufen ohne Rücksicht auf Groß- und Kleinschreibung

Und Teilüberlappungen zweier Treffer bleiben stehen. Beides sind Eigenschaften des Frameworks, die nirgends laut werden. Sie stehen hier, weil sie beim nächsten Erkenner wieder zuschlagen.

05

Grenzen

Freigabe

Keine. Der Dienst arbeitet im Fluss, ein Mensch sieht das Ergebnis nicht vor der Weitergabe. Genau deshalb ist die Zusage klein: reduzieren, nicht zusichern.

Kostendeckel

Entfällt. Eigene Hardware, kein Anbieter, kein Token.

Spur

Nur ein Trefferzähler. Der Text selbst wird nicht protokolliert, aus demselben Grund, aus dem er anonymisiert wird.

Personendaten

Die Zuordnungstabelle, die aus Platzhaltern wieder Namen macht, ist der Schlüssel zum Text. Sie darf den aufrufenden Prozess nie verlassen. Nachgeprüft in der Schleuse: nach mehreren Läufen mit Klarnamen steht in keiner Tabelle einer.

06

Was ich nicht behaupte

Nicht „DSGVO-konform anonymisiert“

Durch die Messung widerlegt. Ein blanker Nachname bleibt in vier von zehn Fällen stehen.

Nicht „vollständige Anonymisierung“

Passwörter haben keine Form. Ein Textbaustein, an den ich nicht gedacht habe, ist in keiner der Zahlen enthalten.

Nicht „sichere Weitergabe an Dritte“

Der Dienst ist eine Reduktion vor einem Anbieter, dem ich ohnehin nur Aufgaben mit passender Region gebe. Er ist kein Torwächter.

Nicht „100 % Erkennung“

Die hundert Prozent gelten für Sätze mit Anrede oder Rollenwort. Wer den Zusatz weglässt, schreibt etwas Falsches, und zwar auf die Art, die beim ersten Kundentest auffliegt.

 

Quellen

Testprogramm: anonymize/test_erkennung.py. Dienstbeschreibung mit Grenzen: anonymize/README.md. Befund vom 14.08.2026: 20_Knowledge/anonymisierer-befund.md. Projektstand: 05_Projects/anonymize.md. Protokolle 1 bis 6 im Wortlaut: Werkstattbericht, Abschnitt Messprotokolle.