Kompliance/MatchCode Conhecer o MatchCode →
Resolução de identidade

Um LIKE não resolve identidade

Por que o seu sistema cadastra a mesma pessoa cinco vezes — e o que 25 anos de motor fonético fazem a respeito.

Kompliance · MatchCode

Dez pedidos de cartão chegam no mesmo dia. Dez nomes ligeiramente diferentes. O mesmo endereço, escrito de dez maneiras. Para o sistema transacional, são dez clientes. Para o time de prevenção, é um vínculo só — desde que alguém consiga enxergá-lo.

Esse é o problema que quase todo banco de dados corporativo tem e quase nenhum resolve: a mesma entidade existe escrita de formas diferentes, e a busca exata não as conecta. "José", "Jose", "J. Carlos". "Sylva", "Silvha". "Av. Brig. Faria Lima" e "Avenida Brigadeiro Faria Lima". Um LIKE '%silva%' não junta "Sylva"; um = não sabe que duas grafias são a mesma avenida. Esses operadores comparam caracteres, não identidade.

A ideia: reduzir a entidade a um código estável

A saída não é comparar texto com texto — é transformar cada nome e cada endereço em um código fonético e ortográfico estável. A regra é uma só: a mesma entidade gera o mesmo código, independente da grafia. Resolvida a identidade em código, deduplicar, reconciliar entre sistemas e cruzar vínculos vira comparação de chaves, não de strings.

Parece simples. Não é. E a melhor forma de mostrar por quê é com dados reais.

Prova 1 — um endereço, dezessete grafias

Pegamos uma avenida real de São Paulo e a escrevemos como ela aparece numa base de verdade: com abreviação, acento, "Luiz" com z, o "Engenheiro" do nome oficial, iniciais, pontuação e até erro de digitação no sobrenome.

Avenida Luís Carlos Berrini AV LUIS CARLOS BERRINI Av. Luiz Carlos Berrini Av L C Berrini Avenida Engenheiro Luis Carlos Berrini Av Luis Carlos Berini + 11 outras
17 grafias → BRN L

Dezessete grafias diferentes. Um único código.

Agora a parte honesta, que separa um motor sério de um truque de demonstração: nem tudo colapsa, e isso é proposital. "Av Berrini" sozinho gera BRN; "Av Carlos Berrini" gera BRN C. São formas mais curtas ou com outro nome — o motor as trata como distintas. Mas observe: elas compartilham o prefixo BRN. O código não é um veredito final; é uma chave de agrupamento. Quem decide identidade combina esse código com CEP, telefone e documento, e uma camada de proximidade (distância de edição) reconcilia os quase-iguais. Toda resolução de identidade séria tem dois estágios — uma chave barata que agrupa candidatos, e uma comparação fina que decide. Quem promete que uma chave só resolve tudo está vendendo demonstração, não engenharia.

Prova 2 — uma pessoa, onze grafias

O mesmo nome completo como ele chega numa base real:

Carlos Alberto da Costa e Silva Karlos Alberto da Costa e Silva Carlos Alberto da Kosta e Silva Carlos Alberto da Costa e Sylva Carlos Alberto da Costa e Silvha Carlos A. da Costa e Silva Carlos A. da C. e Silva + 4 outras
11 grafias → SLV CRLE

Onze grafias. Um código.

E o limite, de novo dito na cara: uma chave grosseira pode colidir — dois nomes diferentes podem cair no mesmo código. É por isso que ela é um passo de bloqueio, não a resposta. O ganho não é "nunca errar"; é transformar um problema de comparação de N×N strings num problema de agrupar candidatos por chave e comparar só dentro do grupo. Em escala corporativa, é a diferença entre viável e inviável.

Por que isso leva 25 anos, e não uma tarde

Qualquer pessoa escreve, numa tarde, a versão que acerta os 80% fáceis: tira acento, põe em maiúscula, compara. O problema mora nos 20% restantes — e eles são implacáveis. Rodovias em que "PR" não é o estado e "453" não é o número da casa. Títulos colados como "DR.MONTEIRO". O "Engenheiro" que está no nome oficial da avenida e em nenhum cadastro. Formas como PÇA, TRAV, AVDA. Equivalências fonéticas do português que não existem em inglês.

Cada um desses casos é uma regra. O valor não está no algoritmo — está nas regras acumuladas de grafia, endereço e fonética brasileira, lapidadas em operações reais de grande volume ao longo de duas décadas e meia. É o tipo de ativo que não se reescreve do zero; se compra pronto.

O que ele é, concretamente

Três funções, um núcleo: uma gera a chave de identidade a partir de nome, endereço e documento; outra deduz sexo ou pessoa jurídica a partir do nome; a terceira separa e normaliza endereço em texto livre, devolvendo tipo, logradouro, número e o código do logradouro. O motor é standalone — Python puro sem dependências, ou classe Java sobre o JDK, ou a DLL nativa de origem. Roda dentro do seu sistema; não exige plataforma, não exige enviar dado para fora.

Onde isso entrega valor: deduplicação de cadastro; antifraude de endereço e nome (reconhecer que um dado informado é variação de um da lista de bad address / bad names, mesmo reescrito para escapar do filtro); reconciliação de identidade entre sistemas sem chave forte; e reconhecimento por nome falado no atendimento.

Para quem constrói software

O MatchCode é o motor de resolução de identidade da Kompliance — vendido separadamente, para você embutir no seu sistema, em Python, Java ou via API. Conversa de engenheiro para engenheiro.

Conhecer o MatchCode