A #VazaJato no Twitter: Redes dentro da Rede

Charles Novaes de Santana
Jun 18 · 12 min read

Em 09 de Junho de 2019, a agência de notícias divulgou as primeiras de contendo conversas entre o ex-juiz e atual Ministro da Justiça Sérgio Moro e Procuradores da Lava Jato. As diferentes reportagens apontam que as conversas — que tinham como tema principal as atividades do Juiz e dos Procuradores na Operação Lava Jato — poderiam colocar em risco a imparcialidade da Operação Lava Jato e, inclusive, resultar na anulação das decisões do Juiz Sérgio Moro vinculadas a esta operação.

No dia 13 de Junho de 2019, nós publicamos um analisando algumas reações às reportagens nas redes sociais, particularmente no Twitter. Falamos sobre a quantidade de tuítes e retuítes contendo termos relacionados a cada um dos atores envolvidos no caso, assim como apresentamos uma rede de palavras mais citadas nesses tuítes. Agora, nós vamos focar em outros aspectos das reações no Twitter ao maior caso de jornalismo investigativo da história do Brasil, um fato que pode estar reescrevendo a História do nosso país.

Redes dentro da Rede

Neste segundo post resolvemos nos debruçar sobre os grupos de usuários do Twitter que realizaram postagens sobre as reportagens do Intercept Brasil. Ao longo da semana seguinte às primeiras publicações do Intercept — especificamente a partir do dia 09/06/2019 até 16/06/2019 — nós coletamos tuítes e retuítes com as seguintes hashtags ou palavras-chave: #DesMOROnando, #EuApoioALavaJato, Moro, #MoroCriminoso, #EuToComOMoro, #VazaJato, Dallagnol, Intercept. A coleta foi feita aleatoriamente, usando uma .

A figura 1 abaixo representa o volume de tuítes coletados para cada um dos termos pesquisados.

Figura 1. Número de coletas de tuítes e retuítes para cada palavra-chave ou hashtag estudada

Para analisar estes dados nós utilizamos o conceito de Redes, ou Grafos. Uma rede pode ser entendida como um conjunto de pontos, chamados nós, conectados por linhas, chamadas arestas. Essa abstração é bastante usada para representar relacionamentos entre entidades. Em uma rede de amigos, por exemplo, os nós seriam as pessoas e as arestas entre dois nós representariam uma relação de amizade entre essas duas pessoas; aqui nos interessa particularmente a relação entre usuários do Twitter e hashtags ou palavras-chave que estes usuários escrevem. Em específico, estamos interessados nas redes entre usuários e as hashtags e palavras-chave descritas no parágrafo anterior e na figura 1.

A análise da estrutura dessas redes permite observar, por exemplo, se há hashtags mais citadas por usuários que outras, se há grupos de usuários que citam as mesmas hashtags, se há grupos de usuários que citam hashtags completamente diferentes de outros grupos de usuários, e outras informações que possam ajudar a entender melhor a repercussão das reportagens do Intercept Brasil no Twitter.

Figura 2. Rede bipartida entre usuários e palavras-chave/hashtags citadas em tuítes e retuítes. Os nós podem representar usuários do twitter ou uma das 8 palavras-chave analisadas nesse estudo, e nós que representam usuários só podem se conectar com nós que representam as palavras-chave. Quanto maior o nó de usuário, maior o número de tuítes do usuário. E quanto maior o número de citações de cada uma das palavras chave, maior o tamanho dos nós que as representam. Usuários que citam as mesmas palavras-chave são agrupados em “comunidades”, e usuários de uma mesma comunidade são representados por nós de cores iguais. A rede apresenta 4 comunidades, representadas por nós nas cores Laranja, Verde, Azul e Rosa.

Na figura 2, apresentamos uma rede bipartida entre usuários e palavras-chave/hashtags citadas em tuítes e retuítes. Os nós podem representar usuários do twitter ou uma das 8 palavras-chave analisadas nesse estudo, e nós que representam usuários só podem se conectar com nós que representam as palavras-chave. Agrupamos os usuários de acordo com a frequência de citação de cada uma das hashtags ou palavras-chave por esses usuários e representamos estes grupos por diferentes cores atribuídas aos nós. Assim, se dois nós apresentam a mesma cor, significa que os usuários do twitter representados por eles escreveram as mesmas hashtags ou palavras-chave. Em redes, um agrupamento de nós é chamado de comunidade.

