Saltar para o conteúdo principal

−20% no primeiro ano com o código Ver planos

Voltar ao blogue
Tecnologia IA Por Equipa Anonimatum 8 min

Como medimos a IA do Anonimatum em 10 idiomas: corpus, recall e precisão

Ilustração: documentos em vários idiomas com dados ocultados a preto, uma lupa sobre uma deteção e um indicador de qualidade com os rótulos ES, CA, GL, EU, EN, FR, DE, IT, PT e RO
Ilustração: Anonimatum

Uma ferramenta de anonimização avalia-se pelo que lhe escapa. Por isso, sempre que a IA do Anonimatum muda, testamo-la com um corpus de 6.123 documentos em 10 idiomas (espanhol, catalão, galego, basco, inglês, francês, alemão, italiano, português e romeno) e comparamos o que deteta com o que deveria detetar. Este artigo explica o que há nesse corpus, como medimos e quais são os números de hoje, incluindo os que ainda não nos agradam.

O que há no corpus de testes

O corpus mistura dois tipos de documentos. Os reais (4.805) são, na sua grande maioria, publicações de organismos públicos com licença de reutilização: diários e boletins oficiais, acórdãos e despachos de tribunais, deliberações de autoridades de proteção de dados e de acesso à informação, atas, convénios e legislação da União Europeia. Os sintéticos (1.318) são gerados com dados inventados para cobrir o que aparece pouco nos reais: recibos de vencimento, faturas, contratos, relatórios médicos, formulários, e-mails, folhas de cálculo e ficheiros Word ou OpenDocument com paginações complexas. Entre eles há faturas em todas as formas: PDF com texto, digitalizadas, fotografadas com o telemóvel, em Word e Excel, anexas a um e-mail e faturas eletrónicas em XML.

1.272 documentos são digitalizações: antes de procurar dados pessoais passam por OCR com o modelo do idioma do documento. Incluem páginas tortas ou rodadas, carimbos, manchas, faxes, fotografias tiradas com o telemóvel e texto manuscrito, porque é aí que a anonimização falha na prática (falamos disso em os riscos do OCR em documentos digitalizados).

Corpus de testes por idioma
IdiomaDocumentosDigitalizadosTipos de documentoReaisSintéticosRevistos à mão
Espanhol6451144351513084
Catalão6151433848513072
Galego5731013544313071
Basco5751125244513053
Inglês6271104149113656
Francês6372083950113662
Alemão6661073953013661
Italiano6351034549913655
Português580983444413657
Romeno5701765445211832
Total6.1231.272—4.8051.318603

Como medimos: recall e precisão

  • Recall (exaustividade): de todos os dados pessoais de um documento, que parte a IA deteta. Um recall de 0,95 significa que escapam 5 em cada 100. É a métrica que mais importa na anonimização: o que não é detetado é publicado.
  • Precisão: de tudo o que a IA marca, que parte é realmente um dado pessoal. Uma precisão baixa não deixa escapar dados, mas obriga a retirar marcas a mais na revisão.
  • Identificadores estruturados (números de identificação civil e fiscal, IBAN…): têm de ser detetados todos nos documentos com camada de texto; nas digitalizações tolera-se que o OCR leia mal algum algarismo.

Revistos à mão ou com anotação automática

Para medir o recall é preciso saber que dados pessoais contém cada documento. Nos sintéticos sabemos, porque os inventámos. Nos reais há dois níveis:

Documentos reais revistos à mão (603)

Uma pessoa marca tudo o que seria preciso anonimizar: nomes, moradas, telefones, identificadores e empresas. É a medida mais fiável e a que exigimos: pelo menos 20 documentos por idioma e um recall mínimo de 0,95 (0,92 no basco, por agora).

Documentos reais com anotação automática (4.182)

Só estão marcados os nomes indicados nos metadados da própria publicação, como os juízes de um coletivo ou o relator. Não é uma anotação completa, mas cobre milhares de documentos e aponta aos casos difíceis: assinaturas em digitalizações e nomes soltos sem contexto.

Por isso damos dois valores de recall nos reais: o dos revistos à mão, que melhor reflete um documento completo, e o de todos os reais (à mão mais anotação automática), mais exigente porque concentra nomes precisamente onde é mais fácil falhar. A precisão mede-se nos sintéticos e nos revistos à mão, que têm tudo marcado.

Resultados por idioma

Números da execução n.º 18 dos testes da IA, de 21 de outubro de 2026. A precisão está entre 0,966 e 0,993 em todos os idiomas.

Recall em documentos reais por idioma (de 0 a 1)
  • Reais revistos à mão
  • Todos os reais (à mão + automática)
Espanhol
Reais revistos à mão: 0,985
Todos os reais (à mão + automática): 0,916
Catalão
Reais revistos à mão: 0,957
Todos os reais (à mão + automática): 0,920
Galego
Reais revistos à mão: 0,956
Todos os reais (à mão + automática): 0,944
Basco
Reais revistos à mão: 0,921
Todos os reais (à mão + automática): 0,975
Inglês
Reais revistos à mão: 0,981
Todos os reais (à mão + automática): 0,925
Francês
Reais revistos à mão: 0,981
Todos os reais (à mão + automática): 0,960
Alemão
Reais revistos à mão: 0,987
Todos os reais (à mão + automática): 0,985
Italiano
Reais revistos à mão: 1,000
Todos os reais (à mão + automática): 0,899
Português
Reais revistos à mão: 0,994
Todos os reais (à mão + automática): 0,870
Romeno
Reais revistos à mão: 0,974
Todos os reais (à mão + automática): 0,855
Recall e precisão por idioma
IdiomaRecall sintéticosRecall revistos à mãoRecall todos os reaisPrecisão
Espanhol0,9820,9850,9160,966
Catalão0,9740,9570,9200,974
Galego0,9770,9560,9440,989
Basco0,9660,9210,9750,985
Inglês0,9870,9810,9250,984
Francês0,9780,9810,9600,991
Alemão0,9860,9870,9850,992
Italiano0,9791,0000,8990,990
Português0,9860,9940,8700,989
Romeno0,9630,9740,8550,993

