Analisando as mensagens do grupo R-Brasil no Telegram

Rafael Barbosa
Data Hackers
Published in
5 min readJul 21, 2020
Telegram and R

No mundo da programação, assim como em casos gerais, temos aquelas dúvidas que nem sempre estão disponíveis no StackOverflow ou na internet a fora. Então cabe a nós estarmos em comunidades interativas e participativas para trocar essas ideias e dúvidas.

Atualmente com 1.700 usuários, a comunidade R-Brasil no Telegram é uma dessas comunidades que, particularmente para mim, sempre foi uma “mãe” na hora de tirar dúvidas e trocar uma ideia sobre N assuntos diferentes, pois é bastante diversa devido as áreas que o R abrange.

Começo de tudo

Ok, não tão profundamente talvez | Photo by Arisa Chattasa on Unsplash

Inicialmente a ideia surgiu a partir de uma discussão no grupo sobre quais eram os pacotes do R que mais foram citados no grupo desde o começo e quem mais tinha mencionado o pacote shiny em todo o histórico do grupo.

A partir dessa ideia fui buscar a resposta na internet e acabei achando esse post do Julio Trecenti que já tinha deixado todo o caminho preparado para essa análise antes.

Começando os trabalhos

Deveria ser em um computador, não? | Photo by Clark Young on Unsplash

Como retirar esses dados?

Por meio do Telegram Desktop (não achei pelo Telegram Web) existe a opção de exportar todo o histórico de conversa, seja ele de uma conversa, seja ela grupo ou individual.

Opção de onde exportar o histórico da conversa no Telegram

Irá aparecer algo parecido com a Figura abaixo. Perceba que o formato de saída será um arquivo HTML. Como queremos exportar somente as mensagens de texto, desmarcamos todas as opções, o tamanho máximo de mensagens é questão de conhecimento do grupo. Nesse caso, coloquei 500MB máximo pois acreditava ser mais ou menos isso, mas na verdade o chat só ocupou 50MB.

Opções de exportação do chat no Telegram

E ao final da exportação, temos o resultado da Figura abaixo, onde ele irá criar uma pasta com parte de arquivos em diferentes arquivos HTML, que serão os arquivos importantes para fazer a transformação e importação para o R.

Arquivos criados em uma pasta do Telegram

Para converter esses arquivos HTML para o R, o Julio criou uma função que pode ser vista nesse post (recomendo reproduzir também) e que a saída é um dataframe com as variáveis:

  1. arquivo: qual daqueles arquivos HTMLs foi retirada a mensagem
  2. data_hora: data e hora que a mensagem foi enviada
  3. nome: nome do usuário que enviou a mensagem
  4. texto: mensagem de texto

Análises descritivas

No presente dia da construção desse post, temos 44.131 mensagens de texto no histórico.

Pacotes utilizados

Uma confissão, no 3º semestre da graduação em Estatística meu professor não deixava a gente usar pacote. Agora que eu sei, hehe…

Nota 1: utilizando os comandos abaixo ele instala os pacotes automaticamente, se você não ter os pacotes instalados, e carrega-os caso já tenha instalados.

Nota 2: O pacote ggthemer deve ser instalado a partir do github diretamente com o seguinte comando: devtools::install_github("cttobin/ggthemr" e lembre-se do Rtools também.

Abaixo podemos verificar como é a estrutura de dados do dataframe já carregado no R e as primeiras mensagens do criador Felipe Barros com os demais participantes.

Primeiras mensagens do R-Brasil no Telegram carregadas no R

Usuários com mais mensagens de texto

O professor Marcelo Ventura da USP sempre foi o usuário mais ativo, juntamente com o Charles que nunca abandona o grupo, mesmo programando em 569 linguagens diferentes. A maioria usa R prioritariamente mas outros não também.

Quantidade de mensagens ordenadas por usuário

Pacotes mais mencionados no grupo

Esse era uma das propostas iniciais a se verificar, então basicamente temos que baixar os nomes de todos os pacotes “oficiais” do CRAN (Comprehensive R Archive Network) e colocá-los em um vetor para que possamos utilizar um filter verificando se naquela mensagem há ou não cada pacote, resultando no seguinte gráfico.

No script abaixo acabo por remover algumas stopwords, pois elas tem os mesmos nomes que palavras normais que comumente utilizamos, como “boa”, “rio”, “telegram”, etc, e que possuem o mesmo nome de pacotes do CRAN fazendo com que haja um certo viés na quantidade delas.

O gráfico abaixo nos mostra que o pacote campeão na quantidade de mensagens foi o shiny e logo após grande parte dos pacotes da família tidyverse. Apesar de retirar algumas stopwords automaticamente e na mão também, algumas palavras que se usam bastante nesse mundo da programação, como “csv” e “loop”, acabaram aparecendo também.

Quantidade de vezes que cada pacote foi citado no grupo

Usuários que mais mencionam o pacote shiny

Em todos esses meses (ou anos), o Henrique sempre foi o que mais citava sobre o shiny, talvez por que ele trabalhava ou brincava demais com o pacote, não sabemos. Novamente o Charles vem logo atrás e o JJ também que provavelmente utilizam bastante este pacote.

Quantidade de vezes que o pacote shiny foi citado, por usuário

Conclusões

Graças as funcionalidades do Telegram, com sua facilidade de exportação de mensagens e por ser open-source também, conseguimos gerar gráficos descritivos simples com a intenção justamente de conhecer como é a dinâmica de determinado grupo ou conversa.

Dados esses dados e sua estrutura, há diversas metodologias para serem aplicadas, desde uma mineração de texto mais aprofundada à teoria dos grafos para verificar quem é o centro daquele grupo todo. Sobre a última afirmação, aposto algumas fichas no professor Marcelo Ventura.

--

--