Supomos que, num ambiente polarizado como o que envolve a reportagem do Intercept, quando um usuário escreve uma palavra-chave no twitter geralmente utiliza uma ou outra palavra-chave. Não escreveria “#EuToComOMoro” e “#MoroCriminoso” ao mesmo tempo, por exemplo, porque expressam sentimentos opostos com relação ao ex-juiz e hoje Ministro da Justiça de Bolsonaro. Por outro lado, é comum utilizar ao mesmo tempo palavras-chave com significados parecidos, como #MoroCriminoso e #DesMOROnando, que fazem oposição ao ex-juiz. A análise de comunidades de rede permite observar como essas características se apresentam na rede.

Essa rede representa usuários do twitter com cores diferentes dependendo das palavras-chave que usam. Ela mostra 4 comunidades bem definidas, o que sugere que os usuários do twitter que utilizaram as hashtags e palavras-chave aqui estudadas podem ser agrupados em 4 grupos: Os defensores de Moro (representados por nós laranja); os que não citam “hashtags”, mas apenas os atores envolvidos nos vazamentos (em verde); e os que falam sobre a #VazaJato (rosa) e os que consideram Moro um criminoso (azul).

Uma outra informação interessante da análise dos grupos dessa rede é que usuários que utilizam a hashtag “#EuApoioALavaJato” estão mais conectados com quem cita a palavra-chave “Moro” que com quem cita a palavra-chave “Dallagnol”. Poderíamos dizer que a lava-jato, no Twitter, está mais preocupada com o ex-juiz que com o procurador?

Classificação automática de tuítes

Na tentativa de evidenciar o embate entre as hashtags: #MoroCriminoso e #EuApoioaLavaJato, foi criada : uma assistente virtual baseada em inteligência artificial e aprendizado estatístico, disponibilizada na web, que tem como objetivo ajudar a elucidar questões que o leitor possa ter e que, por ventura, não estejam presentes nesta ou em outras publicações.

Esta assistente possui três funcionalidades interativas. Na primeira delas, são mostradas as palavras que possuem maior impacto, ou sejam aumentam a probabilidade, vista no eixo x da figura 3, da classificação de um determinado tuíte em uma das duas hashtags citadas acima.

Por exemplo, se em um tuíte houver a palavra articular, há um acréscimo de chance de, aproximadamente, 20% desta publicação ser acompanhada da hashtag #MoroCriminoso. É uma forma interessante de se acompanhar palavras chaves dos discursos que são muito presentes e determinantes para um ponto de vista, representado aqui pelas hashtags. E que faz bastante sentido também, uma vez que uma das grandes acusações relacionadas a #MoroCriminoso diz respeito justamente a articulação deste com a promotoria.

É interessante observar, por exemplo, que com as configurações padrão já se destacam algumas palavras chaves de ambos discursos.

Figura 3. Estimativa de que um termo esteja presente no mesmo tuíte com as hashtags #MoroCriminoso (em vermelho) ou #EuApoioALavaJato (em azul).

A figura 3 mostra um exemplo de análise de termos que ajudam a analisar a hashtag “#EuApoioaLavaJato”, têm-se, em destaque, palavras como “invasão”, “ilegal” e “mensagens” que formam a tríade de defesa apresentada por aqueles que foram expostos pela reportagem do Intercept. Do lado oposto, associado à hashtag “#MoroCriminoso”, as palavras “vencerá”, “maneira” e “agressão” são evidenciadas.

Pode-se inferir que estão ligadas ao questionamento da legalidade dos julgamentos realizados pelo juiz Sérgio Moro, principalmente no que tange ao réu mais emblemático da Lava Jato, Lula. Que, inclusive, tem, entre estes termos, uma referência muito marcante simbolizada pela #lulalivre.

Na segunda aba, é permitido ao usuário digitar qualquer palavra e vê se ela aumenta a probabilidade da publicação no twitter pertencer a qual das hashtags trabalhadas.

Por fim, na última aba, um desafio para nós, o usuário é convidado a digitar uma frase qualquer e vê a que hashtag ela provavelmente pertence. É um módulo interessante para testar opiniões e para entender quais palavras são fundamentais para o enquadramento de determinada frase em uma das duas hashtags opositoras.

Rede de palavras

À medida que os tuítes são disseminados eles passam a se tornar relevantes para se analisar o conteúdo que está sendo consumido em um dado contexto de análise no Twitter. Para identificar quais os tuítes mais disseminados e quais histórias eles contam, produzimos um que permite ao usuário dinamicamente analisar os conteúdos produzidos.

Na configuração padrão, o dashboard monta um gráfico que mostra a rede de palavra que se forma em torno do termo #VazaJato, tal como indicado na figura 4.

Figura 4. Rede de palavras formada a partir dos textos dos 15 tuítes mais relevantes em termos de retuítes, contendo o termo #VazaJato

Pela figura 4 percebe-se que de acordos com os parâmetros padrões do dashboard são elencados em torno de 15 tuítes mais relevantes em termos de número de retuítes, que na figura 4 são representadas por sub-redes. Uma das sub-redes que se destaca é a representada na figura 5.

