2. Pacote tidytext
O pacote tidytext foi desenvolvido em 2016 como uma maneira mais simples de trabalhar com análise de textos. Ele usa os mesmos princípios de tidy data, ou seja, trata textos como data frames de palavras individuais, que permite visualizar, manipular e resumir dados de texto de forma mais fácil.
No artigo de hoje você verá como fazer manipulações básicas de texto e entender melhor como a análise de textos pode ser simples e poderosa no R.
Entendendo os diferentes tipos de dados de texto
De forma simplificada, o formato tidytext é basicamente uma tabela que possui um token por linha. Você pode entender aqui por token como uma unidade de texto - ela pode ser uma palavra ou uma combinação de sequência de palavras.
O entrada de dados de texto se inicia com um vetor de textos, como no exemplo a seguir, com headlines das principais notícias de 14 de junho de 2019 (dia que estava escrevendo esse artigo):
headlines <- c("Seleção brasileira faz sua estréia na Copa América - Morumbi.",
"Fragilização de sindicados e medo de demissões afetam greve",
"Moro sugeriu a MP rebater 'showzinho' - Lula em depoimento")
headlines
## [1] "Seleção brasileira faz sua estréia na Copa América - Morumbi."
## [2] "Fragilização de sindicados e medo de demissões afetam greve"
## [3] "Moro sugeriu a MP rebater 'showzinho' - Lula em depoimento"
No exemplo acima temos um típico vetor de textos, que pode ser qualquer entrada de textos que você utilizará em suas análises. A seguir, vamos colocar este vetor em um data frame:
library(dplyr)
df_headlines <- tibble(linha = 1:3, textos = headlines)
df_headlines
## # A tibble: 3 x 2
## linha textos
## <int> <chr>
## 1 1 Seleção brasileira faz sua estréia na Copa América - Morumbi.
## 2 2 Fragilização de sindicados e medo de demissões afetam greve
## 3 3 Moro sugeriu a MP rebater 'showzinho' - Lula em depoimento
O data frame está pronto para ser convertido no formato tidytext, onde vamos usar um processo chamado tokenization, que consiste em quebrar o texto em tokens individuais:
library(tidytext)
df_headlines %>%
unnest_tokens(palavra, textos)
## # A tibble: 27 x 2
## linha palavra
## <int> <chr>
## 1 1 seleção
## 2 1 brasileira
## 3 1 faz
## 4 1 sua
## 5 1 estréia
## 6 1 na
## 7 1 copa
## 8 1 américa
## 9 1 morumbi
## 10 2 fragilização
## # … with 17 more rows
Note que após usar unnest_tokens nos dividimos cada texto, antes em uma linha, em multiplas linhas, mantendo a coluna de identificação linha e uma palavra por linha. Algumas transformações foram executadas por padrão:
- Outras colunas do data frame são mantidas e repetidas para cada palavra.
- A pontuação como travessões, exclamação, vírgulas e ponto-finais foram removidos.
- Todos os caracteres foram convertidos para lowercase.
Calculando frequência de palavras
Agora que já sabemos como transformar nossos dados de texto em um formato tidytext, podemos começar a fazer alguns cálculos de frequência e entender mais sobre os textos. Para tornar esta análise mais interessante, vou copiar e colar um longo texto da Wikipedia sobre a economia da cidade de São Paulo, desta forma teremos mais material para trabalhar:
wiki = tibble(linha = 1, texto = "
São Paulo possui o maior PIB dentre as cidades brasileiras, o décimo maior do mundo e, segundo projeção da PricewaterhouseCoopers, será o sexto maior em 2025.[16] Segundo dados do Instituto Brasileiro de Geografia e Estatística (IBGE), em 2016, seu Produto Interno Bruto (PIB) foi de 687 035 889,61 reais, o que equivale a cerca de 11% do PIB brasileiro, 34% do PIB, assim como 36% de toda a produção de bens e serviços, do estado de São Paulo,[147] e 21% da economia da região sudeste.[148]
De acordo com uma pesquisa divulgada Federação do Comércio de Bens, Serviços e Turismo do Estado de São Paulo (Fecomercio), se fosse um país, a cidade de São Paulo poderia ser classificada como a 36.ª maior economia do mundo, acima de nações como Portugal, Finlândia e Hong Kong. De acordo com o mesmo estudo, o município sedia 63% dos grupos internacionais instalados no país e 17 dos 20 maiores bancos.[149]
Sua região metropolitana possui um PIB de cerca de 613 bilhões de reais (dados de 2009).[150] Segundo dados do IBGE, a rede urbana de influência exercida pela cidade no resto do país abrange 28% da população e 40,5% do PIB brasileiro.[151]
A capital paulista é a sexta cidade do mundo em número de bilionários, segundo a listagem da revista Forbes considera como referência o endereço principal dos 1 210 bilionários da lista de 2011 feita pela revista, com base em valores convertidos para o dólar norte-americano.[152] Entretanto, a crise financeira de 2008-2009 afetou a renda média domiciliar per capita dos moradores de São Paulo, que, em 2008, era de 816,40 reais, o que posiciona a cidade na oitava colocação no ranking das capitais brasileiras, atrás de Florianópolis, Porto Alegre, Vitória, Brasília, Curitiba, Rio de Janeiro e Belo Horizonte.[153]
Segundo pesquisa da consultoria Mercer sobre o custo de vida para funcionários estrangeiros, São Paulo está entre as dez cidades mais caras do mundo, classificada na décima posição em 2011, 11 postos acima de sua classificação de 2010, e na frente de cidades como Londres, Paris, Milão e Nova Iorque.[154][155]
Edifícios comerciais na Avenida Paulista
Vista da região do Itaim Bibi.
Rua Oscar Freire, na região dos Jardins, eleita a oitava rua mais luxuosa do planeta[156]
Um dos maiores centros financeiros do Brasil e do mundo, São Paulo passa hoje por uma transformação em sua economia. Durante muito tempo a indústria constituiu uma atividade econômica bastante presente na cidade, porém São Paulo tem atravessado nas últimas três décadas uma clara mudança em seu perfil econômico: de uma cidade com forte caráter industrial, o município tem cada vez mais assumido um papel de cidade terciária, pólo de serviços e negócios para o país. Em São Paulo, por exemplo, está sediada a B3 (sigla de Brasil, Bolsa, Balcão), a bolsa oficial do Brasil. A B3 tinha em 2017, um patrimônio de 13 bilhões de dólares.[21] São Paulo ficou em segundo lugar depois de Nova Iorque no ranking bi-anual da revista FDI das \"Cidades do Futuro\" 2013/14 nas Américas, e foi nomeada a cidade latino-americana do Futuro 2013/14, ultrapassando a Santiago de Chile, a primeira cidade na classificação anterior. Santiago agora ocupa o segundo lugar, seguido por Rio de Janeiro,[157] o estudo também indica que São Paulo recebeu mais Investimentos Estrangeiros Diretos que Nova Iorque.[158]
O município tem alguns centros financeiros espalhados por seu território, concentrados na região das subprefeituras da Sé, Pinheiros e Santo Amaro. O principal e mais famoso deles a avenida Paulista, que abriga sedes de bancos, multinacionais, hotéis, consulados e se impõe como um dos principais pontos turísticos e culturais da cidade. O centro da cidade, que apesar de ter sido ofuscado pelas centralidades econômicas mais recentes, abriga a bolsa de valores, diversas empresas e hotéis. Além destes, outras regiões que se destacam por sua intensa e moderna verticalização, pela presença de hotéis de luxo e empresas multinacionais são as regiões das avenidas Brigadeiro Faria Lima e Luís Carlos Berrini.[159]
Muitos analistas também têm apontado São Paulo como uma importante \"cidade global\" (ou \"metrópole global\", classificação dividida apenas com o Rio de Janeiro entre as cidades brasileiras[160]). Como cidade global, São Paulo tem acesso às principais rotas aeroviárias mundiais, às principais redes de informação, assim como sedia filiais de empresas transnacionais de importância global, além de importantes instituições financeiras, mesmo estando conectada marginalmente aos fluxos transnacionais de pessoas, investimentos e empregos.[161]
O urbanista João Sette Whitaker Ferreira, entretanto, considera que a desigualdade social e a segregação espacial descaracterizam São Paulo como uma cidade global.[162] Apesar de ser o centro financeiro do país, São Paulo apresenta também alto índice de negócios ligados à economia informal.[163] Neste mesmo cenário, segundo dados de 2001 da prefeitura do município,[164] cerca de 10% dos paulistanos vivia abaixo da linha de pobreza.
A cidade de São Paulo também tem se consolidado em um polo de comércio de produtos contrabandeados, pirateados e falsificados,[165] em geral localizados em alguns pontos do centro da cidade como a Rua 25 de Março, a rua Santa Ifigênia e áreas próximas a estações de metrô. Os artigos em geral são CDs com versões piratas de softwares, filmes ou álbuns em CD e DVD,[166] ou então acessórios e itens de vestuário, principalmente mochilas e tênis de marcas internacionais, entre outros artigos. Nos últimos anos, porém, tem crescido a apreensão desses artigos pirateados.[167]
")
wiki <- wiki %>%
unnest_tokens(palavra, texto)
wiki
## # A tibble: 913 x 2
## linha palavra
## <dbl> <chr>
## 1 1 são
## 2 1 paulo
## 3 1 possui
## 4 1 o
## 5 1 maior
## 6 1 pib
## 7 1 dentre
## 8 1 as
## 9 1 cidades
## 10 1 brasileiras
## # … with 903 more rows
Por fim, agora que temos um grande conjunto de dados, vamos fazer uma contagem de frequência de palavras e plotar um gráfico com as palavras mais frequentes:
library(ggplot2)
wiki %>%
count(palavra, sort = TRUE) %>% # Para ordenar a lista por frequência
mutate(palavra = reorder(palavra, n)) %>% # Manter a ordenação de frequência para o gráfico
top_n(10) %>%
ggplot(aes(palavra, n)) +
geom_col() +
xlab(NULL) +
coord_flip()

Como podemos ver, esta análise de frequência não foi muito informativa pois as palavras com maior frequência são palavras que não trazem muito sentido a frase. Estas palavras são chamadas de stopwords e no próximo artigo você verá como fazer para tratá-las na etapa de pré-processamento de dados textuais.
Um abraço e bom aprendizado!