2 Recursos preparatórios para fazer um linkage
Veremos a seguir o método de blocagem, o uso de algoritmos fonéticos como o soundex e para otimizar seu linkage ou tornar a acurácia do seu relacionamento entre quaisquer bancos de dados maior.
2.1 Blocagem
A blocagem ou blocking consiste em criar blocos lógicos de registros dentro de arquivos a serem relacionados. Nela se faz a comparação utilizando blocos de registros mutuamente exclusivos, criados, para os dados que serão cruzados comparando apenas os registros contidos dentro de cada bloco correspondente. Esta estratégia tem como objetivo minimizar o tempo de processamento, assim como aumentar a probabilidade de que correspondências corretas sejam encontradas.
Parece complexo, não é mesmo? Imagine que você necessita comparar dois bancos de dados com 1 milhão de registros cada um. Para que cada registro seja comparado com o registro do outro banco, a análise fará 10^12 pareamentos de registros, consumindo um tempo de análise bastante considerável. Você ficaria muitos minutos ou até mesmo horas aguardando o processamento deste cruzamento.
Uma alternativa para realizar os cruzamentos de forma mais fácil é
escolhendo as variáveis para blocagem, em geral os mais comuns,
como a variável sexo
. Ou seja, ao se comparar apenas
indivíduos do mesmo sexo, você diminuirá consideravelmente o número de
combinações a serem analisadas e, consequentemente o tempo do
processamento.
Outra estratégia de blocagem é a comparação apenas de primeiros nomes
que se iniciem com a mesma letra ou que possuam fonemas similares,
programando o R
para processar os bancos por blocos de
registros otimizando os cruzamentos.
2.2 Algoritmos fonéticos
Algoritmos fonéticos são algoritmos que permitem a comparação de palavras diferentes com base nos fonemas associados a eles, ao invés dos caracteres em si. Isto permite que palavras de pronúncia semelhante tenham uma maior probabilidade de serem associadas, aumentando a chance de que correspondências entre registros sejam encontradas.

Algoritmo é entendido aqui como um conjunto de regras e procedimentos lógicos definidos que levam à solução de um problema executando etapas.
Para saber mais acesse a Wikipedia aqui
Para compreendermos melhor considere os seguintes nomes: “Mariana”, “Maryane” e “Martina”. Embora, em comparação ao primeiro nome, o segundo e o terceiro nomes tenham duas letras de diferença, a pronúncia de “Maryane” é muito mais próxima em relação “Mariana” do que “Martina”. Uma comparação mais refinada entre estas palavras pode ser realizada por algoritmos fonéticos.
A seguir, veremos um dos algoritmos fonéticos mais utilizados: o soundex.
2.2.1 Soundex
O soundex é o algoritmo que transforma cada palavra em um código de formato específico, formado por uma letra e três números. A primeira letra será sempre a primeira letra da palavra e os códigos numéricos, por sua vez, representam letras que possuem pronúncias semelhantes.
As regras para conversão de um soundex seguem as seguintes etapas a seguir:
- Manter a primeira letra.
- Para as letras seguintes, ignoram-se todas as vogais, assim como as
letras
y
,h
ew
. - E as consoantes remanescentes são convertidas de acordo com a Tabela 2.
Tabela 2: Códigos e consoantes transformados pelo algoritmo fonético soundex.
- Letras com o mesmo código adjacente ou separadas apenas por
y
,h
ew
são codificadas em apenas um número. - Se ao final da conversão existirem três ou mais números, o código
0
é adicionado até que se atinja três números. Caso exista um número maior do que três, apenas os três primeiros números são mantidos.
Veja o exemplo de algumas transformações utilizando o algoritmo soundex:
Tabela 3: Exemplos de transformações de nomes utilizando o algoritmo fonético soundex.

Atenção
É importante se atentar que o código original de soundex foi desenvolvido para o idioma inglês, de modo que a utilização deste código para nomes de outros idiomas, com o português, deve ser analisada com cuidado.