Análise de Sentimento dos Tweets sobre os Candidatos à Prefeito de São Paulo

Caíque Coelho
8 min readNov 24, 2020

--

Com o fim das eleições municipais em algumas cidades e o começo do segundo turno em outras, é impossível ficar longe de qualquer opinião política, seja a partir de uma notícia, uma opinião subjetiva ou até um meme.

Nas redes sociais não é diferente, somos expostos o tempo todo a opiniões de pessoas em nossa bolha de relacionamento, opiniões as quais podem nos enviesar e até levar a acreditar que um candidato é mais apoiado do que outros. A verdade é que essa influência das redes sociais e a bolha na qual estamos inseridos é algo muito relevante, muitos candidatos chegam a ocupar os trending topics gerando uma alta quantidade de informações as quais podemos analisar.

Deixando de lado qualquer opinião política e trabalhando com dados reais, neste artigo estarei demonstrando uma análise dos tweets do último mês, antes do primeiro turno, sobre alguns candidatos à prefeito de São Paulo com um modelo de inteligência artificial, a fim de conduzir uma análise de sentimentos procurando entender se esses tweets transmitem um sentimento positivo ou negativo sobre o candidato.

Mas o que é análise de sentimento?

De modo resumido é uma subárea da inteligência artificial que busca analisar textos em busca de padrões que possam indicar qual sentimento aquele texto transmite. Portanto é uma área muito complexa, pois leva em consideração puramente o texto descrito sem relevar a existência de hipérboles ou sarcasmo.

Com posse de todos os tweets a nossa inteligência artificial funciona como um “psicólogo” que leu inúmeros textos no passado e após analisar cada texto, ela atribui um sentimento para cada um deles e procura por palavras-chaves que tendem a tornar aquele texto negativo ou positivo, ou seja, com certeza um texto que contém muitas palavras como “ódio”, “tristeza”, “medo”, “pavor” e “horror” tende a ser um texto com sentimento negativo. Assim como um texto que contém palavras como “alegria”, “honra”, “prazer”, “sorriso” e felicidade” tende a ser um texto com um sentimento positivo.

Portanto tendo conhecimento dessas palavras-chaves a nossa IA busca em cada tweet tais palavras e a partir das palavras-chaves que mais se repetem ela é capaz de classificar tal texto como positivo ou negativo e caso tenha dúvida sobre o sentimento classifica tal texto como neutro, o qual estaremos descartando nesta análise.

O código com toda a extração dos tweets e análise de sentimentos pode ser encontrado no Github no link a seguir:

Classificação dos tweets em positivos e negativos em porcentagem

Tweets Positivos Boulos: 61%, Negativos: 39%
Tweets Positivos Covas: 59%, Negativos: 41%
Tweets Positivos Russomanno: 60%, Negativos: 40%
Tweets Positivos Boulos: 66%, Negativos: 34%
Tweets Positivos Boulos: 62%, Negativos: 38%
Tweets Positivos por candidatos: Covas 59%, Russomanno 60%, Boulos 61%, Arthur do Val 62%, Márcio França 66%
Tweets Negativos por candidatos: Covas 41%, Russomanno 40%, Boulos 39%, Arthur do Val 38%, Márcio França 34%

Além de podermos extrair a porcentagem de tweets positivos e negativos, também podemos verificar quais são as palavras mais citadas entre os tweets positivos e negativos:

Boulos

Palavras mais citadas em tweets positivos:

Palavras mais citadas em tweets positivos do Boulos: Esperança, Segundo Turno, Ganhar, Vencer, Chegando

Palavras mais citadas em tweets negativos

Palavras mais citadas em tweets negativos do Boulos: Segundo Turno, Covas, França, Russomanno

Covas

Palavras mais citadas em tweets positivos:

Palavras mais citadas em tweets positivos do Covas: Segundo Turno, Boulos, Pesquisa, Primeiro, França

Palavras mais citadas em tweets negativos

Palavras mais citadas em tweets negativos do Covas: Segundo Turno, Boulos, Pesquisa, França, Russomanno

Márcio França

Palavras mais citadas em tweets positivos:

Palavras mais citadas em tweets positivos do Márcio França: Boulos, Covas, Precisa Pandemia, Momento, Experiência

Palavras mais citadas em tweets negativos

Palavras mais citadas em tweets negativos do Márcio França: Boulos, Segundo, Momento, Grande, Covas

Russomanno

Palavras mais citadas em tweets positivos:

Palavras mais citadas em tweets positivos do Russomanno: Bolsonaro, Prefeito, Direita, Estratégia, Crivela

Palavras mais citadas em tweets negativos

Palavras mais citadas em tweets negativos do Russomanno: Bolsonaro, Boulos Segundo Turno, Covas, França

Arthur do Val

Palavras mais citadas em tweets positivos:

Palavras mais citadas em tweets positivos do Arthur do Val: 51, Candidato, #DebateNaCultura, Russomanno

Palavras mais citadas em tweets negativos:

Palavras mais citadas em tweets negativos do Arthur do Val: #DebateNaCultura, Russomanno, Debate, Cara, Segundo

Tópicos mais comentados

Por fim podemos utilizar uma outra estratégia de inteligência artificial chamada clusterização, que tenta organizar as informações em cluster (grupos) de informações semelhantes, ou seja, podemos agrupar todos os tweets de cada candidato em tweets que possuam o conteúdo semelhante e através dessa organização conseguimos saber os tópicos mais comuns que estão sendo comentados entre os usuários do Twitter.

