quinta-feira, outubro 01, 2009

Metaphone em português para Java

Custou um pouquinho para achar um banco com nomes para testar e acertar as rebarbas, mas finalmente está aí: codificação fonética em Metaphone para português (http://github.com/ruliana/MTFN) :) Se você quiser saber do que estou falando: http://en.wikipedia.org/wiki/Metaphone e http://www2.varzeapaulista.sp.gov.br/metaphone. Muito simples de usar, muito simples de customizar e vem com um banco de dados de teste, cortesia do Marco "Kiko" Carnut (http://www.postcogito.org/) e seu trabalho sobre descobrir o sexo da pessoa somente pelo nome (http://www.postcogito.org/Kiko/PlanilhaMascFemPtBr.html, trabalho muito legal, vale a pena conferir!) Só que, com a massa de testes e estudando um pouco melhor a fonética da língua portuguesa, deu pra perceber que a coisa pode ser melhorada. Como por exemplo, considerar "P" e "B" como equivalentes, assim como "M" e "N". Desconsiderar algumas consoantes nos finais dos nomes e assim por diante. Optei primeiro por liberar um algoritmo bastante similar àquele que me baseei, que já é muito bom! Agora começo a refiná-lo com meus próprios "achismos". Vamos ver no que vai dar. ;)

4 comentários:

  1. eu acho interessante mobilizar os interessados no metaphone para discutir uma estratégia de algoritmo.
    No último debate feito com o pessoal de Várzea Paulista chegamos ao consenso que seria preciso 2 a 3 tipos de algoritmos:
    1- Estrito. Ficaria preso à fonética gramatical como ela é. Dá problema com nomes de pessoas e estrangeirismos.
    2- Adequações básicas. Assumir P e B são semelhantes o suficiente? Considerar alguns casos de L como som de U?
    3- Flexível. Esse nível pode tudo que tenha fonética semelhante. A ordem é agrupar ao máximo por similaridade e menos restrição gramatical, talvez incluindo alguns estrangeirismos de forma mais abrangente que no nível 2.

    Quanto ao nível 1), é fácil, basta seguir a gramática. E quanto aos outros, que são necessários para o dia-a-dia?

    ResponderExcluir
  2. Baseado nas nossas experiências práticas e teóricas, montamos um artigo sobre o Metaphone para o Português, onde a ideia principal era verificar a melhora global do metaphone comparado a outras técnicas existentes e comumente usadas.

    Isso permite no futuro ter referência para avaliar se mudanças como misturar P e B em uma única chave fonética são interessantes ou não.

    http://dl.acm.org/citation.cfm?id=2238726

    ResponderExcluir
  3. Anônimo9:09 AM

    Fiquei muito interessado no artigo! Existe alguma versão pública?

    ResponderExcluir
  4. Olá.
    Meu nome é Ronaldo e eu gostaria de desenvolver uma ferramenta baseada em Metaphone. caso leia este email, por favo, entre em contato: ronaldovfilho@gmail.com

    ResponderExcluir