Referência de código 1

Pacotes utilizados para minerar o texto e formatar este relatório e as visualizações

library(rvest)  
library(stringr)  
library(tidytext)  
library(dplyr)
library(ggplot2)  
library(tidyr) 
library(tm)
library(NLP)
library(wordcloud)
library(wesanderson)
library(knitr)
library(rmarkdown)
library(kableExtra)
library(htmltools)
library(prettydoc)


1 Extração do Texto

texto <- read_html(c("https://www.baguete.com.br/noticias/30/10/2020/ciencia-de-dados-continuara-sendo-a-grande-profissao-do-futuro")) 
texto1 <-  texto %>%
html_nodes("p") %>%
html_text() 


2 Introdução do Texto

texto1 <- as.data.frame(texto1)
paged_table(texto1)

O texto 1 contém 22 parágrafos e 4820 caracteres



3 Tratamento e Limpeza dos dados

transforme_sobre_texto <- tolower(texto1)
transforme_sobre_texto <- removePunctuation(transforme_sobre_texto) 
transforme_sobre_texto <- removeNumbers(transforme_sobre_texto) 
transforme_sobre_texto <- stripWhitespace(transforme_sobre_texto)


3.1 Criação personalizada do vetor de Stopwords

O vetor inclui, além do objeto stopword do pacote tm, outras palavras irrelevantes para a mineração de texto

stopwords_pt <- c(stopwords("pt"), "o", "é", "do", "ser", "nesse", "mas")


3.2 Remoção das stopwords do texto

transforme_sobre_texto  <- removeWords(transforme_sobre_texto , stopwords_pt)


4 Nuvem de Palavras

wordcloud(transforme_sobre_texto, scale = c(8, 0.5), max.words = 20, color = wes_palette("Royal1"))

5 Tratamento do texto utilizando o objeto Corpus

texto_c <- read_html(c("https://www.baguete.com.br/noticias/30/10/2020/ciencia-de-dados-continuara-sendo-a-grande-profissao-do-futuro")) 
texto_corpus <-  texto_c %>%
html_nodes("p") %>%
html_text() 

corpus_texto <-VCorpus(VectorSource(texto_corpus))

corpus_texto <- tm_map(corpus_texto, removePunctuation)
corpus_texto <- tm_map(corpus_texto, removeNumbers)
corpus_texto <- tm_map(corpus_texto, removeWords, stopwords("pt"))

5.1 Geração da Matriz Documentos-Termos

dtm_texto <- DocumentTermMatrix(corpus_texto)
dtm_texto
## <<DocumentTermMatrix (documents: 22, terms: 342)>>
## Non-/sparse entries: 409/7115
## Sparsity           : 95%
## Maximal term length: 16
## Weighting          : term frequency (tf)

6 Mineração do texto utilizando o objeto Tidy

texto_t <- read_html(c("https://www.baguete.com.br/noticias/30/10/2020/ciencia-de-dados-continuara-sendo-a-grande-profissao-do-futuro")) 
texto_tidy <-  texto_t %>%
html_nodes("p") %>%
html_text()

texto_df <- data_frame(text = texto_tidy)

6.1 Tokenização

texto_token <- texto_df %>%
  unnest_tokens(word, text)

6.2 Frequência das palavras sem stopwords

stopwords_portu <- c(stopwords("pt"), "mas","o","é", "ser", "nesse")
stopwords_portu_df <- data.frame(word = stopwords_portu)

texto_token <- texto_token %>%
  anti_join(stopwords_portu_df, by = "word")

texto_token %>%
  count(word, sort = TRUE)
## # A tibble: 349 × 2
##    word             n
##    <chr>        <int>
##  1 dados           19
##  2 brasil           5
##  3 ciência          5
##  4 mil              4
##  5 online           4
##  6 profissional     4
##  7 anos             3
##  8 caminho          3
##  9 empresas         3
## 10 futuro           3
## # … with 339 more rows

6.3 Gráfico com os termos mais frequentes

texto_token %>%
  count(word, sort = TRUE) %>%
  filter(n > 3) %>%
  mutate(word = reorder(word, n)) %>%
  ggplot(aes(word, n)) +
  geom_col(fill = "#245968") +
  xlab(NULL) +
  coord_flip() +
  labs(
       y = "Frequência Termos"
      )

7 NGRAMS - Ocorrência conjunta de termos

texto_ngrams <- texto_df %>%
  unnest_tokens(ngram, text, token = "ngrams", n = 3)

texto_ngrams %>%
  count(ngram, sort = TRUE)
## # A tibble: 720 × 2
##    ngram                   n
##    <chr>               <int>
##  1 ciência de dados        5
##  2 a ciência de            3
##  3 <NA>                    3
##  4 cientista de dados      2
##  5 cientistas de dados     2
##  6 de dados mas            2
##  7 de ser um               2
##  8 do brasil a             2
##  9 jogos de aposta         2
## 10 profissão do futuro     2
## # … with 710 more rows

7.1 NGRAMS - Ocorrência conjunta de termos sem stopwords

ngrams_new <- texto_ngrams %>%
  separate(ngram, c("P1", "P2", "P3"), sep = " ")


ngrams_new<- ngrams_new%>%
  filter(!P1 %in% stopwords_portu ) %>%
  filter(!P2 %in% stopwords_portu ) %>%
  filter(!P3 %in% stopwords_portu )

freq_ngram <- ngrams_new %>% 
  count(P1,P2,P3,sort = TRUE)
freq_ngram <- na.omit(freq_ngram)

paged_table(freq_ngram)