Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Falta de exemplos de problemas reais

Antes de qualquer coisa queria falar que gostei das ideias e conceitos por trás do corretor ortográfico, mas senti falta de exemplos reais e sugestões de como solucionar casos reais no decorrer da aula. O curso inteiro foi baseado em apenas uma única palavra o que pode deixar o foco viciado apenas nesse exemplo, senti falta de citação de exemplos reais e como solucionar problemas para a correção de outros cenários existentes.

Queria listar algumas coisas que eu pensei entre dúvidas e idéias e senti falta de uma citação.

  • Quais sites existem com um corpus de palavras existentes na lingua portuguêsa? Existe algum que leva em consideração palavras informais? Onde eu poderia procurar por nomes próprios, sobrenomes e nomes de lugares?
  • Em quais problemas reais eu poderia aplicar um corretor ortográfico além de um buscador?
  • normalizar apenas com minusculo e deixar apenas o que é letra é suficiente pra limpar textos? será que remover números não pode ser prejudicial em algum ponto? E se eu precisar corrigir uma frase que fala sobre 3g? ou se alguém precisa digitar algo númérico junto exemplo busca por um livro que tem número no título: "capitão américa 30" e era "capitão américa 3"?
  • remover letras seguidas acima de 3 repetidas para no máximo 2 poderia ajudar? exemplo: "banannna", ficaria "bananna".
  • Como eu monto uma base de teste pra checar a assertividade? devo fazer isso de forma manual? qual o percentual de palavras pra testar em comparação para corrigir que eu deveria levar em consideração?
  • O processamento para corrigir uma frase pode ficar muito lento se eu precisar aplicar isso em larga escala, quais dicas ou ideias para deixar esse script mais performático?
  • E se a palavra correta não é a mais frequente para aquela frase? Será que vale a pena levar em consideração bigramas ou trigramas mais frequentes também? Será que a performance fica mais comprometida com isso? exemplo: "abrik", é abril, abriu ou abrir? "paj", é pai ou pau?
  • Levar em consideração letras próximas no teclado é uma ideia possivel também?
  • Nos corretores famosos exemplo o buscador do google, quais processos será que ele faz pra trazer as sugestões?
  • Usar Levenshtein poderia trazer mais performance ou assertividade?
1 resposta
solução!

Olá Fernanda, tudo bem? Espero que sim!

Desculpe pela demora em retornar.

De fato o curso não aborda todos os conceitos de NLP ao mesmo tempo para que não fique muito carregado de conceitos. Há uma formação de cursos aqui na Alura que se complementam para abordar os conceitos que podem ser utilizados em processamento de linguagem natural:

O corretor ortográfico pode ser utilizado para revisão de textos, sejam eles em um editor de texto como o word ou em textos já escritos. Pode ser utilizado para sugestão de palavras em um aplicativo de conversa como o whatsapp faz. Além de corretor ortográfico, você pode ver outras aplicações nesse artigo que temos na plataforma:

A remoção de letras maiúsculas, acentos, pontuações e números geralmente torna o processo mais eficiente, uma vez que elimina caracteres que não trazem informação para o texto. Caso tenha alguma expressão que seja importante para o contexto, como é o caso de 3g, você pode especificar no código que não irá remover essa expressão, uma vez que ela é importante. Tudo dependerá do problema que deseja resolver.

A linguagem python por si só com um modelo simples treinado não vai te trazer o processamento mais performático e mais completo. Existem inúmeras pesquisas na área e empresas como o Google utilizam modelos de redes neurais pré-treinados em que foram utilizados muitos textos para o treinamento. O Google utiliza o BERT, caso queira saber mais veja o link:

Todas essas ideias que apresentou como levar em consideração letras próximas no teclado, n gramas, entro outros podem ser úteis e deixarão o sistema cada vez mais complexo. Em troca de ele acertar mais, demorará mais tempo. Por isso a aposta é utilizar esses frameworks com modelos pré-treinados e você adicionar a esse modelo as particularidades do seu problema.

Bons estudos!