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

Avatar for Gabriel Sobrinho

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"