Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

WordCloud e listas

Ao executar o código:

from wordcloud import WordCloud
nuvem_palavras = WordCloud().generate( todas_palavras)

recebi a mensagem de erro finalizada por:

TypeError: expected string or bytes-like object

Imaginei que "generate" na versão atual do WordCloud (1.6.0) requer uma string ao invés de uma lista. Para executar o código tive que converter a lista em string:

from wordcloud import WordCloud
nuvem_palavras = WordCloud().generate(  str(todas_palavras))

Após a conversão, o código rodou.

2 respostas

Olá Vicente.

A mensagem de erro está dizendo que o método generate espera receber uma string ou um objeto no formato de bytes.

TypeError: expected string or bytes-like object

Então o que está acontecendo é que sua variável todas_palavras não é do tipo string, talvez por você não ter rodado essa instrução que o instrutor passou na aula 3 atividade 2 no tempo 05:53.

todas_palavras = ' '.join([texto for texto in resenha.text_pt])

Nessa instrução usamos o list comprehensions para criar uma lista que contem todas as resenhas em português e depois utilizamos o join para juntar essa resenhas em uma unica string.

nuvem_palvras = WordCloud().generate(todas_palavras)

Dessa maneira o generate vai receber o parametro determinado na documentação.

Espero ter esclarecido, mas qualquer duvida não hesite em perguntar.

Bons Estudos.

Olá Igor,

Tem razão. Não havia atentado que o "join" convertia a lista em string.

Obrigado pelo apoio.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software