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:

  1. Manter a primeira letra.
  2. Para as letras seguintes, ignoram-se todas as vogais, assim como as letras y, h e w.
  3. 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.


  1. Letras com o mesmo código adjacente ou separadas apenas por y, h e w são codificadas em apenas um número.
  2. 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.