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",
... )