Released / Nepali PII detection
गोप्यGopya, personal data found in Nepali text.
Paste a message, a form or a news story. Gopya marks the names, places, phone numbers and identity numbers in it, and it does so inside your browser.
Version 0.1, 13 November 2026
- 35 MB
- the whole model, small enough for a web page
- 94%
- of the personal data in Nepali news it had not seen, counted in characters
Free for research and other non-commercial use. It misses some personal data, so read the result before you rely on it.
Try it
The model and the rules run in this page. Your text is not sent anywhere.
Found
With it taken out
What it finds
- PERSON names of people
- LOCATION places and addresses
- ORGANIZATION offices, companies, parties
- DATE days, months and years
- PHONE mobile and landline numbers
- EMAIL e-mail addresses
- CITIZENSHIP_NO citizenship certificate numbers
- NATIONAL_ID national identity numbers
- PAN permanent account numbers
- PASSPORT_NO passport numbers
- LICENSE_NO driving licence numbers
- VOTER_ID voter card numbers
- BANK_ACCOUNT bank account numbers
- VEHICLE_PLATE number plates
It reads Devanagari and Nepali written in Latin letters, with digits of either kind. It was tested mostly on Devanagari.
Benchmark
Names of people, places and organisations in 215 sentences from 43 Nepali news stories of November 2026, which no system had seen. Higher is better.
| Model | Weights | Exact | Whole words | Characters found |
|---|---|---|---|---|
| Gopya 0.1 | 34M | 0.81 | 0.83 | 93% |
| XLM-R base NER HRL Davlan | 277M | 0.70 | 0.81 | 89% |
| EU PII anonymisation bards.ai | 278M | 0.66 | 0.83 | 97% |
| WikiNEural multilingual NER Babelscape | 177M | 0.45 | 0.56 | 65% |
| mBERT Nepali NER Saugatkafley | 177M | 0.34 | 0.68 | 77% |
| Nepali NER RoBERTa meutsabdahal | 124M | 0.32 | 0.78 | 83% |
Exact: start, end and label all right. Whole words: the same after every span is widened to whole words, which forgives a case marker left on a name. Characters found: the share of the characters of names inside any span found.
The labels were written with the help of an AI assistant and are waiting for a review by a native speaker, so the scores may move. Every system, the second test set and the method are in the full benchmark.
Use it
In Python, with no graphics card:
# pip install onnxruntime tokenizers numpy huggingface_hub
import sys
from huggingface_hub import snapshot_download
folder = snapshot_download("fiste-ai/gopya")
sys.path.insert(0, folder)
from gopya import Gopya
pii = Gopya(folder)
pii.redact("मेरो नाम सीता थापा हो, फोन ९८४१२३४५६७।")
# मेरो नाम [PERSON_1] हो, फोन [PHONE_1]।
In a web page, load web/gopya.js from the model page; this page is the example. Weights CC BY-NC 4.0, code MIT. It is a helper and not a guarantee: on news it misses about 6 in 100 characters of personal data, and more on text that is unlike news.