R+Google Ngram Viewer = Análise de milhões de livros

O Google Ngram Viewer é uma ferramenta pouco conhecida. O que ela faz é simplesmente contar palavras, mas em milhões de livros ao mesmo tempo — que são parte do acerco do Google Books. Ou seja, faz, de modo quase instantâneo, um procedimento simples de Análise de Conteúdo.

Os seus criadores são pessoas de diversas áreas de formação e que pretendem dar início a um estudo massivo sobre cultura e comportamento através de dados quantitativos presentes na internet, iniciando pelo conteúdo dos livros. Chamam essa iniciativa de CulturonomicsNão sei se é possível dizer que já foi de todo bem sucedida, mas fato é que possuem artigo na Science e na Nature, ilustrando formas de uso da ferramenta e algumas consequências analíticas.

Mas até recentemente, o uso desses dados por parte da maioria dos usuários era feito via consultas no próprio site ou então baixando uma quantidade muito massiva de dados, partidos em inúmeros arquivos… Mas recentemente foi lançado um pacote para R que acessa, busca e retorna resultados do Ngram Viewer, permitindo, depois, analisá-los normalmente com as demais ferramentas e pacotes do R.

O código abaixo instala o pacote ngramr e faz uma busca pelos termos “science” e “religion” no corpus de livros em inglês publicados entre 1800 e 2008. Como o buscador é “case-sensitive”, vários formatos de escrita foram utilizados.

#Limpando o ambiente
rm(list=ls())

# Instalando o ngramr
install.packages("ngramr")

# Carregando os pacotes necessários (disponíveis no CRAN)
require(tseries)
require(ngramr)
require(ggplot2)
#########################################################

#Delimitando um período inicial e final para a pesquisa
start = 1800
end=2008

# Faz as pesquisas no Google Ngram Viewer e salva no objeto ng
ng = ngram(c("science+Science+SCIENCE+sciences+Sciences+SCIENCES",
      "religion+Religion+RELIGION+religions+Religions+RELIGIONS"),
      year_start = start,
      year_end=end,
      smoothing=1)

# Gráfico dos resultados
ggplot(ng, aes(x=Year, y=Frequency, colour=Phrase)) +
      geom_line(size=1.1) + opts(legend.position="bottom")

O resultado é um gráfico como esse:

Rplot

Ora… os resultados são como uma série temporal. Podemos aplicar técnicas específicas pra isso então.

# Transformando o objeto em Dataframe...
ng = as.data.frame(ng)

# Transformando as variáveis em um objeto do tipo Time Series
science = ts(ng[as.numeric(ng$Phrase)==1,]$Frequency,
      start=c(start,1),end=c(end,1),freq=1)

religion = ts(ng[as.numeric(ng$Phrase)==2,]$Frequency,
      start=c(start,1),end=c(end,1),freq=1)

######################################################
# Fazendo algumas análises:

# Aparentemente, as duas séries estão bastante correlacionadas
# O que visualmente percebemos, quando observamos as tendências
# divergentes, crescente e decrescente.

# O coeficiente de pearson corrobora isso:
cor(science,religion)
[1] -0.8703351

# Mas o Dickey-Fuller mostra que as duas séries não são estacionárias
adf.test(science)
adf.test(religion)

# Mas quando first differenced, são...
adf.test(diff(science))
adf.test(diff(religion))

# Fazendo a correlação das variáveis diferenciadas:
cor(diff(science),diff(religion))
[1] -0.05208317

É… o problema “ciência-religião” não é tão trivial… 

Ferramenta legal, não? Dá pra pensar em muitos usos — e as sugestões dos seus criadores já são bastante amplas.

Anúncios

3 respostas em “R+Google Ngram Viewer = Análise de milhões de livros

  1. Pingback: Culturomics: 5 milhões de livros como um “microscópio” para a cultura | SOCIAIS & MÉTODOS

  2. Pingback: Um pouco de História do Direito com o Ngram Viewer… | SOCIAIS & MÉTODOS

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s