Duas fichas,
uma só pessoa.

Um exemplo com moradas de Portugal: duas fichas escritas de forma diferente, e porque são a mesma pessoa.

Com uma conta gratuita trabalha com as suas próprias moradas, de qualquer país: a partir do site, de um ficheiro ou da API. Registe-se ou inicie sessão.

Ficha A

Ficha B

Os exemplos usam moradas de edifícios públicos e ruas do centro; os nomes, quando aparecem, são inventados para fins de demonstração: qualquer semelhança com pessoas reais é mera coincidência.

Duas fichas, uma só pessoa

Um duplicado não é um registo a mais para apagar: é a história de uma pessoa partida em duas. Voltar a juntá-la produz quatro efeitos concretos.

Responder uma só vez, e com conhecimento de causa

Quem responde olha para uma ficha: se a encomenda está registada na outra, essa pessoa não recebe nada — e dá por isso. Com uma só ficha a confirmação parte sempre, e a comunicação chega uma vez: não duas para a mesma morada, talvez com o nome escrito de duas maneiras diferentes.

Cada envelope a mais é dinheiro deitado fora

Um duplicado é uma impressão, um envelope e um selo pagos por uma pessoa que a sua comunicação já alcançou. Numa campanha de volume é a despesa mais fácil de cortar: nem um destinatário a menos, só os envios que fazem falta.

Reconheça quem vale mais

Quem comprou três vezes numa ficha e duas na outra aparece nos relatórios como dois contactos mornos em vez de um fiel. Reunindo as fichas a história volta a ficar inteira, e muda quem vale a pena contactar, a quem reservar um tratamento diferente, a quem propor mais.

As contas batem certo

Quantos clientes tenho de facto? Quanto vale em média um contacto? Com uma base de dados cheia de duplicados cada resposta está inflacionada, e as decisões que dela decorrem nascem viciadas. Antes de analisar, é preciso contar bem.

Não são erros de distração

Os duplicados nascem de três situações correntes, que se repetem em qualquer base de dados destinada a crescer.

1

A encomenda chega e há pressa

Quem regista tem uma pilha de formulários para despachar (ou de talões de pagamento, numa associação) e não se detém a verificar se aquela pessoa já está na base. Abrir uma ficha nova leva trinta segundos; procurá-la a sério, entre as variantes do nome e da morada, leva muito mais tempo.

2

A ficha existe, mas a pesquisa não a encontra

É o caso mais frequente e o mais difícil de evitar: a ficha existe, mas está escrita de forma ligeiramente diferente da que se procura — «Via Giovanni Pascoli 4» contra «Pascoli», «V.le» contra «Viale». A pesquisa não devolve nada, e a ficha é criada de novo de boa-fé.

3

Entra uma lista inteira

As inscrições no site, uma lista recolhida num evento, um ficheiro de um fornecedor: entram em bloco sem serem confrontados com a base existente. Acontece menos vezes do que os outros dois casos, mas quando acontece os duplicados entram às centenas.

Os três resolvem-se da mesma maneira: uma verificação da base a intervalos regulares, e uma antes de cada campanha importante.

Primeiro corrigimos, depois comparamos

Comparar duas fichas palavra a palavra não leva longe: Daniela e Dany são a mesma pessoa, V. Roma 12 e Via Roma, 12 são a mesma morada, e nenhuma comparação literal dá por isso. Por isso trabalhamos em dois tempos: primeiro corrigimos as duas moradas — rua por extenso, código postal certo, localidade certa — e só depois as comparamos, juntamente com o nome, o email e o telefone. Duas grafias da mesma rua tornam-se a mesma rua antes de a comparação começar.

O resultado não é um sim ou um não. Quando o veredicto não é claro, dizemo-lo — certo, provável ou ambíguo, com o motivo ao lado: duas pessoas diferentes podem ter o mesmo nome na mesma localidade, e juntar duas fichas continua a ser uma decisão sua, a tomar sabendo em que se baseia.

Normalização, deteção de duplicados, desduplicação, enriquecimento

Quatro operações diferentes, que normalmente acabam todas debaixo da palavra «limpeza». Distingui-las é útil, porque cada uma é o pressuposto da seguinte.

Normalização