Boulos

  1. Vários Tweets com o texto: “Bons ares sobrevoam a América! Começaram na Argentina, passaram pela Bolívia, pelo Chile, pelos EUA e estão chegando no Brasil!”;
  2. Tweets falando sobre a virada do Boulos, pedindo votos e indicando o candidato no segundo turno;
  3. Tweets informando a pesquisa do IBOPE, onde Covas aparece com 32% Boulos com 13%, Russomanno com 12% e França com 10%.

Covas

  1. Tweets informando que o Covas está subindo nas pesquisas e especulações sobre quem estará no segundo turno com ele;
  2. Tweets informando a pesquisa do IBOPE, onde Covas aparece com 32% Boulos com 13, Russomanno com 12 e França com 10;
  3. Tweets especulando sobre uma possível vitória de Covas no primeiro turno.

Arthur do Val

  1. Tweets comentando momentos que o candidato criticou as cotas raciais;
  2. Tweets comentando o fato da justiça multar em 10 mil a campanha do candidato por impulsionar ação negativa contra Tatto;
  3. Tweets comentando a diferença de votos entre Arthur do Val e os candidatos Márcio França, Jilmar Tatto, Andrea Matarazzo e Joice Hasselmann;

Márcio França

  1. Tweets comentando a ligação de França com Ciro e Martha;
  2. Vários tweets ligando o candidato aos “tucanos”, dizendo que: “ Márcio França, Alckmin, Covas e Dória fazem parte do mesmo projeto tucano”
  3. Vários tweets com o texto: “Nesse momento de pandemia e de uma grande crise econômica q se avizinha temos q escolher gestores com experiência que saibam o q fazer nesses momentos difíceis chega de estagiários e incompetentes se vc é de sp considere votar 4️⃣0️⃣ Márcio França”

Russomanno

  1. Tweets informando a pesquisa do IBOPE, onde Covas aparece com 32% Boulos com 13, Russomanno com 12 e França com 10;
  2. Tweets informando que as pessoas deveriam votar no Russomanno e no Crivella por serem apoiados por Bolsonaro.

O que todos esses dados podem nos dizer?

Não podemos confiar 100% na análise dos sentimentos com uso de Inteligência Artifical hoje, o algoritmo usado não foi especificamente feito para uso em tweets em português, portanto foi necessário fazer a tradução para o inglês e depois passar o texto para o modelo dizer se é um texto positivo ou negativo. Um exemplo até engraçado é o tweet:

“Se o Boulos for pro segundo turno eu sigo minha rotina de estudos certinhas n deixou um dia de fora”

O tweet acima foi classificado como negativo para Boulos, porém é um tweet positivo, a não ser que a pessoa que fez o tweet não goste tanto de estudar, daí talvez seja um tweet negativo para ele hahahaha. Além deste exemplo, outros casos são considerados como negativos enquanto deveriam ser positivos e vice-versa, no geral esses erros acaba sendo balanceados e se anulam, mas o ideal seria construirmos um modelo de Inteligência Artificial específico para tweets em português sobre política, outro ponto sobre o modelo utilizado é o fato dele ser “generalista”, ou seja, teoricamente ele classifica qualquer texto independente do tema e por ser mais generalista pode acabar não performando tão bem em um escopo específico como a política.

No entanto conseguimos extrair importantes informações sobre os tweets relacionados aos candidatos, principalmente palavras-chaves importantes nos tweets positivos e negativos. Por exemplo para o candidato Boulos temos palavras positivas como esperança e democracia, para Covas temos a porcentagem de intenção de votos em 32% e para Márcio França temos experiência, com análises deste tipo podemos entender melhor o que tem alavancado positivamente ou negativamente um candidato e usar estas informações para diversos fins, seja para marketing, melhor entendimento dos eleitores e apoiadores, maior conhecimento sobre os pontos positivos e negativos de um candidato e até entender como um candidato pode indiretamente influenciar um outro candidato com base no que seus apoiadores andam dizendo.

Dados, Inteligência Artificial, Política e Redes Sociais podem ser uma ameaça

A análise de sentimento pode ser uma forte aliada tanto dos candidatos quanto dos eleitores, mas também pode ser uma grande arma contra a democracia, uma vez que análises como esta podem derivar em outras aplicações tais como impulsionar a criação de fake news com tweets que contenham palavras negativas já associadas aos candidatos! Inclusive, já existem estudos que confirmam que o nosso cérebro aceita com maior facilidade informações que confirmem crenças pré-existentes, também já existem análises que mostram que as fake news apelam e viralizam mais do que notícias reais, e inspiram sentimentos negativos como medo e revolta, ou seja, a análise de sentimentos pode se tornar um prato cheio de conteúdos para a geração de fake news cada vez mais apelativas, convincentes e personalizadas.

Para concluirmos este artigo com o sentimento de que há esperança no fim do túnel ou não hahahaha, devemos ressaltar que o mesmo tipo de tecnologia que nos permite analisar um texto e nos dizer se o sentimento é positivo ou negativo, também pode ser utilizada para nos dizer se um texto é uma fake news ou não, os estudos em ferramentas deste tipo ainda estão em estágio muito inicial e é claro que geram muita polêmica, pois poderia uma Inteligência Artificial classificar um texto que é a opinião do seu autor como Fake News? Ou até mesmo será que uma IA realmente consegue classificar o sentimento de um texto? Tudo ainda é muito subjetivo, eu como leitor e escritor tenho minhas dúvidas e dificuldades de interpretação e ainda podemos ficar a mercê do sarcasmo, da ambiguidade e das entre linhas!

O código com toda a extração dos tweets e análise de sentimentos pode ser encontrado no Github no link a seguir:

--

--

Caíque Coelho

A QA lover and App Developer on weekends and a Data Scientist on free time. Founder App Teste Eneagrama.