lucianfialho/privacy-filter-br-dataset
privacy-filter-br Dataset Synthetic Portuguese (BR) PII detection dataset used to fine-tune the privacy-filter-br NER model. 22 PII categories, BIOES tagging compatible. Latest: v8.1 main aponta sempre pra última versão estável. Hoje: v8.1 (172075 train + 17072 holdout). from datasets import load_dataset ds = load_dataset("lucianfialho/privacy-filter-br-dataset") # ou pin: load_dataset("lucianfialho/privacy-filter-br-dataset", revision="v8.1") Schema… See the full description on the dataset page: https://huggingface.co/datasets/lucianfialho/privacy-filter-br-dataset.
privacy-filter-br Dataset
Synthetic Portuguese (BR) PII detection dataset used to fine-tune the privacy-filter-br NER model. 22 PII categories, BIOES tagging compatible.
Latest: v8.1
main aponta sempre pra última versão estável. Hoje: v8.1 (172075 train + 17072 holdout).
from datasets import load_dataset
ds = load_dataset("lucianfialho/privacy-filter-br-dataset")
# ou pin: load_dataset("lucianfialho/privacy-filter-br-dataset", revision="v8.1")Schema
Cada linha é um JSON object:
{
"text": "Documento completo em PT-BR...",
"entities": [
{"start": 12, "end": 27, "label": "private_cpf"},
{"start": 45, "end": 67, "label": "private_person"}
],
"template": "cvm_fre_administrador"
}text: documento completo após rewrite via LLM (gpt-5-nano)entities: lista de spans char-level comstart/end/labeltemplate: qual template Jinja gerou o esqueleto antes do rewrite
Categorias (22)
Identificadores BR estruturados (8): private_cpf, private_cnpj, private_rg, private_cnh, private_pis, private_titulo_eleitor, private_ie, private_certidao
Contato pessoal (5): private_person, private_email, private_phone, private_address, private_date
B2B / e-commerce (6): private_order_id, private_customer_id, private_tracking_code, private_invoice_number, private_transaction_id, private_client_revenue
OAI taxonomy (3): private_url, account_number, secret
Distribuição de labels (v8.1, 172075 docs train)
Geração
Pipeline em github.com/lucianfialho/privacy-filter-br:
- Perfis sintéticos via 4devs API (BR CPF/CNPJ/RG/etc com checksum válido)
- Templates Jinja2 (35+ templates: BR public docs, narrative, structured)
- Rewrite via LLM (gpt-5-nano para diversidade de linguagem)
- Format-aware labeler (skeleton match para formats numerical + exact match para free-text)
- Holdout split 9%
Versões disponíveis
Limitações
- Synthetic only. Todos os PII são fictícios (geração 4devs com checksum válido mas pessoa não existe). Reflete formato BR mas não comportamento real de prosa.
- Synth-to-real gap. F1 sintético ≈ 0.99, F1 em 30 docs reais CVM ≈ 0.85 (overlap, com boundary merger). Para uso em produção, sempre validar contra documentos do seu domínio antes de subir.
- Schema fixo em 22 categorias. Não cobre identificadores transacionais BR como CMC7, linha digitável de boleto, chave NF-e, chave PIX EVP, agência+conta. Schema expansion planejado para v9+.
Reproducibility
Para regenerar v8.1 do zero:
git clone https://github.com/lucianfialho/privacy-filter-br
cd privacy-filter-br
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
# Generate perfis cache (~3h, free)
python scripts/openai_batch.py perfis --n 1500 --output data/perfis_full.jsonl
# Prepare + submit OpenAI batch (~$1.50)
python scripts/openai_batch.py prepare --n 30000 \
--perfis data/perfis_full.jsonl --output data/batch_input_v8_1.jsonl
python scripts/openai_batch.py submit --input data/batch_input_v8_1.jsonl
# Wait ~1h, then process
python scripts/openai_batch.py process --batch-id batch_XXX \
--metadata data/batch_input_v8_1.metadata.jsonl \
--output data/dataset_br_v8_1_main.jsonl
# Then combine with v7 + extras → v8.1
# See model-evolution.md for full sequenceTotal cost: ~$1.80 OpenAI + ~7h GPU (RTX 2070 SUPER) para fine-tune.
Citação
@misc{privacy-filter-br-dataset-2026,
author = {Lucian Fialho},
title = {privacy-filter-br: Synthetic Brazilian Portuguese PII detection dataset},
year = {2026},
publisher = {HuggingFace},
howpublished = {\url{https://huggingface.co/datasets/lucianfialho/privacy-filter-br-dataset}}
}Licença
Apache 2.0 — uso livre incluindo comercial. Atribuição apreciada.
Modelo correspondente
`lucianfialho/privacy-filter-br` — BERTimbau fine-tuned no dataset acima. Mesmas tags de versão (v3, v8.1).
