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

Typo Killer

Typo Killer

Português: Como eu contribuí no Elixir, Phoenix, Ecto e outros
English: How I contributed to Elixir, Phoenix, Ecto and others

Samuel Pordeus

December 03, 2019
Tweet

Transcript

  1. Typo Killer Como eu contribuí no Elixir, Phoenix, Ecto e

    outros qu'est que ce fa fa fa fa fa fa fa fa fa
  2. Quem sou eu? - Samuel Pordeus - Engenheiro de Computação

    pela Universidade Federal da Paraíba - Desenvolvedor de Software na Plataformatec
  3. TKaaS: Typo Killing as a Service Companies that want to

    grow can't allow typos. Subscribe to our premium Typo Killing service and make sure that you will build better digital products.
  4. 1. Ler arquivos de uma pasta 2. Transformar esses arquivos

    em palavras 3. Criar um dicionário auxiliar pra futuramente comparar com essas palavras 4. Procurar os typos comparando essas palavras com todas as palavras do dicionário 5. Printar os possíveis typos
  5. 1. Ler arquivos de uma pasta 2. Transformar esses arquivos

    em palavras 3. Criar um dicionário auxiliar pra futuramente comparar com essas palavras 4. Procurar os typos comparando essas palavras com todas as palavras do dicionário 5. Printar os possíveis typos
  6. ["the,"of","and","to","a","in","for" … "oi", “opitiosn"] Como o dicionário é montado? Palavras

    que serão analisadas somadas com as 10.000 palavras mais utilizadas na língua inglesa
  7. String.jaro_distance/2 A busca pelos typos Computa a similaridade entre duas

    strings. Funciona num intervalo entre 0 e 1, sendo 0 o mais distante possível e 1 duas strings iguais.
  8. A busca pelos typos ** (UndefinedFunctionError) function String.baro_distance/2 is undefined

    or private. Did you mean one of: * bag_distance/2 * jaro_distance/2
  9. String.bag_distance/2 A busca pelos typos Computa a similaridade entre duas

    strings. Funciona num intervalo entre 0 e 1, sendo 0 o mais distante possível e 1 duas strings iguais.
  10. Bag distance: 0.75 <= x < 1 Jaro distance: 0.95

    <= x < 1 String.bag_distance("opitiosn", "options") -> 0.875 String.jaro_distance("opitiosn", "options") -> 0.863 A busca pelos typos
  11. Bag distance: 0.75 <= x < 1 Jaro distance: 0.95

    <= x < 1 String.bag_distance("opitiosn", "options") -> 0.875 String.jaro_distance("opitiosn", "options") -> 0.863 String.bag_distance("optionsn", "options") -> 0.875 String.jaro_distance("optionsn", "options") -> 0.958 A busca pelos typos
  12. ➔ outputh ➔ identifes ➔ modoule ➔ browers ➔ reseting

    ➔ pasword ➔ deault ➔ successfull ➔ droped
  13. Não corrigir typos Encontrar e corrigir typos manualmente Criar um

    programa pra encontrar typos Criar um programa pra encontrar typos em paralelo
  14. RailsConf 2019 - Maintaining a big open source project: lessons

    learned by Leonardo Tegon https://www.youtube.com/watch?v=rnOcDH_sgxg Open Source
  15. FIM