1
resposta

Sugestão p/ complementar o gráfico de Pareto

Olá pessoal, tudo bem?

Como dito no texto do "Para saber mais", falta um segundo eixo com a porcentagem acumulada de cada palavra para que tenhamos um gráfico de Pareto. Segue uma maneira de fazer isso na função:

def pareto(texto, coluna_texto, quantidade):
  todas_palavras = ' '.join([resenha for resenha in texto[coluna_texto]])
  token_espaco = nltk.tokenize.WhitespaceTokenizer()
  token_frase = token_espaco.tokenize(todas_palavras)
  frequencias = nltk.FreqDist(token_frase)
  df_frequencias = pd.DataFrame({'Palavras': list(frequencias.keys()),
                               'Frequencia': list(frequencias.values())})
  df_frequencias = df_frequencias.nlargest(n=quantidade, columns='Frequencia')

  total = df_frequencias['Frequencia'].sum()
  df_frequencias['Porcentagem'] = df_frequencias['Frequencia'].cumsum() / total * 100

  plt.figure(figsize=(12,8))
  ax = sns.barplot(data=df_frequencias, x='Palavras', y='Frequencia', color='gray')
  ax2 = ax.twinx()
  sns.lineplot(data=df_frequencias, x='Palavras', y='Porcentagem', color='red', sort=False, ax=ax2)
  plt.show()
1 resposta

Parabéns, João!

Vou colocar o link do seu código como referência para o pessoal que tiver dificuldade de criar o segundo eixo!

Abraços e bons estudos!