Escrevendo um corretor ortográfico

Um corretor ortográfico de apenas 20 linhas, em Python:

How to Write a Spelling Corrector

Solução elegante, mostra também o quanto a linguagem é elegante.

Elcio: Elcio é sócio fundador da Visie Padrões Web. Pioneiro no uso e divulgação dos padrões do W3C no Brasil, Elcio já treinou equipes de dezenas de empresas como Globo.com, Terra, Petrobras, iG e Locaweb. Além disso, tem dirigido as equipes da Visie no desenvolvimento de projetos web para marcas como Brastemp, Itaú Unibanco, Johnson & Johnson e Rede Globo.

View Comments (5)

  • Apenas uma correção Alexandre:

    O Google não usa similaridade fonética.

    O metaphone não calcula a distância fonética, metaphone serve para calcular um código hash usando a pronuncia de uma dada palavra. Palavras com pronuncias iguais geram hashs iguais... Foi construido para corrigir os probleminhas do Soundex...

    Isso vc saberia se tivesse lido a documentação que colocou no comentário...

    Uma forma de aplicar similaridade fonética é gerar uma hash com o metaphone e depois usar o mesmo algoritmo de correção ortográfica para buscar a palavra "correta" com o mesmo som...

  • Off-Topic

    Me perdoe, mas não achei seu e-mail Elcio.
    Eu vi um comment seu (http://blog.elcio.com.br/terminais_burros_sao_uma_solucao_inteligente/feed/)
    e nele você descreve com fará uma pequena rede com terminais burros. Amigo, não saco muito de informática, mas se você concluiu aquele rede, você tem/criou algum tutorial de como montar o Servidor e as estações. Estou querendo montar uma rede comunitária aqui na minha comunidade em Lauro de Freitas/Ba.

    Desde já agradeço muito.

  • Tem que ver as mágicas que os caras fazem com Perl aqui. O treco é um organismo, tem vida própria. Dá medo.

    (OFF) Outro dia um maluco aqui fez um hello-world "multilanguage" que compilava/rodava em Java, C, Perl e mais um punhado de linguagens. Aquilo dá MUITO medo.

  • Interessane e bonita a forma com a qual foi escrito o código, mas nada prático.

    Esse algoritmo de similaridade é baseado em distância Levenshtein, não é algo especial do Google, é até antigo.

    O PHP por exemplo, possui uma função nativa levenshtein que calcula essa distância, mas o Google provavelmente usa além desse algoritmo o metaphone (também incluido por padrão no PHP) que calcula distância fonética.