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

Algoritmos de pesquisa

Algoritmos de pesquisa

Soundex, Metaphone e BuscaBR

Gabriel Sobrinho

November 21, 2015
Tweet

More Decks by Gabriel Sobrinho

Other Decks in Programming

Transcript

  1. Algoritmos fonéticos • soundex - Robert C. Russell & Margaret

    King (1918) • metaphone - Lawrence Philips (1990) • buscabr - Fred Jorge Tavares de Lucena (2007)
  2. Soundex 1. Mantém a primeira letra do nome e remove

    todas as outras ocorrências de a, e, i, o, u, y, h, w; 2. Substitui as consoantes com a seguinte tabela (depois da primeira letra): b, f, p, v 1 c, g, j, k, q, s, x, z 2 d, t 3 l 4 m, n 5 r 6
  3. Soundex 3. Se duas ou mais letras com o mesmo

    número são adjacentes no nome original, ou separadas por ‘h' ou ‘w', reter apenas a primeira letra; 4. Se o nome for muito pequena, preencher com zeros a direita até atingir 3 dígitos; 5. Se o nome for muito grande, manter apenas os 3 primeiros dígitos;
  4. Soundex • Reverse Soundex é o mesmo algoritmo mas usa

    a última letra ao invés da primeira como prefixo; • NYSIIS aumenta a precisão com n-grams e mantendo algumas vogais; • D-M Soundex aumenta a precisão de sobrenomes alemães e eslavos;
  5. Metaphone 1. Algoritmo original envolve muitos passos e não é

    possível implementar por diversos erros na proposta; 2. Metaphone foi substituído pelo Double Metaphone em 2000 com uma proposta que retorna dois códigos para conseguir detectar algumas ambiguidades (Smith e Schmidt); 3. Double Metaphone foi substituído pelo Metaphone 3 em 2009 como um produto comercial e o autor alega possuir uma precisão de 98% contra 89% do Double Metaphone;
  6. Metaphone 4. Todas as versões lidam com qualquer palavra e

    não apenas com nomes próprios; 5. Existem variações para Português, Espanhol, Alemão, Russo, Bengali (Bangladesh), Amárica (Etiópia) e provavelmente outros idiomas;
  7. BuscaBR • “Busca Fonética em Portugês do Brasil” - Fred

    Jorge Tavares de Lucena - Unibratec (2007) • “Implementos em Mecanismo de Busca por Semelhança Sonora” - Marcos Rodrigues Caso - UNICID (2010) • Fonetica - Gabriel Sobrinho (2011)
  8. BuscaBR Ç S CA, CO, CU, CK, Q K TR,

    TL T BL, BR B N M CT, RT, ST, PT T PH F AO, AUM, GM, MD, OM, ON M \bU, \bW V GL, GR, MG, NG, RG G PR P RM SM Y I L R M\b, R\b, S\b GE, GI, RJ, MJ J CE, CI, CH, CS, RS, TS, X, Z S A, E, I, O, U, H 1. Converter para maiúscula; 2. Remover acentuação, hífen e apóstrofo; 3. Substituir as letras com a seguinte tabela:
 
 
 
 
 
 4. Remover letras duplicadas (squeeze);
  9. BuscaBR Hieróglifo Hierogrifo RJF Kubitscheck Kubixeque KBSK Óptico Ótico TK

    Philipe Felipe FRP Walter Valter VT Wilson Uilson V Já acabou, Jéssica? J KB JSK
  10. Dicas • Use um algoritmo focado no seu idioma e

    no seu problema de pesquisa; • Procure variações do algoritmo, nem sempre o original é bem documentado ou preciso; • Estude outros algoritmos de pesquisa como full text search, n-gram, fuzzy match e etc;