Skip to content

Latest commit

 

History

History
211 lines (154 loc) · 8.54 KB

README.md

File metadata and controls

211 lines (154 loc) · 8.54 KB

📕 Corretor Ortográfico

Com objetivo de corrigir palavras escritas de maneira incorreta em um arquivo de texto, utilizamos uma árvore de prefixos a fim de armazenar um dicionario, onde desfrutamos do mesmo para verificar a ortografia de cada palavra presente no arquivo em questão.


🉑 Feedback do Professor

Feedback atribuído em nosso trabalho pelo Professor Doutor Juliano Henrique Foleis que ministra a matéria de Algoritmos e Estruturas de Dados 2 na Universidade Tecnologia Federal do Paraná (UTFPR/CM).

Nota de nosso trabalho

🔴 Como Utilizar

# Clone este repositório
$ git clone https://github.com/jhonatancunha/corretor_ortografico

# Acesse a pasta do projeto no terminal/cmd
$ cd corretor_ortografico

# Execute o makefile (windows)
$ mingw32-make

# Execute o makefile (linux)
$ make

# Por fim inicie o executavel
#Windows
$ main "nome_arquivo.txt" 

#Linux
$ ./main "nome_arquivo.txt"

🔍 Explicação dos Argumentos

Argumento Descrição
"nome_arquivo.txt" É o arquivo .txt que você deseja verificar se a ortografia das palavras estão corretas.

📸 Exemplo

#Executei passando os seguintes argumentos
#Windows
$ main "testes/default.txt"

#Linux
$ ./main "testes/default.txt"

Obtemos as seguintes informações como saida do algoritmo.

Exemplo onde passo arquivo default.txt a fim de verificar erros de ortografia no mesmo

💡 Comparação do texto incorreto do arquivo e sua versão correta

STATUS TEXTO
Incorreto Eyte e um arxuiyo exkmpvo qte seva analizadu pelu corretur
Correto Este e um arquivo exemplo que sera analisado pelo corretor

🚦 Regras Utilizadas

Regra 1


Nesta palavra utilizaremos a técnica de alternar coringas com objetivo de encontrar qual a letra incorreta em nossa palavra. Coringas serão representados pelo caracter '*', e na posição referente a ele, podemos usar qualquer letra do alfabeto até encontrar a correta.

🔎 Palavra: hoye

Prefixo Procurado Resultado
*oye NULL
h*ye NULL
ho*e hoje
hoy* NULL

Regra 2


Utilizaremos esta regra em palavras com mais de 5 letras, onde iremos pesquisar uma palavra p que vá até a posição n-3 e n-2. Tal regra nos retorna chaves que casam com o prefixo procurado.

🔎 Palavra: saladq

Prefixo Procurado Resultado
salad salada, saladas
sala sala, salada

Regra 3


Esta regra retorna o maior prefixo válido de uma palavra procurada. A fim de exemplo, ao pesquisar a palavra "zebraolho", receberemos a chave "zebra" como retorno.

🔎 Palavra: zebraolho

Prefixo Procurado Resultado
zebraolho zebra

Regra 4


Essa regra é formulada via conjunção da regra 1 com a regra 2, ou seja, aplicaremos a regra 2 na palavra alvo e logo após a regra 1.

🔎 Palavra: xinamiyb

Prefixo Procurado Resultado
dinamiy CASO N-2
*inamiy NULL
x*namiy NULL
xi*amiy NULL
xin*miy NULL
xina*iy NULL
xinami* NULL
dinami CASO N-3
*inami dinamica, dinamico, dinamita, dinamite, dinamito, dinamiza, dinamize, dinamizo
x*nami NULL
xi*ami NULL
xin*mi NULL
xina*i NULL
xinam* NULL

Regra 5


Essa regra é baseada na regra 1, porém, agora iremos utilizar dois coringas. Onde um ficará fixado em uma posição, enquanto o outro irá percorrer a palavra.

🔎 Palavra: xinxmite

Prefixo Procurado Resultado
**nxmite NULL
*i*xmite NULL
*in*mite dinamite
*inx*ite NULL
etc... NULL

Regra 6


Essa regra foi pensada para encontrar palavras que contém letras repetidas ou inexistentes, a mesma intercala pelos caracteres da palavras anulando-os. A fim de exemplificar, ao procurarmos a palavra "caasa", o código tenta encontrar as chaves: aasa, casa, casa, caaa, caas.

🔎 Palavra: commentario

Prefixo Procurado Resultado
ommentario NULL
cmmentario NULL
comentario comentario
comentario comentario
commntario NULL
commetario NULL
commenario NULL
commentrio NULL
commentaio NULL
commentaro NULL
commentari NULL

🎓 Autores


Jhonatan Cunha

Gmail Badge


Jessé Pires

Gmail Badge

📝 Licença

MIT