[quote=d34d_d3v1l]Galera, podem me ajudar a escolher algum algoritmo eficiente para obter similaridades entre nomes?
Existem vários :
[quote]L1 Distance (as known as City Block or Manhattan Distance);
Cosine Distance;
Dice Coefficient;
Euclidean Distance;
Hamming Distance;
Jaccard Coefficient;
Jaro Distance;
Jaro-Winkler Distance;
Levenshtein Distance;
Matching Coefficient;
Monge-Elkan Coefficient;
Needleman-Wunsch Coefficient;
Overlap Coefficient;
Q-Gram Distance;
Smith-Waterman Coefficient;
Smith-Waterman-Gotoh Coefficient;
Soundex Distance.[/quote]
Mas não faço ideia qual utilizar…
Eu preciso algo mais ou menos assim:
Input -> Marcu Noronha
Resultado -> Marco Túlio Jacovine Noronha
(vice versa)
Input -> Micaela T. J. N. Dos Reis
Resultado -> Mikaela Noronha Reis
Input -> Jordan Chavier
Resultado -> Gordan Xavier
e por aí vai…
Alguém tem mais experiencia com isso?
abraços[/quote]
Eu nunca mexi directamente com isso, mas me faram de um sistema que fazia isso para endereços.
O seu problema é que os algoritmos que listou são para frases onde as letras são as mesmas (ligeiramente alteradas no lugar, ou faltantes). Mas no seu caso vc quer algo fonético como Xavier e Chavier. Isto pode ser bem mais complicado.
Não tenho uma resposta para si, mas procure por algoritmos fonéticos. Dê uma olha aqui, eu achei um bom começo.