Capturando dados do Trending Topics

Texto por Janderson Toth

O Twitter pode não ser um espaço onde todos os segmentos da população então presentes, mas com certeza é um excelente termômetro do que está sendo discutido na sociedade. Como dito pela Dani Rodrigues (@dani_rodrigues) em suas palestras, o Twitter é o eletrocardiograma da sociedade. Das últimas tretas do congresso ao BBB, o Twitter consegue munir o usuário de informações dos mais diversos tipos, criando várias comunidades com suas próprias regras e dinâmicas de interação. Conhecer essas dinâmicas facilita o monitoramento e entendimento de como os usuários se comportam e proporciona uma maior assertividade nas análises.

Pensando nisso, o pacote {rtweet} foi desenvolvido para acessar estes dados de forma fácil e amigável aos analistas, desenvolvedores e pesquisadores.

Abaixo será mostrado como acessar os dados de Twitter, requisitar os dados de Trending Topics e visualizar estas informações. o pacote possui um site bem amigável, disponibilizando a documentação e algumas análises. (Link https://rtweet.info/)
Para baixar o pacote, basta baixar do repositório:


devtools::install_github("ropensci/rtweet")

# Carregando os pacotes
library(rtweet)

#install.packages("tidyverse") # pacote que facilita a manipulação de dataframes
library(tidyverse) 

O criador do rtweet construiu suas funções onde para acessar os dados de Treding Topics não é preciso ter um app, que é necessário quando se busca por tweets ou outras informações mais segmentadas dentro da plataforma, sendo assim, basta usar a função abaixo que você será direcionado para a tela de login do Twitter. Nesta tela basta fazer o login e após isso a função irá rodar e retornará a lista de locais em que é possível ter dados segmentados.


trends % head(10)

# A tibble: 10 x 8
# name  url   parentid country woeid countryCode  code
#                  
# 1 Worl… http…        0 ""          1 NA             19
# 2 Winn… http… 23424775 "Canad…  2972 CA              7
# 3 Otta… http… 23424775 "Canad…  3369 CA              7
# 4 Queb… http… 23424775 "Canad…  3444 CA              7
# 5 Mont… http… 23424775 "Canad…  3534 CA              7
# 6 Toro… http… 23424775 "Canad…  4118 CA              7
# 7 Edmo… http… 23424775 "Canad…  8676 CA              7
# 8 Calg… http… 23424775 "Canad…  8775 CA              7
# 9 Vanc… http… 23424775 "Canad…  9807 CA              7
# 10 Birm… http… 23424975 "Unite… 12723 GB             7
# # … with 1 more variable: place_type 

O dataframe trends contém 467 observações representando as localidades, sejam elas, países, estados ou cidades, destes, 63 são países. O Twitter ainda não possui Trending Topics de todos os países do mundo, mas estão sempre buscando aumentar esse número (então pode ser que em pouco tempo essa informação fique desatualizada 😀 ).

Como exemplo vamos buscar os dados do TT mundiais:

O primeiro passo é descobrir qual o WOEID da localização ( o WOEID é a sigla para “Where On Earth IDentifier”, literalmente “identificador de lugares na Terra”).



id_mundial % 
  filter(name == "Worldwide") %>% 
  select(woeid) %>% 
  as.character()
  

Já era possível saber o woeid dando uma rápida olhada na tabela Trends, mas da forma acima fica mais ‘formal’ e com menos chance de erro caso tenha alguma mudança na identificação.

Sendo assim, basta rodar a função abaixo e teremos a lista dos 50 principais tópicos neste momento. Estes dados nos mostram o acumulado de tweets nas últimas 24h e com 5 minutos de atraso.



mundial % head(20)

# # A tibble: 20 x 9
# trend    url                promoted_content query         tweet_volume place woeid as_of               created_at         
#                                                                             
#   1 #Erdo?a… http://twitter.co… NA               %23Erdo%C4%9…        40638 Worl…     1 2020-03-05 19:37:20 2020-03-05 19:35:05
# 2 #ThankY… http://twitter.co… NA               %23ThankYouE…        49988 Worl…     1 2020-03-05 19:37:20 2020-03-05 19:35:05
# 3 #Warren… http://twitter.co… NA               %23WarrenToB…        31416 Worl…     1 2020-03-05 19:37:20 2020-03-05 19:35:05
# 4 #PitMad  http://twitter.co… NA               %23PitMad           124507 Worl…     1 2020-03-05 19:37:20 2020-03-05 19:35:05
# 5 The Las… http://twitter.co… NA               %22The+Last+…        31033 Worl…     1 2020-03-05 19:37:20 2020-03-05 19:35:05
# 6 #somost… http://twitter.co… NA               %23somostodo…       110466 Worl…     1 2020-03-05 19:37:20 2020-03-05 19:35:05
# 7 The Wire http://twitter.co… NA               %22The+Wire%…        10546 Worl…     1 2020-03-05 19:37:20 2020-03-05 19:35:05
# 8 PRIOR A… http://twitter.co… NA               %22PRIOR+ATE…        20979 Worl…     1 2020-03-05 19:37:20 2020-03-05 19:35:05
# 9 Gerrit … http://twitter.co… NA               %22Gerrit+Co…           NA Worl…     1 2020-03-05 19:37:20 2020-03-05 19:35:05
# 10 Ghost o… http://twitter.co… NA               %22Ghost+of+…        25293 Worl…     1 2020-03-05 19:37:20 2020-03-05 19:35:05
# 11 Aaron S… http://twitter.co… NA               %22Aaron+Sch…           NA Worl…     1 2020-03-05 19:37:20 2020-03-05 19:35:05
# 12 Al Mich… http://twitter.co… NA               %22Al+Michae…           NA Worl…     1 2020-03-05 19:37:20 2020-03-05 19:35:05
# 13 TLOU     http://twitter.co… NA               TLOU                    NA Worl…     1 2020-03-05 19:37:20 2020-03-05 19:35:05
# 14 KHKTV A… http://twitter.co… NA               %22KHKTV+Asl…        12754 Worl…     1 2020-03-05 19:37:20 2020-03-05 19:35:05
# 15 #Corona… http://twitter.co… NA               %23CoronaVir…        79077 Worl…     1 2020-03-05 19:37:20 2020-03-05 19:35:05
# 16 #YesBank http://twitter.co… NA               %23YesBank           20968 Worl…     1 2020-03-05 19:37:20 2020-03-05 19:35:05
# 17 #LaCasa… http://twitter.co… NA               %23LaCasaDeP…           NA Worl…     1 2020-03-05 19:37:20 2020-03-05 19:35:05
# 18 #BilenK… http://twitter.co… NA               %23BilenKaza…           NA Worl…     1 2020-03-05 19:37:20 2020-03-05 19:35:05
# 19 #LCDP4   http://twitter.co… NA               %23LCDP4             59409 Worl…     1 2020-03-05 19:37:20 2020-03-05 19:35:05
# 20 #??????… http://twitter.co… NA               %23%D8%A7%D9…        43993 Worl…     1 2020-03-05 19:37:20 2020-03-05 19:35:05
 

Também é possível visualizar os códigos woeid apenas do Brasil.



trends %>%
filter(country == "Brazil")

# # A tibble: 16 x 8
# name           url                                          parentid country    woeid countryCode  code place_type
#                                                                           
#   1 Brasília       http://where.yahooapis.com/v1/place/455819   23424768 Brazil    455819 BR              7 Town      
# 2 Belém          http://where.yahooapis.com/v1/place/455820   23424768 Brazil    455820 BR              7 Town      
# 3 Belo Horizonte http://where.yahooapis.com/v1/place/455821   23424768 Brazil    455821 BR              7 Town      
# 4 Curitiba       http://where.yahooapis.com/v1/place/455822   23424768 Brazil    455822 BR              7 Town      
# 5 Porto Alegre   http://where.yahooapis.com/v1/place/455823   23424768 Brazil    455823 BR              7 Town      
# 6 Recife         http://where.yahooapis.com/v1/place/455824   23424768 Brazil    455824 BR              7 Town      
# 7 Rio de Janeiro http://where.yahooapis.com/v1/place/455825   23424768 Brazil    455825 BR              7 Town      
# 8 Salvador       http://where.yahooapis.com/v1/place/455826   23424768 Brazil    455826 BR              7 Town      
# 9 São Paulo      http://where.yahooapis.com/v1/place/455827   23424768 Brazil    455827 BR              7 Town      
# 10 Campinas       http://where.yahooapis.com/v1/place/455828   23424768 Brazil    455828 BR              7 Town      
# 11 Fortaleza      http://where.yahooapis.com/v1/place/455830   23424768 Brazil    455830 BR              7 Town      
# 12 Goiânia        http://where.yahooapis.com/v1/place/455831   23424768 Brazil    455831 BR              7 Town      
# 13 Manaus         http://where.yahooapis.com/v1/place/455833   23424768 Brazil    455833 BR              7 Town      
# 14 São Luís       http://where.yahooapis.com/v1/place/455834   23424768 Brazil    455834 BR              7 Town      
# 15 Guarulhos      http://where.yahooapis.com/v1/place/455867   23424768 Brazil    455867 BR              7 Town      
# 16 Brazil         http://where.yahooapis.com/v1/place/23424768        1 Brazil  23424768 BR             12 Country  

Como exemplo, podemos pegar os dados de São Paulo e verificar qual o TT agora.


id_SP % 
  filter(name == "São Paulo") %>% 
  select(woeid) %>% 
  as.character()

sao_paulo % 
  select(trend, tweet_volume) %>% 
  as.data.frame()


#                         trend tweet_volume
# 1  #somostodosgabrielmonteiro       110466
# 2                 #ForaDaniel        30405
# 3                    Paraguai        40761
# 4                       #bdsp           NA
# 5                        Dudu        20520
# 6              #fsradiobrasil           NA
# 7                     Marcela       228904
# 8             PRIOR ATE O FIM        20979
# 9                     #SEJOGA           NA
# 10             The Last of Us        31033
# 11   ZERO ESTALECAS FOI MUITO           NA
# 12                    Nairóbi        27972
# 13                     R$5,00        10573
# 14          Agostinho Carrara           NA
# 15                       TDAH           NA
# 16          Ghost of Tsushima        25293
# 17            PROVA DA COMIDA           NA
# 18                       Ibis        14808
# 19                       TLOU           NA
# 20                Castlevania        28073
# 21              OLHOS ABERTOS           NA
# 22         CHEGA DE FAKE NEWS           NA
# 23                       Waze           NA
# 24                   weverton           NA
# 25                   Duvivier           NA
# 26                   Gregório           NA
# 27                PIB Privado           NA
# 28                     R$4,61        14559
# 29                 Ellen Page           NA
# 30                 Censo 2020           NA
# 31                   Capricho           NA
# 32              EXPULSO DA PM           NA
# 33                      O PVC           NA
# 34              Garoto Errado           NA
# 35                     #LCDP4        59409
# 36             #LaCasaDePapel           NA
# 37            #ILoveMeTONIGHT        14919
# 38         #RexonaDanceStudio           NA
# 39          #TheBookOfYouAndI           NA
# 40        #loveisblindReunion        21994
# 41   #DisneyAdaptPercyJackson           NA
# 42      #CaminhosDoCoração243           NA
# 43                #AtardeESua           NA
# 44                     #Priel           NA
# 45               #guinosejoga           NA
# 46              #ScoobyOFilme           NA
# 47             #7TRACKBYTRACK        47081
# 48          #500DaysWithATEEZ           NA
# 49            #foxsportsradio           NA
# 50                     #dolar           NA

Como nem tudo é perfeito, a busca por Trending Topics possui algumas limitações, entre elas podemos destacar que o Twitter só permite 75 requisições de dados a cada 15 minutos (ou seja, apenas 75 localidades a cada 15 minutos) e também que nem todas as localidades estão contempladas (enquanto São Paulo possui dados da cidade de São Paulo, Campinas e Guaralhus a presença de cidades do norte, nordeste e centro-oeste é minima).
Estes dados podem ser usados de diversas maneiras, como integrados a dashboard de monitoramento em tempo real ou através da bots, como o Trendy, que envia o TT para os usuários a cada hora.

Curso Online Ciência de Dados com R.  Abrimos duas turmas para o Curso Online sobre a linguagem, que é uma ferramenta poderosa voltada para a análise de dados. O curso será ao vivo 100 % prático, com live coding e maior interação Professor+Aluno para todos aqueles que queiram entrar no mundo de análise e visualização de dados, estatística e machine learning com R. Após 4 anos espalhando a palavra do R para mais de 20 turmas do curso referência na área de Ciência de Dados, chegamos com mais uma novidade!

Tags:  ,   ,   ,  

Comentários

comments

Deixe um comentário