Corretor Ortografico

Bom preciso de um corretor ortografico para uma aplicação swing…

Alguem tem algo do tipo…

Obrigado desde ja…

Alguem ja utilizou um corretor em um aplicação swing…

bah… eh exatamente isso que to precisando tb…

ninguem ???

Hum… podem começar a fazer, pelo jeito… tão afim de montar um projetinho?

A idéia é ter um dicionário e buscar as palavras nele. Se a palavra não for encontrada, o corretor tem que oferecer sugestões.

O truque das sugestões, imagino fazer trigramas (trigramas é contar qtos segmentos de tres letras diferentes existem na palavra. eg: teste = {tes, est, ste} e procurar outra palavra que tenham trigramas parecidos (tipo 75, 80% dos trigramas iguais).

Tem estudos por ai que dizem que as palavras mais usadas do nosso vocabulario estao em uns 5% do dicionário. Então a base nem precisa ser mto grande…

Fiz um programinha aqui esse fds… Usei o dicionario do OpenOffice. Testem um pouco… Nao tive muito tempo pra testar, mas parece funcionar.

http://www.bandarra.org/downloads/CorretorOrtografico.zip

Esse programinha abaixo sugere correcoes para a palavra “inconsitucional”. O zip tem um pacote do jakarta commons-lang tambem. Nao esquecam de coloca-lo também no classpath.

    import org.bandarra.corretorortografico.*
    public class Teste{
        public static void main(String[] args){
            CorretorOrtografico corretor =   new CorretorOrtografico();
            for (String s: corretor.corrigePalavra("inconsitucional")){
                System.out.println(s);
            }
        }
    }

[]s!!

[quote=andreban]Hum… podem começar a fazer, pelo jeito… tão afim de montar um projetinho?

A idéia é ter um dicionário e buscar as palavras nele. Se a palavra não for encontrada, o corretor tem que oferecer sugestões.

O truque das sugestões, imagino fazer trigramas (trigramas é contar qtos segmentos de tres letras diferentes existem na palavra. eg: teste = {tes, est, ste} e procurar outra palavra que tenham trigramas parecidos (tipo 75, 80% dos trigramas iguais).

Tem estudos por ai que dizem que as palavras mais usadas do nosso vocabulario estao em uns 5% do dicionário. Então a base nem precisa ser mto grande…

[/quote]hehe e os cara da ciência da computação ainda estudam Automatos!!!

    Se o pessoal achar que tá razoável, vou abrir um projeto em um sourceforge da vida e colocar lá... como Open Souce. Inclusive é fácil usar ele em qualquer lingua, basta ter os dicionários.

Pessoal.
A um tempo atrás, corri atrás de um corretor ortográfico.
No final das contas, acabamos comprando uma classe que é muito boa. segue o link
www.wintertree-software.com.

se for para uma aplicação comercial, eu recomendo. é muito bom e o preço é razoável pois é uma classe e não tem limite de distribuição

Mas, pra quem quer pegar algo pronto, de uma olhada neste editor open source,
http://www.hexidec.com/ekit.php

ele usa um corretor ortográfico - Jazzy - Java Spell Check API
http://sourceforge.net/projects/jazzy.

Quanto as palavras, peguei do open office. ele tem mais de 300.000 palavras cadastradas.

Outra dica é usar as apis do openoffice para o corretor ortográfico e embutir no sistema.

Espero ter ajudado

Carlos

olá, alguem sabe o email do cubas?
tow querendo saber onde encontrar a api do corretor ortografico do openoffice e algum tutorial de como usa-lo de preferencia em java.
até mais,

Eu utilizei o jazzy com o dicionário obtido a partir do aspell (linux):

aspell --master=pt_BR dump master pt_BR > /home/pt_BR.dic

Inicializei o jazzy com:

SpellDictionary dic =new SpellDictionaryHashMap(new File("/home/pt_BR.dic"));

Espero ter ajudado

Marcos Duma

[quote=andreban]Fiz um programinha aqui esse fds… Usei o dicionario do OpenOffice. Testem um pouco… Nao tive muito tempo pra testar, mas parece funcionar.

http://www.bandarra.org/downloads/CorretorOrtografico.zip

Esse programinha abaixo sugere correcoes para a palavra “inconsitucional”. O zip tem um pacote do jakarta commons-lang tambem. Nao esquecam de coloca-lo também no classpath.

    import org.bandarra.corretorortografico.*
    public class Teste{
        public static void main(String[] args){
            CorretorOrtografico corretor =   new CorretorOrtografico();
            for (String s: corretor.corrigePalavra("inconsitucional")){
                System.out.println(s);
            }
        }
    }

[]s!![/quote]

O único problema é a acentuação.

Vou fazer uns testes com a API, também vou analisar a questão de acentuação e posto depois aqui.

Mas também já usei uma API do OpenOffice, que é muito funcional.