🪧 Vitrine.Dev | |
---|---|
✨ Nome | Corretor Ortografico |
🏷️ Tecnologias | Python |
🚀 URL | https://github.com/wesleyfuchs/Corretor-ortografico |
🔥 Desafio | https://cursos.alura.com.br/course/nlp-corretor-ortografico |
Esse corretor ortografico foi o projeto criado durante o curso Corretor Ortográfico em Python: aplicando técnicas de NLP da Alura.
A ideia do projeto foi criar um corretor que como parametro uma palavra digitada de maneira equivocada, gerar as possíveis palavras corretas, e então inferir quais daquelas possíveis candidatas era possivelmente a correta.
Durante o desenvolvimento foram adicionados algoritimos onde nós inseríamos letras na palavra digitada equivocadamente, deletamos letras, trocamos letras e invertemos letras da palavra. Para realizar a inferência da palavra correta foi usada uma base de dados, e neste caso foram os artigos do Blog da Alura compilados em artigos.txt.
Começei pela importação da base de dados
Separei a string em pequenos tokens. Para isso, utilizei a biblioteca Python específica para processamento de linguagem natural chamada nltk.
Depois, separei dos tokens apenas os que eram palavras, e aí foi feita uma contagem do número de palavras que havia no nosso dataset e tambem do numero de palavras unicas.
Após isso, foi iniciada a construção do algoritimo
A função corretor() faz uma comparação das palavras geradas e procura pela palavra com mais aparições dentro do dataset
Para testar o corretor foi criado uma função que mostra a taxa de acerto do corretor após aplicar testes em um arquivo .txt com diversas palavras.
Alem da inserir_letra(), foram adicionadas as funções deletando_caracteres(), troca_letra() e inverte_letra().
Chegando então a quase 77% de taxa de acerto.
Foi criado tambem um corretor_turbinado() que tem como ideia corrigir palavras com 2 erros, que consegue corrigir palavras que o nosso antigo corretor não conseguia, porem, depois de testa-lo foi constatado uma taxa de 55.38% de acerto fazendo com que o antigo continue tendo uma taxa de acerto maior e continue sendo a melhor opção