Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pesquisa Fonetica

Pesquisa Fonetica

Aplicando o algoritmo BuscaBr

Palestra feita no RS on Rails 2011

Gabriel Sobrinho

October 02, 2011
Tweet

More Decks by Gabriel Sobrinho

Other Decks in Programming

Transcript

  1. FONÉTICA “A Fonética é o ramo da Linguística que estuda

    a natureza física da produção e da percepção dos sons da fala humana. Preocupa-se com a parte significante do signo linguístico e não com o seu conteúdo” - Wikipédia
  2. ALGORITMOS • soundex - Robert C. Russell (1918) • metaphone

    - Lawrence Philips (1990) • buscabr - Fred Jorge Tavares de Lucena (2007)
  3. ALGORITMO BUSCABR • “Busca Fonética em Portugês do Brasil” por

    Fred Jorge Tavares de Lucena - Unibratec (2007) • “Implementos em Mecanismo de Busca por Semelhança Sonora” por Marcos Rodrigues Caso - UNICID (2010) • “fonetica” por Gabriel Sobrinho (2011)
  4. ALGORITMO BUSCABR • Converter para maiúsculo • Remover acentuação •

    Substituir letras conforme tabela • Eliminar M, R e S no final das palavras • Eliminar todas as vogais e o H
  5. TABELA ORIGINAL DO BUSCABR De Para De Para De Para

    BL, BR B L R RT T CA K N, MD M RM SM CE, CI S MG G RJ J CO, CU, CK K MJ J ST, TR, TL T Ç, CH S PH F TS S CT T PR P W V GE, GI J Q K X S GM M RG G ST T GL, GR G RS S Y I Z S
  6. MELHORIAS DO MARCOS CASO • Desconsiderar caracteres especiais como hífen

    e apóstrofo; Exs.: Ca’doro, Sant’Ana, caça-palavras, ex-namorado • Tratar os encontros de consoantes cujas palavras possuam PT (assim como na utilização do “C” antes do “T”, onde o “P” e o “C” são mudos)
  7. MELHORIAS DO MARCOS CASO • Considerar o erro fonético e

    sintático, em que a terminação “lha” pode ser confundida com “lia” • Acrescentar as terminações fonéticas “AO”, “AM” e “ON”, à verificação da terminação “ÃO” • Considerar no início das palavras que empregam a consoante “W”, cuja sonoridade seja idêntica a da vogal “U”.
  8. MELHORIAS DO MARCOS CASO De Para De Para De Para

    BL, BR B CA, CO, CU, CK, Q K CT, RT, ST, TR, TL, PT T PH F AO, AUM, GM, MD, N, OM, ON M U, W V GL, GR, MG, RG G PR P RM SM Y I L R GE, GI, RJ, MJ J CE, CI, Ç, CH, RS, TS, X, Z S
  9. FONETICA NA PRÁTICA ruby-1.9.2-p180 :001 > 'batista'.foneticalize => "BT" ruby-1.9.2-p180

    :002 > 'baptista'.foneticalize => "BT" ruby-1.9.2-p180 :003 > 'felipe'.foneticalize => "FRP" ruby-1.9.2-p180 :004 > 'philipe'.foneticalize => "FRP"
  10. FONETICA NA PRÁTICA ruby-1.9.2-p180 :001 > 'batista'.foneticalize => "BT" ruby-1.9.2-p180

    :002 > 'baptista'.foneticalize => "BT" ruby-1.9.2-p180 :003 > 'felipe'.foneticalize => "FRP" ruby-1.9.2-p180 :004 > 'philipe'.foneticalize => "FRP" ruby-1.9.2-p180 :005 > 'wagner'.foneticalize => "VM" ruby-1.9.2-p180 :006 > 'vagner'.foneticalize => "VM"
  11. FONETICA NA PRÁTICA ruby-1.9.2-p180 :007 > 'aspas'.foneticalize => "SP" ruby-1.9.2-p180

    :008 > 'aspras'.foneticalize => "SP" ruby-1.9.2-p180 :009 > 'bobagem'.foneticalize => "BJ" ruby-1.9.2-p180 :010 > 'bobage'.foneticalize => "BJ"
  12. FONETICA NA PRÁTICA ruby-1.9.2-p180 :007 > 'aspas'.foneticalize => "SP" ruby-1.9.2-p180

    :008 > 'aspras'.foneticalize => "SP" ruby-1.9.2-p180 :009 > 'bobagem'.foneticalize => "BJ" ruby-1.9.2-p180 :010 > 'bobage'.foneticalize => "BJ" ruby-1.9.2-p180 :011 > 'cérebro'.foneticalize => "SRB" ruby-1.9.2-p180 :012 > 'celebro'.foneticalize => "SRB"
  13. FONETICA NA PRÁTICA ruby-1.9.2-p180 :013 > 'ameixa'.foneticalize => "MS" ruby-1.9.2-p180

    :014 > 'ameicha'.foneticalize => "MS" ruby-1.9.2-p180 :015 > 'chuchu'.foneticalize => "S" ruby-1.9.2-p180 :016 > 'xuxu'.foneticalize => "S"
  14. FONETICA NA PRÁTICA ruby-1.9.2-p180 :013 > 'ameixa'.foneticalize => "MS" ruby-1.9.2-p180

    :014 > 'ameicha'.foneticalize => "MS" ruby-1.9.2-p180 :015 > 'chuchu'.foneticalize => "S" ruby-1.9.2-p180 :016 > 'xuxu'.foneticalize => "S" ruby-1.9.2-p180 :017 > 'habilitação'.foneticalize => "BRTS" ruby-1.9.2-p180 :018 > 'abilitação'.foneticalize => "BRTS"