NameScrub erkennt Eigennamen in deutschen Texten und ersetzt sie durch nummerierte Platzhalter — Name-1, Name-2 usw. Der Text bleibt lesbar und zusammenhängend, Personen sind aber nicht mehr identifizierbar.
Datenschutzversprechen: Kein Wort verlässt Ihren Browser (Web) bzw. Ihren Rechner (Desktop). Keine API, kein Server, kein Logging.
Es gibt zwei Varianten:
| NameScrub Web | NameScrub+ Desktop | |
|---|---|---|
| Technik | Regelbasiert — Wörterbuch + Heuristiken | KI-basiert — spaCy NER-Modell |
| Start | Sofort im Browser, kein Install | Python 3.9+ + Modell-Download (~560 MB) |
| Entitäten | Personen (Namen) | Personen, Orte, Organisationen |
| Fehlerrate | Moderat | Deutlich geringer |
| Batch | Nein | Ja — ganze Ordner auf einmal |
| Dateien | Nur Texteingabe | Öffnen & Speichern per Klick |
| 🔒 100% lokal | Verarbeitung via Web Worker, kein Netzwerk nach dem Laden |
| 🔄 Konsistente Platzhalter | Dasselbe Vorkommen eines Namens erhält überall denselben Platzhalter |
| 🖱️ Interaktives Popup | Pro markiertem Wort: × Löschen · ✓ Kein Name · ↔ Name-X ersetzen |
| ⚡ Bulk-Modus | „Alle ersetzen" nummeriert alle erkannten Namen in einem Schritt |
| 🎯 5-Pass-Erkennung | Honorifik, Suffix, Kontext, Konsistenz, Verb-Kontext |
| 📚 675.000 Wörter | enz/german-wordlist — explizit ohne Eigennamen |
| 🏷️ 810 Vornamen | Mehrsprachige Vornamenliste (DE, EN, FR, TR, PL, RU, IT, AR, GR, VN) |
NameScrub nutzt einen 5-Pass-Algorithmus im Web Worker:
Pass 1 — Basisklassifikation
├─ Honorifike (Herr, Frau, Dr., Prof. Dr. med., …) → Kontext-Marker
├─ Partikel (von, van, de, zu, …) → transparent
├─ Abkürzungen / Rechtsformen (GmbH, AG, e.V., USA) → skip
├─ Vornamenliste (810 Einträge, mehrsprachig) → Name
└─ Dictionary-Lookup (675k Wörter) mit Wort-Suffix-Filter
Pass 2 — Nachname-Chaining
└─ Token nach erkanntem Namen + Großbuchstabe → Name
Deckt "Vorname Nachname" und "Herr von Müller" ab
Pass 3 — Konsistenz-Propagierung
└─ Alle Vorkommen eines bestätigten Namens im Text → Name
Pass 4 — Bilateraler Kontext
└─ Uppercase-Token vor einem bestätigten Namen → Name
Pass 5 — Verb-Kontext
└─ Uppercase-Token direkt vor Verb → Name
Fängt Satzanfangsnamen ab ("Müller arbeitet hier.")
git clone https://github.com/daimpad/namescrub.git
cd namescrub
npm install
npm run build # Wörterbuch + Vornamen aufbereiten + Vite-Build
npm run dev # → http://localhost:5173npm run build
# → dist/ — direkt in den Webserver-Root kopierenDer Ordner dist/ enthält alles, kein Node.js auf dem Server nötig. Details: DEPLOY.md
NameScrub+ ist eine Python-Desktop-App, die statt Wörterbuch-Heuristiken ein trainiertes KI-Modell nutzt: spaCy de_core_news_lg, ein deutsches Named-Entity-Recognition-Modell.
pip install spacy
python -m spacy download de_core_news_lg # ~560 MB, einmalig
python cli/namescrub_gui.py # Desktop-GUI starten# Einzeldatei
python cli/namescrub.py bericht.txt
# Mit Ausgabedatei
python cli/namescrub.py bericht.txt -o anonym.txt
# Batch: ganzer Ordner
python cli/namescrub.py docs/*.txt -o ausgabe/
# Personen + Orte + Organisationen
python cli/namescrub.py text.txt -e PER,ORG,LOC
# Interaktive Prüfung
python cli/namescrub.py text.txt --interactive
# Erkannte Entitäten auflisten (kein Ersetzen)
python cli/namescrub.py text.txt --list
# stdin
cat text.txt | python cli/namescrub.pypip install pyinstaller
python cli/build_exe.py
# → cli/dist/NameScrub(.exe)cli/
├── namescrub.py Kern-Logik + CLI (spaCy NER, Batch-Modus)
├── namescrub_gui.py Tkinter Desktop-GUI
├── build_exe.py PyInstaller-Build-Script
└── requirements.txt Abhängigkeiten
| Schicht | Technologie |
|---|---|
| Build | Vite 5 |
| Sprache (Web) | Vanilla JavaScript (ES Modules) |
| Analyse (Web) | Web Worker API |
| Wörterbuch | enz/german-wordlist · 675k Einträge |
| Sprache (Desktop) | Python 3.9+ |
| NER-Modell | spaCy de_core_news_lg |
| GUI | Tkinter |
| Design | nozilla CI — Neo-Brutalism |
Browser
├── app.js UI, Popup, Name-Mapping, Clipboard, Modal
└── worker.js 5-Pass-Analyse (off-thread)
├── dictionary.json 675k Wörter (einmalig geladen)
└── firstnames.json 810 Vornamen
Kein Netzwerkzugriff nach dem initialen Laden.
MIT License — Copyright (c) 2026 nozilla
Ein Projekt von nozilla — bits & bytes mit ❤