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

Valores distintos

Estou usando o Jupyter Notebook para acompanhar as aulas, escrevendo e testando cada código do projeto. No entanto, notei que duas vezes os valores apresentados na aula foram diferentes do que obtive ao executar o meu código. O primeiro foi na aula 2, no qual encontrei o valor de 403106, ao executar o código abaixo, e não 393916 como apresentado na aula.

lista_tokens = nltk.tokenize.word_tokenize(artigos)
lista_palavras = separa_palavras(lista_tokens)
print(f'O número de palavras é {len(lista_palavras)}')

Prossegui com o curso, pois notei que haviam muitas dúvidas sobre isso no fórum da aula, mas que não deram uma solução que resolvesse a questão. E na aula 7, novamente este problema ocorreu. Ao executar o código a seguir, os valores encontrados foram novamente diferentes. Enquanto obtive como resultado 691744, na aula o valor foi de 787396.

palavra = 'lóiigica'   #Remover duas letras

def gerador_turbinado(palavras_geradas):  #palavras geradas anteriormente
    novas_palavras = []
    for palavra in palavras_geradas:
        novas_palavras += gerador_palavras(palavra)

    return novas_palavras

palavras_g = gerador_turbinado(gerador_palavras(palavra))
"lógica" in palavras_g
len(palavras_g)

Então, baixei o arquivo do projeto da aula e executei o código conforme estava, encontrando novamente os mesmos resultados anteriores (do código que escrevi no Jupyter Notebook) e não os da aula. A única mudança que fiz foi acrescentar " encoding='utf-8' " aos parâmetros da abertura do arquivo artigo.txt, pois caso contrário, era exibida uma mensagem de erro abaixo:

---------------------------------------------------------------------------
UnicodeDecodeError                        Traceback (most recent call last)
<ipython-input-44-1dedc2379197> in <module>
      1 with open('corretor-master\\artigos.txt', 'r') as f:
----> 2     artigos = f.read()
      3 
      4 print(artigos[:500])

~\anaconda3\lib\encodings\cp1252.py in decode(self, input, final)
     21 class IncrementalDecoder(codecs.IncrementalDecoder):
     22     def decode(self, input, final=False):
---> 23         return codecs.charmap_decode(input,self.errors,decoding_table)[0]
     24 
     25 class StreamWriter(Codec,codecs.StreamWriter):

UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 24719: character maps to <undefined>

Para testar se o encode seria o problema, troquei então para 'latin-1' e os resultados foram 354837 e 691744, respectivamente. Tentei pesquisar os motivos para os valores diferentes, mas não encontrei resultado. Isto estaria relacionado com o encode ou haveria outro motivo? Por que os valores encontrados são diferentes? O arquivo artigo.txt usando no vídeo da aula é o mesmo que está na aula 2 - Preparando o ambiente como os dados do curso, ou há alguma mudança entre eles?

1 resposta
solução!

Olá, Rayanne! Tudo bom com você? Eu espero que sim!

Desculpa a demora em te dar um retorno.

O curso que você assistiu já está há um tempinho na plataforma e pode ser que alguns métodos que foram utilizados antes no código possam ter sido atualizados nesse meio tempo e alterado o resultado final. Isso é completamente normal e pode acontecer ao realizar qualquer curso da plataforma, não é que tem algo errado no seu código, fique tranquila ;-)

Além disso, busquei alguns comentários no fórum sobre essa mesma questão, e no tópico Resultado diferente um aluno retorna que ao tentar utilizar outras versões da biblioteca nltk, ele obteve também diferentes resultados. Então, provavelmente a atualização da biblioteca e também de seus métodos é o principal motivo dessa diferença entre resultados.

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!