Nos reais revistos à mão, 9 dos 10 idiomas chegam a 0,95 ou mais; o valor mais baixo é 0,921 (basco). Em todos os reais, os valores mais baixos são 0,855 (romeno), 0,870 (português) e 0,899 (italiano). Nos sintéticos, que reúnem os casos mais difíceis do corpus (digitalizações manuscritas, faxes, manchas, páginas rodadas), o valor mais baixo é 0,963 (romeno).

O que mudou em outubro de 2026

Antes das melhorias deste mês os números eram bastante piores. Nos idiomas da Península Ibérica comparamos o recall nos reais revistos à mão; nos restantes, o de todos os reais, que era onde estava o problema.

Recall nos reais revistos à mão: antes e agora
  • Antes das melhorias
  • Agora
Espanhol
Antes das melhorias: 0,921
Agora: 0,985
Catalão
Antes das melhorias: 0,814
Agora: 0,957
Galego
Antes das melhorias: 0,895
Agora: 0,956
Basco
Antes das melhorias: 0,597
Agora: 0,921
Recall em todos os reais: antes e agora
  • Antes das melhorias
  • Agora
Inglês
Antes das melhorias: 0,832
Agora: 0,925
Francês
Antes das melhorias: 0,809
Agora: 0,960
Alemão
Antes das melhorias: 0,745
Agora: 0,985
Italiano
Antes das melhorias: 0,846
Agora: 0,899
Português
Antes das melhorias: 0,769
Agora: 0,870
Romeno
Antes das melhorias: 0,412
Agora: 0,855
  • Basco (0,597 → 0,921): moradas com o tipo de via depois do nome da rua («kalea», «hiribidea», «solairua»), assinaturas em maiúsculas, formas de tratamento como «andrea» e «jauna», e formas jurídicas como «S. Koop.» ou «Fundazioa».
  • Francês, alemão, italiano, português, inglês e romeno (o romeno, de 0,412 para 0,855): formas de tratamento antes do nome, composição dos tribunais, listas de nomes, o codice fiscale italiano, moradas e formas jurídicas de cada país.
  • Sem retrocessos: cada melhoria é testada com o corpus completo, por isso o que um idioma ganha não pode fazer outro perder.

O que falta melhorar

O que escapa hoje concentra-se em dois casos, visíveis sobretudo no valor de todos os reais:

  • Nomes mal lidos pelo OCR. Numa digitalização, um nome pode sair colado à palavra seguinte, partido com hífen no fim da linha ou com letras trocadas. Se o OCR não o lê como nome, a IA não o reconhece.
  • Nomes soltos sem contexto. Um apelido pouco comum numa lista, sem forma de tratamento, cargo ou verbo à volta, é difícil de distinguir de uma palavra qualquer. É o que mais separa os dois valores nos idiomas com o recall mais baixo em todos os reais.
  • No basco, juntam-se apelidos partidos com a declinação colada e nomes estrangeiros. O seu mínimo provisório de 0,92 só pode subir, até chegar aos 0,95 dos outros idiomas.

Entretanto, a resposta prática é a de sempre: a deteção automática propõe e uma pessoa revê antes de aplicar, sobretudo nas digitalizações. A anonimização visual por zonas cobre o que o OCR não consegue ler.

Corre em cada alteração da IA

Estes testes não são uma fotografia para o blogue. O corpus completo passa pela integração contínua em cada alteração da IA, antes de chegar à produção: extrai-se o texto (com OCR nas digitalizações), detetam-se os dados pessoais e compara-se com o esperado. Cada idioma tem um mínimo de recall e de precisão que só pode subir; uma alteração que fique abaixo não é integrada. Os números deste artigo saem desses relatórios e vamos atualizá-los quando mudarem.

Perguntas frequentes

O que significa um recall de 0,98?

Que em cada 100 dados pessoais presentes nos documentos a IA deteta 98. Os outros 2 têm de ser apanhados na revisão humana antes de aplicar a anonimização.

Porque é que o recall em todos os reais é mais baixo do que nos revistos à mão?

Porque a anotação automática só marca os nomes indicados pela publicação (juízes de um coletivo, relatores…), que muitas vezes estão em assinaturas digitalizadas ou em listas sem contexto, precisamente onde a deteção mais falha. Os revistos à mão medem o documento inteiro.

Algum documento do corpus é publicado?

Não. Só publicamos contagens e percentagens por idioma. Nenhum documento, texto, nome ou dado pessoal do corpus sai dos testes.

Fontes e legislação

  1. Diretiva (UE) 2019/1024 relativa aos dados abertos e à reutilização de informações do setor público (EUR-Lex)
  2. Decisão 2011/833/UE da Comissão relativa à reutilização de documentos da Comissão (EUR-Lex)