OPF detector
opf-ru-v2+ov100 PII detection benchmark
Measured on 11 of 41 retained datasets under the same frozen scoring and masking protocol.
37.94%fully hidden annotations
45.77%detected / overlapped
3.09%extra masking
—CPU characters / second
Strengths
Highest complete-masking rates by normalized data type.
Passwords, keys & tokens82.56%1,581 / 1,915
Phone numbers & email82.43%4,737 / 5,747
Bank accounts & cards77.06%588 / 763
Watch list
Lowest observed complete-masking rates; inspect before deployment.
Dates & times0.00%0 / 601
Organizations5.63%739 / 13,123
Other sensitive attributes7.76%69 / 889
Language coverage
The overall leader can differ from the best choice for one language slice.
| Language | Datasets | Fully hidden ↑ | Detected ↑ | Extra masking ↓ |
|---|---|---|---|---|
| English | 6 | 45.78% | 51.07% | 3.35% |
| Russian | 5 | 36.11% | 44.53% | 1.32% |
Configuration, source and version
- Family
- OPF
- Revision
- 7975e895ed59a7c58e9ab2dbb7d739fd246086b4
- Eligible datasets
- 11 / 41
- Character F1
- 0.551
- Untouched diagnostic
- 54.23% · 50,073 / 92,332
- Benchmark version
- 1.0.3 · 2026-09-09
- CPU seconds / 10k chars
- Not measured
- GPU seconds / 10k chars
- Not measured
Results by dataset
Complete masking is primary; detection shows whether any character overlapped.
| Dataset | Gold annotations | Fully hidden ↑ | Detected ↑ | Extra masking ↓ |
|---|---|---|---|---|
| nerel | 24,369 | 16.81% | 19.39% | — |
| tab-echr | 3,830 | 19.77% | 22.77% | — |
| factrueval | 7,966 | 24.28% | 24.78% | — |
| dialogpii-en | 3,087 | 33.56% | 38.32% | 5.41% |
| synth-ru-tickets | 32,099 | 45.31% | 59.85% | — |
| jayguard | 1,195 | 45.52% | 58.49% | 1.20% |
| nemotron-pii | 9,391 | 55.72% | 61.57% | 0.00% |
| leak-museum | 101 | 62.38% | 72.28% | 2.75% |
| redact-ru | 9,230 | 64.10% | 72.87% | 6.09% |
| secrets-issues | 288 | 71.18% | 94.79% | 3.57% |
| creddata | 776 | 90.98% | 95.49% | 2.65% |