O movimento por Dados Abertos está contribuindo imensamente para uma maior transparência e consequente maior fiscalização. Mas outro ponto super relevante é como os nossos cientistas políticos estão adorando todo esse processo. Nunca foi tão fácil obter dados que antes eram extremamente trabalhosos e difíceis de serem obtidos.
A mais recente novidade é o pacote para R congressbr, desenvolvido por Guilherme Duarte e Robert McDonnell (professores dos cursos de R do IBPAD) e Danilo Freire. O que o pacote faz é buscar nas APIs da Câmara dos Deputados e Senado Federal os dados e é uma “mão na roda”. Muitas vezes os dados das APIs são bem confusos e, principalmente, Senado e Câmara não se conversam muito.
Vou mostrar um rápido exemplo do pacote:

#Instalando o pacote direto do repositório do GitHub
devtools::install_github("RobertMyles/congressbr")
#Carregando o pacote
library("congressbr")
#Buscando a lista de PLs na Câmara em 2017. Você pode escolher entre "PEC" e outras proposições.
PLsCamara <- cham_bills(type = "PL", year = 2017)
#Buscando as informações detalhadas de cada PL
datalist = list() #criando uma lista vazia
for(i in 1:nrow(PLsCamara)){
  cat(i, "\n ")
    dat2 <- cham_bill_info_id(PLsCamara$bill_id[i])
  datalist[[i]] <- dat2 # adicionando cada chamada na minha lista
}
#transformando minha lista em um dataframe
PLDetalhadosCamara <- dplyr::bind_rows(datalist)

Depois de ter rodado esse código, você terá um data.frame com informações detalhadas de todos os PLs que foram apresentados em 2017. Uma variável que eu acho super legal é a variável de bill_index . Essa é uma variável de texto com a indexação em termos da proposição. Quem faz a inserção é a Mesa da Câmara dos Deputados, o que nos garante uma certa qualidade nos termos. Vou utilizar essa variável para fazer alguns tratamentos de texto e entender um pouco o que nossos Deputados Federais andaram apresentando em 2017.
 

#carregando o pacote TM
library(tm)
#definindo meu corpus
myCorpus <- Corpus(VectorSource(PLDetalhadosCamara$bill_index))
#procedimentos de limpeza e tratamento
#deixando tudo minúsculo, removendo espaços e pontuação
myCorpus <- tm_map(myCorpus, content_transformer(tolower))
myCorpus <- tm_map(myCorpus, stripWhitespace)
myCorpus <- tm_map(myCorpus,removePunctuation)
#removendo palavras que atrapalhariam a análise, atente-se que estou utilizando um dicionário padrão de "stopwords" do pacote e um conjunto de outros termos, ok? você pode continuar essa lista ou remover alguns termos daí também.
limpeza = c(stopwords("portuguese"),
              "federal", "lei", "nacional", "alteracao", "criacao")
myCorpus = tm_map(myCorpus, removeWords, limpeza)
#gerando as tabelas de frequencia
myCorpus <- tm_map(myCorpus, PlainTextDocument)
tdm <- TermDocumentMatrix(myCorpus,
                          control = list(wordLengths = c(1, Inf)))
tdm
dtm <- as.DocumentTermMatrix(tdm)
(freq.terms <- findFreqTerms(tdm, lowfreq = 2))
term.freq <- rowSums(as.matrix(tdm))
#optei por deixar um valor mínimo de frequencia de 2 nos termos. você pode trabalhar isso conforme desejar.
term.freq <- subset(term.freq, term.freq >= 2)
term.freqdf <- data.frame(term = names(term.freq), freq = term.freq)

Os tratamentos feitos aqui são “padrões” e é muito provável que você vá utilizá-los em bases diferentes. Vou mostrar nesse post uma simples nuvem de palavras e nos próximos posts pretendo avançar um pouco na área de “text mining”.

#carregando o pacote
library(wordcloud)
#vou colocar uma semente aqui para quando você gerar aí a nuvem ficar igual
set.seed(1234)
#gerando a nuvem
wordcloud(words = term.freqdf$term, freq = term.freqdf$freq, min.freq = 1,
          max.words=200, random.order=FALSE, rot.per=0,
          colors=brewer.pal(8, "Dark2"))

Resultado:
camaraPL2017
 
Resultado simples, mas tenho certeza que você já pensou em vááárias possibilidades, não é?  Não esquece de comentar aqui.
Ficou curioso e não sabe trabalhar com R? Que tal aprender conosco em nossa formação? O curso de Programação em R em São Paulo começa dia 6 de maio. Em Brasília nós teremos o curso de Dados para Relações Governamentais. 
 
 
 

---
Para quem quer se aprofundar mais no uso de dados na política, o Ibpad lançou uma Formação completa com quatro cursos incríveis, confira:

Dados & Mapas – Identifique regiões de eleitores leais utilizando bases geolocalizadas
Pesquisas Eleitorais – Para tomar decisões corretas utilizando pesquisas de opinião
Pesquisa Qualitativa – Para entender como os eleitores pensam utilizando grupos focais
Inteligência de Dados em Mídias Sociais – Para quem quer ser relevante nas redes monitorando e analisando dados online