A partir de hoje, torno pública uma ferramenta que, inicialmente, desenvolvi para consumo próprio mas que pode ser útil para outras pessoas: um acompanhamento das menções aos perfis dos quatro principais candidatos à Presidência da República – Ciro Gomes, Jair Bolsonaro, Lula e Simone Tebet – no Twitter.

O site é formado por duas páginas, cada uma com especificidades. O grosso dos dados está na página principal, dividida em:

  • um contexto: com um resumo do que aconteceu no dia, com base em uma amostragem de 51 mil menções coletadas diariamente;
  • estatísticas gerais: o volume total do que foi coletado, dividido em estatísticas específicas como total de menções, perfis únicos, postagens por perfil único e alcance total, tanto dos dados globais quanto nos segmentos de cada candidato.
  • evolução do volume de postagens: dois gráficos para acompanhamento ao longo do tempo da quantidade de menções a cada candidato e do percentual de cada um;
  • índices de engajamento de cada candidato: gráficos com alcance das mensagens sobre cada um, perfis únicos envolvidos e média de postagens por perfil. O alcance deve ser visto como um índice para acompanhamento no tempo, não como uma informação precisa, seu cálculo representa 30% da soma de seguidores de todos os perfis presentes na amostragem, inclusive perfis repetidos.
  • hashtags: gráficos com as principais hashtags usadas sobre cada candidato;
  • nuvens de palavras: com cinco gráficos, um com as palavras mais citadas no cômputo global e outros quatro para os termos segmentados;
  • e os usuários mais engajados, com nomes de perfil, imagem, link para o perfil no Twitter, quantidade de seguidores e volume de menções.
Grafo de conexões do dia 22.08.2022.
Grafo de conexões do dia 22/08/2022

A segunda página disponibiliza os grafos de conexão por dia, que dão uma ideia da dinâmica de funcionamento das inúmeras comunidades envolvidas na alavancagem de menções a cada um dos postulantes à Presidência da República.

Os dados são atualizados todos os dias com deadline sempre às 20 horas.

Metodologia

Todos os dias, sempre às 14 horas, um script em Python varre o Twitter por todas as menções aos perfis @cirogomes, @jairbolsonaro, @lulaoficial e @simonetebetbr e envia os principais metadados para um banco de dados SQL. O monitoramento não pega, e não é esse seu objetivo, menções genéricas aos candidados, como “Ciro Gomes”, “Bolsonaro”, “Lula” ou “Tebet”, variações possíveis em um monitoramento tradicional por palavras-chave, a ideia aqui é acompanhar como as menções diretas aos perfis evoluirão ao longo da campanha de 2022.

O script está limitado à captura de 51 mil tuítes/dia com essas características, número imposto pelas restrições da API do Twitter que, em sua versão elevated, permite a captura de apenas dois milhões de mensagens por mês. O limite de 51 mil menções diárias é, portanto, uma medida de economicidade. A API do Twitter também impede, obviamente, que o aplicativo tenha atualizações 24/7.

Este recorte representa entre 8,5 e 17% do volume total de citações em um dia, a depender da movimentação dos acontecimentos.

O montitoramento também não faz análise de sentimento das citações, embora isso seja possível em um desenvolvimento futuro. Você verá, no entanto, que é comum que os perfis mais engajados com determinado candidado nem sempre são de apoio e que as nuvens de palavras nem sempre indicam temáticas positivas sobre cada um.

Como é feito?

Do script de captura à visualização das informações, tudo é desenvolvido em Python, de acordo com as seguintes especificações:

  • o coração do spider de captura é a biblioteca Tweepy, uma interface entre Python e Twitter, programada para capturar menções no streaming, ou seja, no momento em que são publicadas. Não há busca nos arquivos do Twitter, dando assim maior dinamicidade para os dados e, claro, pegando inclusive mensagens que eventualmente possam vir a ser deletadas;
  • a visualização é mais complexa. É toda construída no Streamlit com uso do Pandas (processamento geral dos dados), NLTK (processamento de linguagem natural), WordCloud (geração das núvens de palavras), SQLAlchemy (interface com o banco de dados SQL) e Plotly (para geração dos demais gráficos);
  • para os grafos de conexão são usados o NetworkX (para construção da arquitetura inicial), o Community Louvain (para identificação das comunidades) e o Gephi, em processo não programático para geração final do grafo, aquilo que o aplicativo de fato exibe publicamente.

Eventualmente, devo publicar por aqui interpretações sobre o que foi capturado, em leituras mais profundas do que o presente no próprio aplicativo.

(Visited 6 times, 1 visits today)

Deixe uma resposta