Figura 5. Sub-rede de destaque entre a rede de palavras dos 15 tuítes mais relevantes em termos de número de retuítes

Essa sub-rede é relativamente densa em relação às demais. É formada por 6 palavras, vértices na representação de redes. Ao que parece todos os vértices se comunicam entre si. Percebe-se ainda uma linguagem utilizada bem mais rebuscada do que normalmente se vê nos tuítes. Ao usuário do dashboard é dada a possibilidade de se expandir essa análise. Uma opção é a de diminuir o nível de correlação entre as palavras. O valor padrão é 0.65, mas pode ser reduzido até 0.5. E é isso que é feito para gerar a figura 6.

Figura 6. Sub-rede de destaque dentro da rede de palavras, construída com correlação de 0.5, dos 15 tuítes mais relevantes em termos de número de retuítes

Nota-se na figura 6 que há um desdobramento no momento que são incluídas palavras até 50% correlacionadas. Há uma formação de uma outra sub-rede que dialoga com a que foi mostrada na figura 5. Novas palavras que dão contexto são acrescentadas e também surgem nomes de usuários. Nesse caso temos a formação de dois tuítes que se comunicam. Eles foram produzidos pelo Intercept e são ligados entre si porque são feitas referências a usuários que aparecem nos tuítes. Vale frisar aqui que ambos tuítes tratam da sugestão de Moro para a Lava Jato de pautarem a imprensa. De acordo com o tuíte eles acataram a sugestão. Já no segundo tuíte as palavras montam a frase “chats privados revelam colaboração proibida”. Como mostrado nas figuras 4, 5 e 6 o dashboard permite refinar a exploração dos conteúdos mais divulgados. Os filtros disponibilizados trabalham com as seleções de termos, tamanho das fontes, número mínimo de vezes que uma palavra precisa aparecer no banco de dados para aparecer na rede, além da possibilidade se selecionar o tipo de layout de grafo. O dashboard de palavras interativo pode ser visualizado .


Nota metodológica

Acreditamos que o Twitter pode fornecer informações valiosas sobre as mudanças políticas. Embora existam limitações nos resultados — se, por acaso, compararmos com pesquisas empíricas ao “estilo antigo” com grupos focais, entrevistas — a magnitude, a velocidade e o tipo de interação entre os usuários proporcionada e obviamente formatada pela plataforma permite uma fonte de comportamentos impossível de ser ignorada. Um dos pressupostos subjacentes aos tweets de modo geral — e aos de caráter ou teor político em especial — é que “ estamos lidando com as reações das pessoas a um fenômeno ou evento social, que eles queriam que fosse público e que, além disso, “isto é especialmente relevante para a análise de fenômenos políticos”, conforme descrito em revisão de literatura liderada por .

Por outro lado, a velocidade com que as informações são transacionadas no Twitter geralmente acabam produzido homologias com o modo como as próprias análises são conduzidas. A necessidade de apresentar uma interpretação sobre o grande volume de atos comunicacionais que estão sendo produzidos, especialmente enquanto o “assunto ainda está quente”, pode resultar em vieses e/ou erros de interpretação. Existe, além disso, uma situação mais preocupante. Como a coleta, análise e produção de visualizações de dados de redes sociais digitais — no presente caso o Twitter — exige uma clara expertise técnica, é comum que a atenção aos resultados seja diretamente proporcional ao desconhecimento de como chegar até os mesmos. Embora não possamos nos aprofundar neste momento acerca destes aspectos, o presente esforço tentou solucionar algumas limitações atentando para as etapas da amostragem e análise.

Há um forte debate acerca dos “filtros-bolha” na redes sociais, segundo definiçao de , ou o que tem sido denominado de “cyberbalcanização” dos dados, conforme descrito por e por . Ou seja, a ideia de que nas redes sociais digitais existiria uma forte tendência, em parte pela própria organização do ecossistema da plataforma, de nos aproximarmos daqueles compartilham as mesmas opiniões e, na mesma medida, excluirmos toda e qualquer diferença, contradição, etc. Por este motivo, no sentido de recuperarmos o caráter controverso do debate político subjacente à reportagem da agência Intercept, nós optamos coletar diferentes #hashtags. Ou seja, nós precisávamos capturar a diversidade subjacente ao debate, embora saibamos que ainda possa existir a possibilidade de filtros referentes à coleta pela API. Algo, diga-se de passagem, comum a toda e qualquer pesquisa com dados do Twitter e que costuma não ser mencionado.

