Como criar incríveis WordClouds usando apenas Python!

Luís Miguel Alves
4 min readJun 20, 2021

Olá , bem vind@s a mais um artigo meu! Hoje quero ensiná-los a como criar WordClouds usando python!

Este artigo é um espécie de completo a outro artigo escrito por mim mesmo: “Criando um modelo de NLP do zero com python” , você pode acessá-lo clicando aqui.

O que você vai encontrar aqui?

  • O que são WordClouds?;
  • Por que usar WordClouds?;
  • Criando um WordCloud do zero a partir de dados textuais;

O que são WordClouds?

É interessante começa definindo o que elas são. Como o próprio nome já sugere , WordClouds são basicamente nuvens de palavras! Nela podemos criar uma imagem contendo palavras que , de acordo com o tamanho , são entendidas como muito presentes em um conjunto de dados textuais.

Veja alguns exemplos:

Exemplo de WordCloud 1
Exemplo de WordCloud 2

fontes : (imagem 1) | (Imagem 2)

Por que usar WordClouds ?

WordCloud trás consigo uma ampla gama de usabilidades , dependendo de cada ocasião , claro.

Além de ser uma forma diferente de visualização de dados textuais , ela fica bem bonita na mão de bons designs.

A partir de WordClouds podemos encontrar insights de termos muito usados em determinadas circunstâncias e ocasiões!

Imagine poder visualizar uma WordCloud que destaque as principais reclamações de seus clientes e partir disso melhorar seu atendimento?

Criando um WordCloud do zero a partir de dados textuais

Chegou a hora de começar a trabalhar!

Como dito anteriormente , este é um artigo complementar a outro que eu escrevi , mas não há obrigatoriedade de você lê-lo antes de vim para esse. Fique a vontade para acessar clicando aqui.

A primeira coisa que devemos fazer é importar as bibliotecas que serão usadas, a principal delas é a wordcloud . Além dela usaremos as bibliotecas do matplotlib e PIL para visualizar nossa imagem.

from PIL import Imagefrom wordcloud import WordCloud, STOPWORDS, ImageColorGeneratorimport matplotlib.pyplot as plt

Com nossas bibliotecas importadas , vamos iniciar nossa WordCloud.

A primeira coisa que temos que manter em mente é que para criar essa temos de juntar nossos textos. Para isso vamos usar o seguinte comando:

text = df_baixas["Review Text"]text_join = " ".join(s for s in text)

Na variável “text” temos um dataframe pandas que contêm todos os nossos dados textuais, com o método “join” estamos unindo todos os textos com um espaço entre eles e armazenando na variável “text_join”.

Agora vamos para o próximo passo, criar a WordCloud em sí:

# Criando a WordCloud:
wordcloud = WordCloud(background_color="white",width=1600 ,height=800,max_words=200).generate(text_join)
# mostrar a imagem finalfig, ax = plt.subplots(figsize=(16,10))ax.imshow(wordcloud, interpolation='bilinear')ax.set_axis_off()

Com o método WordCloud podemos fazer diversos experimentos , aumentar ou diminuir o máximo de palavras mostradas com o parâmetro “max_words” , assim como alterar o background com o parâmetro “background”. Com o atributo “generate” criamos a WordCloud em si e passamos o nosso conjunto de textos.

O que acha de personalizar um pouco mais nossa WordCloud? Vamos adicionar uma “máscara” a nossa imagem , mudando a forma dela:

my_mask_path = np.array(Image.open(path_mask))# Criando a WordCloud com máscara:
wordcloud = WordCloud(background_color="white",width=1600, height=800,max_words=200 , mask = my_mask_path).generate(text)
# mostrar a imagem final:fig, ax = plt.subplots(figsize=(12,8))ax.imshow(wordcloud, interpolation='bilinear')ax.set_axis_off()

Para este caso apenas adicionei o parâmetro “mask” e passei o caminho da imagem e com isso obtivemos o seguinte resultado:

WordCloud personalizada

Podemos notar que a forma da nossa WordCloud mudou ligeiramente! Agora , caso não tenha percebido , usei a imagem de uma mulher de perfil, mais precisamente esta imagem aqui:

imagem base

Perceba que ao criar essa “mask” você deve ter em mente que na região com a cor preta será onde teremos nossas palavras , já a região na cor branca não será mostrado nada. Apensas tome estes cuidados ao criar a máscara.

Caso tenha surgido alguma dúvida , fique a vontade para visualizar toda as linhas de código no GoogleColaboratory clicando aqui , lá você terá todos os códigos usados aqui e mais. Caso persista alguma dúvida , deixe aqui seu comentário que o mais rapidamente irei responder!

Links

Obrigado por ler este artigo até o fim , por gentileza , considere acessar outros artigos e me encontrar nas redes sociais:

--

--

Luís Miguel Alves

Connoisseur of Data Science and lover of historical books, I am a young data scientist aspiring to a great career