Avançar para a área de conteúdo

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Todas as informações enviadas são seguras.

  • Fechar [x]

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

  • Fechar [x]

IBM InfoSphere Global Name Recognition

Sidnei Milhomens Moreira, Client Technical Specialist, IBM
Possui mais de 20 anos de experiência em TI, tendo desenvolvido skills em análise e desenvolvimento de sistemas de gerenciamento empresarial e aplicações orientadas a objeto, modelagem de dados e processos, SOA e Master Data Management. Atualmente é especialista técnico para as soluções IBM InfoSphere: Global Name Recognition, Master Data management, Identity Insight e Traceability Server.

Resumo:  Este artigo oferece uma visão geral das tecnologias para pesquisa de nomes disponíveis, que vão desde sistemas de matching exato a sistemas analíticos de nomes.

Data:  01/Nov/2011
Nível:  Introdutório
Atividade:  222 visualizações
Comentários:  


Solução analítica de pesquisa e matching de nomes multiculturais

Nome é o meio mais importante de identificar uma pessoa e, de tão comum, nos leva a pensar que é fácil utilizar sistemas computacionais para pesquisa, análise e matching. Eles estão presentes em todas as culturas e sistemas de escrita existentes e apresentam uma série de desafios, como podemos verificar abaixo:

  • Não possuem padrões consistentes;
  • Possuem variações, abreviações e apelidos;
    Exemplos: Sydney / Sidnei / Sydnei, Francisco / Xico / Fco / Chico;
  • Podem conter títulos (Prof., Dr.), afixos (da, dos) e qualificadores (Filho, Neto);
  • Podem conter ruídos, erros de escrita, premeditados ou não;
    Exemplos: S^idnei Moriera, Joao da Silva2342.

Tudo isso já se constituiria um grande desafio para ser enfrentado por qualquer sistema computacional. Adicione, agora, os diversos sistemas de escrita em uso ao redor do mundo, como, por exemplo: o latino, cirílico, hangul (coreano), árabe e kana (termo utilizado para hiragana e katakana).

Esses diversos sistemas de escrita nos levam ao desafio da transliteração, que é a passagem de termos, textos e nomes de um sistema para outro. Exemplo: passar um nome no sistema de escrita hiragana para o sistema latino. A passagem especificamente para o sistema latino também é conhecido como romanização.

Transliteração é diferente de tradução! Vamos observar o exemplo a seguir: にっぽん, em hiragana, quando transliterado para o alfabeto latino, vira a palavra Nippon, que, quando traduzido para o português, significa Japão.

Pesquisar e recuperar nomes é uma tarefa desafiadora para qualquer sistema computacional. Outros atributos como telefone, número de documento e endereço possuem algum padrão e, portanto, não oferecem um desafio tão grande.

Nome é um atributo que exerce um papel importante em diversos casos de uso. Dentre eles, podemos enumerar os seguintes:

  • Verificação de nomes em Watch Lists para atendimento à requisitos regulatórios, combate a lavagem de dinheiro e segurança pública;
  • Recuperação de informações para análise de organismos de inteligência;
  • Recuperação de registros usando informação de nome, por exemplo: sistemas de reserva de passagem aérea, registros médicos e beneficiários de projetos sociais;
  • Operações de qualidade de dados para tratamento de inconsistência de nomes.

Então vamos entender, através de uma visão geral, como trabalham algumas das tecnologias para pesquisa de nomes, que vão desde sistemas de matching exato a sistemas analíticos de nomes.

Atualmente, qualquer pessoa, com um computador em mãos, tem fácil acesso a sistemas de matching exato (tais como Google ou Yahoo, ou aqueles presentes em planilhas e processadores de texto). Esse tipo de pesquisa geralmente é muito rápida e sempre certeira. Você obtém exatamente o que está procurando se (1) você sabe precisamente o que está procurando, e (2) se exatamente o que está sendo procurado encontra-se na fonte pesquisada. Esta característica expõe uma desvantagem desse tipo de tecnologia de pesquisa. Então, por exemplo: se o nome a ser procurado é WALTER, e WALTER está presente na lista de dados, o registro será encontrado. Porém, se a fonte de dados possuir VALTER, em vez de WALTER, o registro não será encontrado.

Dicionários de nomes, ou listas lookup, podem ajudar a atenuar algumas das deficiências dos sistemas de matching exato. Para resolver o problema acima, basta associar WALTER a VALTER em um dicionário de nomes. Listas lookup são particularmente úteis para capturar informações não previsíveis, tais como apelidos: BETO para ROBERTO ou SASHA para ALEXANDER (em russo).

Apesar de sua utilidade, dicionários de nomes não cobrem as deficiências dos sistemas de matching exato. Se os nomes não forem exatos e não estiverem na lista lookup não serão recuperados ou encontrados.

Outro tipo de tecnologia de pesquisa de nomes diz respeito aos sistemas computacionais baseados em chave, tais como Soundex e NYSIS. Esses sistemas são ineficientes e pouco precisos, produzindo uma grande quantidade de falso positivos e falso negativos. Mesmo assim alguns deles estão presentes em diversos softwares comerciais. Diversos sistemas gerenciadores de banco de dados utilizam ou disponibilizam recursos baseados em Soundex.

