1
resposta

[Projeto] criando nuvens de palavras após o tratamento dos dados

import pandas as pd
import nltk
import unidecode
import matplotlib.pyplot as plt
from nltk import tokenize
from wordcloud import WordCloud

nltk.download('stopwords')

# 1. Carregar dados
url = 'https://raw.githubusercontent.com/alura-cursos/nlp_analise_sentimento/refs/heads/main/Dados/dataset_avaliacoes.csv'
df = pd.read_csv(url)

# 2. Preparar recursos
stopwords = nltk.corpus.stopwords.words('portuguese')
stopwords_sem_acento = [unidecode.unidecode(p) for p in stopwords]
token_pontuacao = tokenize.WordPunctTokenizer()

# 3. Criar coluna tratamento_4
trat4 = []
for opiniao in df["avaliacao"]:
    tokens = token_pontuacao.tokenize(opiniao)
    frase = [p.lower() for p in tokens if p.isalpha()]
    frase = [unidecode.unidecode(p) for p in frase]
    frase = [p for p in frase if p not in stopwords_sem_acento]
    trat4.append(" ".join(frase))

df["tratamento_4"] = trat4

# 4. Função para nuvem de palavras
def nuvem_palavras(texto, coluna_texto, sentimento):
    texto_sentimento = texto.query(f"sentimento == '{sentimento}'")[coluna_texto]
    texto_unido = " ".join(texto_sentimento)

    nuvem = WordCloud(
        width=800,
        height=500,
        max_font_size=110,
        collocations=False,
        background_color="white"
    ).generate(texto_unido)

    plt.figure(figsize=(10, 7))
    plt.imshow(nuvem, interpolation="bilinear")
    plt.axis("off")
    plt.title(f"Nuvem de palavras - {sentimento}")
    plt.show()

# 5. Gerar nuvens de palavras
nuvem_palavras(df, "tratamento_4", "negativo")
nuvem_palavras(df, "tratamento_4", "positivo")
1 resposta

Olá, Moacir! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso do WordCloud para gerar nuvens de palavras com Python, utilizou muito bem o tokenizador do NLTK para preparar os textos e ainda compreendeu a importância da remoção de stopwords para destacar termos mais relevantes em análises de sentimento.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Sugestão de conteúdo para você mergulhar ainda mais no tema:

Alguns materiais estão em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!