fevziegeyurtsevenler/turkish-pii-corpus
turkish-pii-corpus from datasets import load_dataset ds = load_dataset("fevziegeyurtsevenler/turkish-pii-corpus") A synthetic, checksum-valid, character-span-labeled Turkish PII corpus — no real person's data. Every TCKN/IBAN/VKN/plaka/card is randomly generated but passes its checksum, plus distractor sentences with number-like strings that are not PII (to test precision). Each row: text, entities: [{type, start, end, value}]. Entity types: TCKN, IBAN, VKN, PLAKA, PHONE… See the full description on the dataset page: https://huggingface.co/datasets/fevziegeyurtsevenler/turkish-pii-corpus.
turkish-pii-corpus
from datasets import load_dataset
ds = load_dataset("fevziegeyurtsevenler/turkish-pii-corpus")A synthetic, checksum-valid, character-span-labeled Turkish PII corpus — no real person's data. Every TCKN/IBAN/VKN/plaka/card is randomly generated but passes its checksum, plus distractor sentences with number-like strings that are not PII (to test precision).
Each row: text, entities: [{type, start, end, value}]. Entity types: TCKN, IBAN, VKN, PLAKA, PHONE, EMAIL, CREDIT_CARD.
Why checksums matter
Matching a bare 11-digit number as "TCKN" floods you with false positives. Validating the checksum makes redaction precise. On this corpus, Microsoft Presidio out-of-the-box catches 0% of TCKN / VKN / plaka (it ships no recognizer for them); the companion library turkish-pii-redactor fills that gap and includes a KVKK-safe browser demo.
⚠️ Synthetic test data — not a real-world benchmark, not KVKK legal advice.
Related: uncloak · guardrail-arena · AltaySec
Apache-2.0 · by AltaySec.