O Soundex é provavelmente o sistema baseado em chaves mais comum. Ele foi desenvolvido para analisar dados do senso americano e recebeu a primeira patente em 1918. Como suas patentes encontram-se expiradas, qualquer um pode implementá-lo gratuitamente.

Esses sistemas associam códigos aos nomes e são usados para agrupar nomes similares. Procurar por um nome com um código particular resulta em trazer todos os nomes com o mesmo código.

A tabela Soundex e alguns exemplos de nomes com seus códigos correspondentes são apresentados abaixo:

Letra Código
B,F,P,V 1
C,G,J,K,Q,S,X,Z 2
D,T 3
L 4
M,N 5
R 6
H,Y,W Omite
A,E,I,O,U Omite
Nome Letras Significativas Código Soundex
a. Anderson A + NDR A536
b. Jones
James
J + NS
J + NS
J520
J520
c. Smith
Smythe
Shmidt
Shandey
S + MT
S + MT
S + MD
S + ND
S530
S530
S530
S530
d. Xiang
Hsiange
e. Ghassan
Rhassan
X + NG
H + SNG
G + SN
R+ SN
X520
H252
G250
R250
f. Gomez
Bomez
G + MZ
B + MZ
G520
B520
g. Santiago
Schmitz
S + NTG
S + MTZ
S532
S532

O código Soundex possui 4 caracteres. Basicamente, ele é formado pela primeira letra do nome mais o código dos três próximos dígitos que representam as três consoantes restantes do nome. As vogais e as consoantes W, Y e H são ignoradas, a menos que sejam a primeira letra do nome.

Se houver menos que três letras significativas, o código Soundex é preenchido com zeros, como ilustrado no caso JONES/JAMES.

No exemplo acima, ANDERSON começa com A e as próximas três consoantes são N,D e R. Esta combinação produz o código A536. Note que S e N de ANDERSON são ignorados. Letras com sons similares normalmente recebem o mesmo código, como no caso de T/D e M/N.

Quando duas letras significativas estão juntas, somente uma prevalece para a montagem do código, pois não é permitido que o mesmo número apareça em sequência, como em SHMIDT e SCHMITZ. No primeiro, D e T recebem o número 3, portanto somente o D é mantido como letra significativa; no segundo, S e C recebem o número 2, mantendo-se somente o S como significativa para geração do código Soundex.

A grande desvantagem de Soundex é que nomes muito diferentes podem receber o mesmo código, como nos exemplos acima JONES / JAMES, SMITH / SHANDEY e SANTIAGO / SCHMITZ, caracterizando falso positivo. Segundo o artigo "An Assessment of Name Matching Algorithms" de A.J.Lait e B.Randell de 1996, em média Soundex retorna 63% de falso positivo, que são os matches indesejados e "perde" 30% dos matches desejados, que é o falso negativo.

Além disso, nomes que são variantes um do outro, mas que não possuem o mesmo código Soundex, jamais serão encontrados. Por exemplo, XIANG e HSIANG são variantes do mesmo nome Chinês, porém possuem código Soundex diferentes entre si. E, finalmente, o par GOMEZ / BOMEZ poderia não ser encontrado por um sistema baseado em chave, já que esses sistemas não sabem lidar com erros tipográficos.

O terceiro tipo de tecnologia abordado neste artigo é conhecido como sistema analítico de nomes, onde o IBM Global Name Recognition está inserido. Em um sistema analítico, o nome pesquisado é comparado a cada nome na lista de dados, e uma nota de similaridade entre eles é calculada. Aqueles que atingem um determinado grau de similaridade, definido pelo usuário, são retornados como resultado da consulta. A especificação deste nível de similaridade ou nota de corte, ocorre após a execução de um processo iterativo, onde os usuários, submetem pesquisas, avaliam o resultado, fazem seu julgamento e ajustam o sistema para que obtenham o que consideram um bom matching.

A figura abaixo ilustra, hipoteticamente, o grau de similaridade existente entre SMITH e os demais nomes, utilizando uma técnica conhecida como fuzzy matching.


Figura 1.

"Fuzzy Matches" em um Sistema Analítico de Pesquisa de Nomes

O IBM InfoSphere Global Name Recognition (GNR) é um sistema analítico de pesquisa e matching de nomes multiculturais de pessoas e organizações. Ele possui conhecimento linguístico e é apoiado por uma base de conhecimento composta por quase 1 bilhão de nomes de todo o mundo, das mais diferentes culturas, presentes em mais de 200 países.

Com sua base de conhecimento o GNR é capaz de identificar variações de nome, frequência com que determinado nome aparece em cada cultura, probabilidade de ser masculino ou feminino, efetuar transliteração e normalização.

Além disso, ele interpreta e categoriza cada elemento do nome em título, nome, sobrenome e qualificador, possibilitando separar seus elementos mais significativos dos menos significativos, calculando a nota de similaridade com maior eficiência, conforme ilustra a figura abaixo.


