decima-piipreview

Paste a message and see the personal data in it: names, phone numbers, emails, national IDs, IBANs, card numbers, passports, addresses, dates of birth and IP addresses. Arabic, Persian, Urdu, Turkish and English, in Western, Arabic-Indic or Persian digits.

0 servers: nothing you type leaves your device 140M parameters, Apache-2.0 العربية · فارسی · اردو · Türkçe · English
Try:
Runs in your browser; nothing is sent anywhere.
How it works

Paste some text or click an example, and press Find personal data. The first run downloads the model once (about 177 MB with its tokenizer); after that it is cached on this device and the next visit starts in a few seconds. You get the text with each item marked, and a redacted copy with placeholders such as [PHONE].

The same in your code

Same model and the same decoding, on any CPU, from one Python file.

pip install onnxruntime tokenizers numpy huggingface_hub
wget https://huggingface.co/amyrmahdy/decima-pii/resolve/main/decima_pii.py

from decima_pii import DecimaPII

pii = DecimaPII.from_pretrained("amyrmahdy/decima-pii")
pii.find("My name is Sara Ahmadi and my card is 5185 5272 2255 5565.")
# [{'start': 11, 'end': 22, 'label': 'PERSON_NAME', 'text': 'Sara Ahmadi'},
#  {'start': 38, 'end': 57, 'label': 'CARD', 'text': '5185 5272 2255 5565'}]
pii.redact("Merhaba, ben Ayşe Yılmaz, telefonum 0532 123 45 67.")
# 'Merhaba, ben [PERSON_NAME], telefonum [PHONE].'

On a test set I did not make

MultiGraSCCo (Baroud et al., LREC 2026) is a set of clinical letters translated into ten languages by other researchers. decima-pii never trained on it. Scored on the five types it shares with this model (names, phones, emails, addresses, dates of birth; 1,814 spans), relaxed typed F1 as in their paper:

decima-piiOpenAI privacy-filter
All four languages0.8700.647
English0.9570.901
Arabic0.8430.581
Persian0.8050.508
Turkish0.8890.626

Not a pure first look: an earlier version was tested on this set, and its mistakes led me to add clinical-letter-style training text. That earlier version scored 0.652. Only these five types are measured on outside data; national IDs, IBANs, cards, passports and IP addresses are measured only on our own synthetic test. Urdu has no outside test yet. The model card has strict scores, the limits, and how it was made.