Reduzir cada morada a uma escrita única e correta, completando o que falta: o código postal, a província, o nome da rua por extenso.

«Via S. Caterina 20» e «Strada Santa Caterina 20» tornam-se a mesma linha.

Deteção de duplicados

Reconhecer que duas fichas são o mesmo sujeito mesmo quando escritas de forma diferente: «V. Roma 12» e «Via Roma 12», Dany e Daniela, apelido e nome próprio trocados.

Vem depois da normalização, e não por acaso: sem ela, compara cadeias de texto em vez de moradas.

Desduplicação

Decidir o que fazer com os duplicados encontrados: que ficha manter, que campos tirar de uma e quais da outra.

O duplicado não se deita fora: integra-se, e fica registado de onde vem cada informação.

Enriquecimento

Acrescentar o que falta ou o que se pode deduzir do que existe: a fórmula de saudação a partir do nome, o título, o sufixo do número de porta, o código fiscal.

Dados que ninguém lhe deu, mas que a sua base de dados já contém de forma implícita.

Porque conta, para além da limpeza: quem recebe duas vezes a mesma carta repara, e quem não recebe o agradecimento porque o donativo estava registado numa ficha enquanto olhava para a outra repara ainda mais.

Escolhe a precisão da comparação, nós dizemos-lhe quão seguros estamos

Não lhe pedimos que decida que fichas juntar: isso fazemo-lo nós, e para cada grupo dizemos com que grau de certeza. O único botão é a precisão da comparação, isto é, quão diferentes duas fichas podem ser e continuar a ser o mesmo sujeito. Três valores: a partir do site e dos ficheiros usa-se o predefinido, a partir da API escolhe-se com livello_minimo. Não confundir com a precisão da normalização da morada, que é outra coisa e tem cinco níveis.

1 · uguale

Precisão estrita

Nome e morada coincidem depois da normalização. Nenhum grupo que não tivesse feito à mão.

2 · poco diverso

O valor predefinido

Entram as variantes do mesmo nome (Dany e Daniela), as abreviaturas e as pequenas gralhas. É a configuração com que corre a maior parte dos trabalhos.

3 · diverso

Precisão larga

Também as ligações fracas: mesma morada e nomes parecidos. Encontra mais, e tem de rever mais.

O veredicto devolvido para cada grupo — certo, provável, ambíguo — é a nossa classificação, não uma escolha sua: diz quão sólido é o grupo, e serve para decidir o que pode aceitar de olhos fechados e o que vale a pena rever.

O duplicado não se deita fora: funde-se

É a diferença que conta. Quem desduplica normalmente mantém uma ficha e descarta a outra — e com a outra descarta o email que só lá estava. Nós construímos um registo novo tirando de cada uma o melhor campo.

Exemplo de fusão de duas fichas: que campo fica e de onde vem
CampoFicha AFicha BRegisto que fica
Nome próprioDany RossiRossi DanielaDaniela Rossi forma canónica, campos repostos no seu lugar
Moradav. leopardi 4, milanoVia G. Leopardi 4, MilanoVia Giacomo Leopardi 4 da ficha mais completa
Código postal e localidade—Milano20123 MILANO MI completado na normalização
Emaildany.rossi@gmail.com—dany.rossi@gmail.com só existia em A
Telefone—347 032 89593470328959 só existia em B

Mantendo A teria perdido o telefone, mantendo B o email. O registo fundido tem os dois, e para cada campo fica registado de que ficha vem: se um dia a fusão não o convencer, sabe exatamente onde mexer.

Os mesmos duplicados que escapam a uma pesquisa exata

  • Dany Rossi=Daniela Rossi nome equivalente
  • Rossi Mario=Mario Rossi apelido e nome próprio trocados
  • V. Roma 12=Via Roma 12 abreviatura por extenso
  • Rossi Daniela, via leopardi 4, milano=Daniela Rossi, Via Giacomo Leopardi 4, 20123 MILANO MI morada corrigida antes da comparação

Reconhecemos também uma gralha no apelido; o título antes do nome, que não conta na comparação (Dott.ssa Maria Bianchi é a mesma pessoa que Maria Bianchi); e o lugar reconduzido ao seu município, porque Sampierdarena é um bairro de Génova.