Figura 2.

Interface GNR para demostração das funcionalidades de análise e matching de nomes

Vizualização maior da figura 2.

A figura acima ilustra que o nome pesquisado (1) é encontrado na lista de dados (4) com o nível de similaridade de 74 % (3).

Outra informação importante é que o nome (1) é analisado e categorizado pelo GNR (2).

Nesta análise (2), GNR identifica, no nome pesquisado, a presença de um título (DR) e um qualificador (JR). Como esses elementos não são considerados nome ou sobrenome, são configurados com pouca significância no momento da comparação de nomes.

Ainda na análise (2) percebemos que o GNR categoriza automaticamente elementos de nome e sobrenome.

A indentificação e categorização completa dos nomes de pessoas e empresas efetuada pelo GNR é ilustrado nas figuras abaixo:


Figura 3.

Categorização dos elementos de nome de indivíduos


Figura 4.

Categorização dos elementos de nome de empresas

Esses elementos ou tokens possuem nível de importância distintos, e apesar da configuração padrão GNR já vir otimizada para matching de nomes em diferentes culturas, ele permite ajuste fino em seus parâmetros, dando condições ao cliente definir seu melhor nível de matching.

Cada uma das tecnologias de pesquisa de nomes abordadas neste artigo possui áreas de maior ou menor afinidade, e escolher qual delas utilizar depende das requisitos específicos de cada negócio, enquanto há situações onde a precisão em encontrar nomes é crucial, por questões de segurança ou financeira, há outras onde há algum nível de tolerância para falso positivos e negativos.

Sendo assim, não cabe dizer que uma tecnologia é melhor ou pior que outra, e sim, que tecnologia é mais adequada para atender a uma necessidade específica.

Glossário de Termos

Falso positivo: Esse é um termo utilizado em diversas situações, porém no contexto deste artigo, significa que a pesquisa encontrou e/ou recuperou registros indesejados, que não batiam com o argumento pesquisado.

Falso negativo: No contexto deste artigo, esse termo indica que a pesquisa não encontrou e/ou retornou os registros devidos, apesar desses registros estarem presentes na fonte de dados e baterem com o argumento de pesquisa.

Watch List: Nome genérico e muito utilizado para referenciar uma lista com nomes ou registros de interesse. Essas listas podem ser públicas ou privadas, gratuitas ou não. Exemplo: lista da Interpol, OFAC, WorldCheck.

Fuzzy matching: Enquanto no matching exato só o nome ou a setença exata são retornados, no fuzzy são retornados os registros que possuem um nível mínimo de similaridade, que pode ser configurada na aplicação.

Bibliografia:

http://pt.wikipedia.org/wiki/Sistema_de_escrita

http://pt.wikipedia.org/wiki/Kana_%28escrita%29

http://en.wikipedia.org/wiki/Soundex

http://resources.rootsweb.ancestry.com/cgi-bin/soundexconverter (Conversão Soundex)

http://www.censusmicrofilm.com/sndxrule.htm (Regras para conversão Soundex)

http://en.wikipedia.org/wiki/No_Fly_List

http://whatis.techtarget.com/definition/0,,sid9_gci1075268,00.html

http://www.techopedia.com/definition/24183/fuzzy-matching


Sobre o autor

Sidnei Milhomens Moreira

Possui mais de 20 anos de experiência em TI, tendo desenvolvido skills em análise e desenvolvimento de sistemas de gerenciamento empresarial e aplicações orientadas a objeto, modelagem de dados e processos, SOA e Master Data Management. Atualmente é especialista técnico para as soluções IBM InfoSphere: Global Name Recognition, Master Data management, Identity Insight e Traceability Server.

Ajuda para Relatar Abuso

Relatar abuso

Obrigado. Esta entrada foi sinalizada para atenção do moderador.


Ajuda para Relatar Abuso

Relatar abuso

Falha no envio do Relatório de abuso. Tente novamente mais tarde.


developerWorks: Registre-se


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Selecione seu nome de exibição

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

(Deve possuir de 3 a 31 caracteres.)


Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Classificar este artigo

Comentários

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Information Management
ArticleID=777581
ArticleTitle=IBM InfoSphere Global Name Recognition
publish-date=11012011

Conheça a IBM da sua cidade

Virtual Branch Office Brasil

A IBM está mais perto do que você imagina!


Tags

Help
Use o campo de pesquisa para encontrar todos os tipos de conteúdo no My developerWorks com essa tag.

Use a barra de rolagem para ver mais ou menos tags.

Tags populares mostra as principais tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Minhas tags mostra suas tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Use o campo de pesquisa para localizar todos os tipos de conteúdo no Meu developerWorks com essa tag. Tags populares mostra as tags principais para essa zona de conteúdo particular (por exemplo, tecnologia Java, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere). Minhas tags mostra as suas tags para essa zona de conteúdo em particular (por exemplo, tecnologia Java, Linux, WebSphere).