Algorítimo

3 respostas
J2Alex

Bem pessoal,

Me desculpem se eu estiver colocando esta mensagem no local errado, mas foi o que achei que mais precisamente se encaixava em minha questão.

O problema não é especificamente sobre java, mas sobre um algorítimo que preciso implementar.

É o seguinte: preciso implementar uma solução que me diga que determinados dados possam ser os mesmos e sugira isso. Acho que um exemplo pode explicar melhor:

Maria Aparecida da Silva e Maria Ap. da Silva e Maria A. Silva

podem ser a mesma pessoa ou ainda

Dr. Antonio Carlos Pedroso e Antonio C. Pedrozo

também podem ser a mesma pessoa.

Preciso de um algorítimo que resolva isso de forma inteligente - não determinando que as pessoas são as mesmas, mas SUGERINDO isso ao usuário. Ah… na verdade poderá ( ou não ) haver mais campos relacionados nessa decisão.

Alguém tem alguma idéia?

3 Respostas

cv1

Aqui vai uma idéia, longe de estar completa:

  • Identifique e remova as partes pouco interessantes da String (pontuacao, acentuacao, espacos duplicados)

  • Troque 's’s e 'z’s por um caractere qualquer ($, por exemplo). Faca o mesmo com 'x’s, 'ch’s, etc

  • Compare as duas Strings

Ou então…

  • Calcule um ‘score’ para a String, somando pontuacao a cada caracter igual na mesma sequencia da String original, e determine uma ‘nota de corte’ para saber quando a String passa a nao ter relacao nenhuma com a original
Marques

Alexandre,

O Incor desenvolveu uma api sobre pesquisa fonética que me ajudou bastante. Funciona basicamente da seguinte forma:

os sons das palavras (em português) são transformados em um código e a partir daí vc faz as suas pesquisas. Muito interessante.

Procure por pesquisa fonética no google.

Espero ter ajudado,

Marques

Paulo_Silveira

Ricardo Baesa, da universidade do Chile, desenvolveu papers EXATAMENTE sobre esse assunto.
Sao algoritmos bem sofisticados e complicados. Usando " primos" dos BLAST e FAST para o match de genes.

matchsimile.com.br, faz EXATAMENTE isso, usando o algoritmo chileno. ele faz das formas mais loucas possivel, igual qdo vc faz pesquisa genetica com o BLAST e tal.

tipo.

“Paulo Eduardo Silveira” ele acharaia em " Paaulo E. Silva"

Repare que Silva e Silveira sao BEM diferentes. E voce pode fazer o fine tuning.

Criado 12 de abril de 2003
Ultima resposta 12 de abr. de 2003
Respostas 3
Participantes 4