Language packs
A language pack bundles the NER model and the tokenization rules for one language. The current release ships with two built-in packs — Russian (via Natasha) and English (via spaCy en_core_web_lg) — plus optional Spanish, German and Italian packs (see below).
What a pack provides
- An NER model that emits
Entityrecords for Persons, Companies, and Locations - A tokenizer that respects the language’s sentence boundaries and case
- Optional surname/given-name postprocessing (Russian patronymics, English suffixes like Jr.)
Packs are loaded on demand. If you process only .docx files in English, the Russian pack stays on disk but never loads into memory.
Active packs
The product loads the language pack needed for the document’s predominant
language. If a .docx mixes RU and EN paragraphs, both packs can run. Russian
and English are always active. Spanish, German and Italian activate automatically once their models are
installed (see below) — there is no per-run language flag; activation is driven
by which models are present.
Tesseract OCR language data is separate from these NER packs: scanned PDF OCR
requires Tesseract’s eng and rus traineddata files even though the NER
models are bundled with anonymizer.
Enable Spanish (optional)
Russian and English work out of the box. Spanish is opt-in — it needs its model
(es_core_news_lg, ~0.5 GB) downloaded once. Two ways to add it:
At install — pick Spanish in the installer prompt, or set it non-interactively:
curl -fsSL anonymizer.site/install | ANONYMIZER_LANGS=es shFrom the app — open Settings → Languages, install Spanish, then restart anonymize.
Once the model is present, Spanish documents get names (including double surnames like Juan García López), companies (S.A., S.L.), and addresses (calle, avenida) detected — alongside the always-on email, phone, IBAN and date detection. Without the model, Spanish documents still get those regex-based detectors; nothing breaks, the Spanish names and companies just aren’t recognized.
The model download needs network once. After that, processing is fully offline like the rest of the tool. Russian and English are unaffected either way. Spanish detection is pilot-grade in this release.
Enable German (optional)
German works the same opt-in way. It needs its model (de_core_news_lg,
~0.5 GB) downloaded once:
At install — pick German in the installer prompt, or set it non-interactively:
curl -fsSL anonymizer.site/install | ANONYMIZER_LANGS=de sh(Languages can be combined: ANONYMIZER_LANGS="es de it".)
From the app — open Settings → Languages, install German, then restart anonymize.
Once the model is present, German documents get names (including particles like von/zu and academic titles), companies with German legal forms (GmbH, AG, GmbH & Co. KG, e.K. …), street addresses with PLZ (including suffixless streets like Prinzipalmarkt 12, 48143 Münster), German phone formats, and verbose German dates (15. Januar 2024) detected — alongside the always-on email, IBAN and date detection. Without the model, German documents still get the regex-based detectors; nothing breaks.
Enable Italian (optional)
Italian (added in 0.6.1) works the same opt-in way. It needs its model
(it_core_news_lg, ~0.5 GB) downloaded once:
At install — pick Italian in the installer prompt, or set it non-interactively:
curl -fsSL anonymizer.site/install | ANONYMIZER_LANGS=it shFrom the app — open Settings → Languages, install Italian, then restart anonymize.
Once the model is present, Italian documents get names, companies with Italian
legal forms (S.r.l., S.p.A. …), structured street addresses (including CAP
postal codes), Italian phone formats, verbose notarial dates (il quindici
gennaio duemilaventiquattro), and label-anchored identifiers — codice fiscale
(including the C.F./cod. fisc. abbreviations), Partita IVA, cadastral
references (Foglio/Particella/Subalterno), deed registers (Rep./Racc.),
and C.C.I.A.A. numbers — detected alongside the always-on email, IBAN and date
detection. Without the model, Italian documents still get the regex-based
detectors; nothing breaks. Note: the upstream it_core_news_lg model is
licensed CC BY-NC-SA 3.0.
Roadmap for additional languages
MVP-2 adds the remaining languages from the customer brief (French, Portuguese, Dutch, Polish, Czech, Turkish, and more — 25 in total). Until then, language-agnostic regex detectors (emails, phones, IBANs, etc.) still work on documents in any language.
Adding a custom pack
If you need a language not yet supported, see the engineer-facing guide in the product repo: docs/agents/extending-language.md. It walks through the LanguagePackRegistry registration.