Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Pensei numa solução diferente: delete_duplo()

Pessoal,

Pensei numa solução diferente para tratar o erro da palavra "lóiigica". Em vez criar a função gerador_turbinado(), fiz o seguinte:

  • Criei a função delete_duplo(), o qual segue a mesma lógica do delete_caracter(), porém filtra o lado direito da fatia a partir do terceiro caracter D[2:];
  • Depois refatorei a função gerador_palavras(), onde inserimos a linha palavras_geradas += delete_duplo(fatias);
  • Por fim, criamos a função novo_corretor(), porém sem necessidade de criar duas variáveis dentro dela, que seriam: palavras_turbinado e todas_palavras.

Vejam abaixo como ficou o código dessas funções e se faz sentido:

def delete_duplo(fatias):
  novas_palavras = []
  for E, D in fatias:
    novas_palavras.append(E + D[2:]) #eliminando as duas primeiras letras
  return novas_palavras


def gerador_palavras(palavra):
  fatias = []
  for i in range(len(palavra)+1):
    fatias.append((palavra[:i], palavra[i:]))

  palavras_geradas = insere_letras(fatias)
  palavras_geradas += delete_caracteres(fatias)
  palavras_geradas += troca_letras(fatias)
  palavras_geradas += inverte_letras(fatias)
  palavras_geradas += delete_duplo(fatias)
  return palavras_geradas

def novo_corretor(palavra):
  palavras_geradas = set(gerador_palavras(palavra))
  candidatos = [palavra]
  for palavra in palavras_geradas:
    if palavra in vocabulario:
      candidatos.append(palavra)
  palavra_correta = max(candidatos, key=probabilidade )
  return palavra_correta
2 respostas

Entendi, o meu modelo não corrige o possível erro "lígicaaa" (próximo exercício) e o novo_corretor() com gerador_turbinado sim :), uma vez que é capaz de tratar até dois tipos de erros na mesma palavra, certo?

solução!

Oi Roger! Tudo bem com você? Espero que sim!

Primeiro queria me desculpar pela demora em te trazer um retorno.

Depois, eu quero te parabenizar pela solução, é sempre bacana ver alunos desenvolvendo assuntos bem fora da caixinha apresentada na aula e queria te agradecer pro trazer essa solução ao fórum, muito legal a sua atitude de trazer aqui! Por fim, sua lógica no final faz sentindo sim, mas vemos que nas aulas subsequentes o novo_corretor() tem algumas dificuldades com outras palavras incorretas, então eles conseguem sim tratar os erros mas podem também se distanciar um pouco do esperado, o que é normal para qualquer modelo.

Eu espero ter te ajudado! Se surgir outra dúvida estarei à disposição.

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!