Olá,
Estou executando o código mostrado na aula e tenho percebido algumas diferenças importantes. A primeira delas diz respeito à quantidade de palavras detectadas pelo corpus
. Isso se deve principalmente à codificação UTF-8 do arquivo .txt
. É possível que quem tenha acompanhado a aula pelo ambiente Anaconda tenha percebido uma quantidade maior de palavras detectadas, uma vez que a abertura do arquivo no ambiente só é possível ao passar o argumento encoding= 'utf-8'
.
Mas não é esse o ponto que quero abordar aqui. Existe um erro de indentação nas funções mostradas na aula que me deram dor de cabeça para resolver! Não sei dizer por que o código rodou sem maiores problemas no Google Colab durante o vídeo, mas quem estiver tendo problemas para obter a palavra "lógica" devidamente tratada pelo corretor - ao invés da palavra algica
, deve prestar atenção na indentação do return
da função insere_letras
, que deve estar alinhado com o primeiro for
, ao invés do segundo.
Código mostrado na aula
palavra_exemplo = "lgica"
def insere_letras(fatias):
novas_palavras = []
letras = 'abcdefghijklmnopqrstuvwxyzàáâãèéêìíîòóôõùúûç'
for E, D in fatias:
for letra in letras:
novas_palavras.append(E + letra + D)
return novas_palavras
def gerador_palavras(palavra)
fatias = []
for i range(len(palavra)+1):
fatias.append((lista[:i],lista[i:]))
palavras_geradas = insere_letras(fatias)
return palavras_geradas
palavras_geradas = gerador_palavras(palavra_exemplo)
print(palavra)
Código corrigido
def insere_letras(fatias):
novas_palavras = []
letras = 'abcdefghijklmnopqrstuvwxyzàáâãèéêìíîòóôõùúûç'
for E, D in fatias:
for letra in letras:
novas_palavras.append(E + letra + D)
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)
return palavras_geradas
Um abraço.