anonimizacao
anonimizacao
Anonimização de PII em texto — detecção e mascaramento de dados pessoais.
Modo nuvem (default)
Faz upload dos textos e dispara a anonimização no escritório com o "lenerbr" — pierreguillou/ner-bert-base-cased-pt-lenerbr <https://huggingface.co/pierreguillou/ner-bert-base-cased-pt-lenerbr>_, BERT base PT-BR fine-tuned em LeNER-Br (decisões judiciais brasileiras), 6 categorias (PESSOA, ORGANIZACAO, LOCAL, TEMPO, LEGISLACAO, JURISPRUDENCIA). O escritório roda só em CPU, e o "privacy-filter" (1,5B params) não cabe lá.
Modo local (local=True)
Roda o mesmo pipeline (labdados_core.anonimizacao) na sua máquina via HF Transformers, com "privacy-filter" (default — openai/privacy-filter <https://huggingface.co/openai/privacy-filter>_, multilíngue, 8 categorias: nome, e-mail, telefone, endereço, URL, conta, data, segredos) ou "lenerbr". Precisa do extra pip install labdados[anonimizacao] (puxa torch + transformers de CPU). O primeiro uso baixa os pesos do HuggingFace (~3 GB do privacy-filter ou ~440 MB do lenerbr).
Aviso
Detectores de PII são uma camada num approach de privacy-by-design, não uma garantia absoluta de anonimização nem de conformidade com LGPD/GDPR. Sempre revise manualmente o resultado antes de publicar.
Functions
| Name | Description |
|---|---|
| anonimizacao | Detecta e mascara PII (nomes, e-mails, telefones, etc.) em textos. |
anonimizacao
anonimizacao.anonimizacao(
arquivos,
*,
saida=None,
api_key=None,
modelo=None,
estrategia='categoria',
coluna_texto='',
local=False,
use_gpu=False,
client=None,
progress=True,
)Detecta e mascara PII (nomes, e-mails, telefones, etc.) em textos.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| arquivos | PathLike | list[PathLike] | .txt, .md, .docx, .csv ou .xlsx. Para CSV/XLSX, cada linha vira um documento — use coluna_texto para indicar qual coluna contém o texto a anonimizar. |
required |
| saida | PathLike | None | Pasta de saída. Modo nuvem baixa o .zip retornado; modo local escreve um .txt (texto anonimizado) e um .json (entidades detectadas) por documento, e um consolidated.csv com tudo. |
None |
| api_key | str | None | Chave de API do escritório (modo nuvem). | None |
| modelo | str | None | Modo nuvem: "lenerbr" (único, e o default — PT-BR jurídico, 6 categorias incluindo legislação/jurisprudência citadas). Modo local: "privacy-filter" (default — multilíngue, 8 categorias PII), "lenerbr" ou um identificador do HuggingFace. |
None |
| estrategia | ESTRATEGIA | Como mascarar: "categoria" (default — substitui por [PESSOA], [EMAIL], etc.), "asteriscos" (preserva tamanho, útil em CSVs largura-fixa) ou "pseudonimo" (substitui por PESSOA_1, PESSOA_2… mantendo consistência por texto). |
'categoria' |
| coluna_texto | str | Para CSV/XLSX: nome da coluna que contém o texto. Vazio = concatena todas as colunas da linha. | '' |
| local | bool | Se True, roda HF Transformers no próprio computador (precisa pip install labdados[anonimizacao]). |
False |
| use_gpu | bool | No modo local: tenta CUDA quando disponível. CPU funciona, mas é ~10× mais lento no privacy-filter (1.5B params); o lenerbr (110M) roda confortável em CPU. | False |
| client | Client | None | Reaproveita um :class:labdados.Client existente. |
None |
| progress | bool | Spinner no stderr. | True |
Returns
| Name | Type | Description |
|---|---|---|
| Path | Caminho do diretório de saída (criado se preciso). |
Examples
Modo nuvem com lenerbr (jurídico PT-BR):
>>> import labdados
>>> labdados.anonimizacao(
... arquivos="acordaos/",
... modelo="lenerbr",
... estrategia="pseudonimo",
... api_key="sk_lab_...",
... saida="anon/",
... )Modo local (privacy-filter, multilíngue):
>>> labdados.anonimizacao(
... arquivos="textos.csv",
... coluna_texto="depoimento",
... local=True,
... modelo="privacy-filter",
... )