Em relação à análise dos dados, nós disponibilizamos todos os códigos de programação (scripts) referentes à coleta, análise e visualização dos dados, bem como, a própria base de dados que foi analisada . Em todas as etapas utilizamos a linguagem R. Para a montagem gráfica das redes foi utilizado o aplicativo . Ao publicizarmos os métodos e os dados, esperamos que — a despeito da necessidade de expertise que mencionamos anteriormente — toda(o) e qualquer pesquisador(a) possa retomar os passos que fizemos e compreender os limites e possibilidades dos resultados encontrados.

Sobre a rede de palavras, destaca-se que as palavras passam por um filtro que tem por critério não apenas stop-words, como também as que não passam pelo critério tf_idf com valor diferente de zero. Dessa forma há uma razoável probabilidade de que o vocabulário utilizado seja relevante para a montagem da rede. O menu do dashboard traz opções de número de repetições para inclusão de palavras e nível de correlação entre as palavras. A primeira opção influencia principalmente no número de redes que são formadas já que uma opção que inclui palavras com menos frequência de citação disponibiliza um maior número de palavras a serem tratadas nos filtros. Já a segunda opção influencia o tamanho de cada sub-rede. Quanto menor a correlação mínima entre as palavras, maior o número de palavras que se combinarão.

Por fim um pouco de luz sobre o Lavínia. O aplicativo é dividido em três módulos com abordagens de aprendizados estatísticos que merecem destaque. Para o “overview” e “describe”, é utilizado uma regressão logística através do Elastic-Net, modelo de regressão regularizado. Esta abordagem é interessante visto a quantidade de variáveis e a interpretabilidade deste tipo de modelo, fato que aproxima o leitor aos resultados obtidos. Os resultados obtidos (estimate) são referentes aos coeficientes da regressão logística que mostra o quão intensamente aquela palavra contribui para uma das duas hashtags que guiam a classificação proposta.

No “mind reader”, a classificação dos tweets é realizada através do algoritmo de , considera-se neste caso a quantidade de variáveis, assim como o apresentado acima, e a possibilidade de usar um modelo agnóstico () para interpretar os resultados obtidos pelo XGBoost, dando, assim, humanidade a este algoritmo black box.

Sobre os autores

: “Lulista de Dados” com experiência em modelagem computacional e análise de dados usando sistemas complexos, estatística computacional e inteligência artificial. Programador nas linguagens R, C++ e Julia. Graduado em Ciência da Computação (2006), com mestrado em ciências ambientais (2007), e em mudanças climáticas (2009) com doutorado na mesma área (2013). Atualmente atua como Pesquisador de Postdoc no ETH-Zurich. Co-fundador da empresa.

: “Lulista de Dados”, estudante de doutorado do Programa de Engenharia Industrial da Universidade Federal da Bahia. Formado em Engenharia Sanitária e Ambiental (2015) e com mestrado na mesma área (2017). Dedico o seu tempo ao aprendizado estatístico e aprendizado de máquina com particular interesse em métodos de redução de dimensionalidade, temas relacionados a modelagem ambiental e qualquer desafio que lhe tire o sono!

— Doutor em Administração pela Universidade de Brasília (2014). Atualmente é auditor federal de finanças e controle da Secretaria do Tesouro Nacional (STN). A trajetória profissional e acadêmica mais recente está principalmente relacionada a dados abertos e desenvolvimento de produtos que resultem em maior transparência do Setor Público brasileiro. Nos finais de semana costuma utilizar o R para investigar perguntas de pesquisa que escapam ao mundo das finanças públicas.

— Formado na Universidade Federal de Santa Catarina (2014). Trabalha no Ministério da Agricultura, Pecuária e Abastecimento desde 2015, atuando hoje como Coordenador de Inovação. É mestrando do Programa de Pós-Graduação em Estudos Latino-Americanos da UnB.

— Químico pelo Instituto Federal de Educação, Ciência e Tecnologia da Bahia — IFBA (1997), graduado em psicologia pela Universidade Federal da Bahia — UFBA (2002), mestre em sociologia pela Universidade de São Paulo — USP (2007) e doutor em sociologia pelo Instituto de Estudos Sociais e Políticos — IESP/UERJ (2013). Atualmente é professor do Instituto de Ciência, Tecnologia e Inovação da UFBA. Apesar de ser um padawan em R, acredita cegamente que apenas os métodos digitais, em especial a linguagem R, poderão salvar as ciências sociais.

Dadoscope

Cientistas de dados que usam dados abertos, dashboards, machine learning e um pouco de criatividade para entender o mundo à nossa volta

Charles Novaes de Santana

Written by

Data Scientist — passionate by fractals, networks, animations, and my family

Dadoscope

Dadoscope

Cientistas de dados que usam dados abertos, dashboards, machine learning e um pouco de criatividade para entender o mundo à nossa volta