Projeto 04 – Word cloud: Visualização de dados do Projeto 03 – AED da Mortalidade Violenta na Grande Ilha de São Luís

No Projeto 03 – Análise Exploratória de Dados – Mortalidade Violenta na Grande Ilha de São Luís, partimos de uma base de dados e analisamos o conjunto de dados em si, empregando a linguagem Python e a biblioteca Pandas.

Na oportunidade, foram realizadas algumas transformações no conjunto de dados, como o ajuste dos tipos de dados e o tratamento de dados ausentes. Vale ressaltar que outras transformações também poderiam ser executadas, tais como o mapeamento de dados categóricos para numéricos e a padronização dos dados. Contudo, a escolha das técnicas apropriadas deve ser pautada pelo problema a ser resolvido.

No Projeto 03, também extraímos alguns insights, utilizando as bibliotecas Matplotlib e Seaborn, fazendo uso dos gráficos de barras.

Na oportunidade, informo que o uso dos dados estão de acordo com o Art. 5º da Lei nº 13.709/2018 – LGPD. Mas por excesso de zelo, os dados foram, ainda, anonimizados (não permitindo a identificação) para poderem serem utilizados.

No Projeto 04, exploraremos um novo insight da base de dados (utilizada no Projeto 03). O objetivo é transformar os dados da planilha de forma a nos fornecer imediatamente alguma informação relevante. Para isso, optamos por utilizar uma “word cloud”, uma nuvem de palavras.

A Word Cloud ou Nuvem de Palavra é uma combinação de vários tamanhos de fonte diferentes em uma única visualização, muito utilizada utilizada para fins analíticos, onde pode ser mostrado facilmente para o usuário a frequência com que um termo se apresenta.

Biblioteca

#
#importe das bibliotecas e pacotes necessários
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
#

Carregamento dos dados

#
#criar uma cópia do DataFrame original
df_worldcloud = pd.read_csv("/content/drive/My Drive/Colab Notebooks/dataset/dataset.csv")
#     

Carregado os dados, realizamos a filtragem de algumas dimensões, pois algumas informações não seriam interessantes para o tipo da visualização escolhida.

#
#seleção das dimensões
df_worldcloud = df_worldcloud[['Vítima', 'Sexo', 'CAUSA DA MORTE','Local', 'Município', 'Classificação']]
#     

Nas word clouds devemos promover a retirada de estruturas (palavras) que se repetem com grande frequência, mas que não trazem quaisquer informações adicionais à visualização, como os artigos e as preposições. Assim, definimos uma lista de stopwords para que sejam retiradas do dataset

#
#Definir as stopwords
stopwords = set(STOPWORDS)
stopwords.update(['de', 'dos', 'da'])
#     

Agora vamos criar a nossa primeira versão da word cloud.

#
#Criar a nuvem de palavras
wordcloud = WordCloud(stopwords = stopwords,
                      background_color='black',
                      width=1600, height=800).generate(texto2)


#criar a imagem
fig, ax = plt.subplots(figsize=(16,8))
ax.imshow(wordcloud, interpolation='bilinear')
ax.set_axis_off()

plt.imshow(wordcloud)
#     

Executando o código, teremos a word cloud abaixo.

Porém, podemos ir além!

Recortando a imagem da Grande Ilha no google maps…

Tratando a imagem e aplicando um filtro para criar uma máscara de background.

# endereço LOCAL da SUA imagem
import numpy as np
from PIL import Image
grandeilha_mask = np.array(Image.open("/content/drive/My Drive/Colab Notebooks/dataset/ilaha.png"))
   

#Definir as stopwords
stopwords = set(STOPWORDS)
stopwords.update(['de', 'dos', 'da'])


#Criar a nuvem de palavras
wordcloud = WordCloud(stopwords = stopwords,
                      background_color='black',
                      width=2000, height=2000, max_words=2000,
                      mask=grandeilha_mask, max_font_size=200, colormap='Reds'
                      ).generate(texto2)


#criar a imagem
fig, ax = plt.subplots(figsize=(16,16))
ax.imshow(wordcloud, interpolation='bilinear')
ax.set_axis_off()

plt.imshow(wordcloud)
fig.savefig('ilha_wcloud.png', format='png', dpi=300)

Temos como produto final nossa world cloud customizada.

CONCLUSÃO

Ao trabalhar com o dataset podemos perceber que ainda existem dados a serem tratados ( e isso representa praticamento 80% de todo um projeto de data science), como os valores ausentes.

Pudemos retirar insights valorosos, como aferir que:

  • As armas de fogos são os instrumentos que mais causam mortes, seguidos pelas armas brancas.
  • Homicídios Dolosos são o principal tipo de mortes violentas, no período.
  • São Luís possui a maior quantidade de ocorrências (possui a maior população), enquanto Raposa possui as menores quantidades (município com menor população).

Outros insights podem ser tirados dos dados, bastando escolhermos o contexto.

Grande Abraço!!!