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)
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()
texto1 <- as.data.frame(texto1)
paged_table(texto1)
O texto 1 contém 22 parágrafos e 4820 caracteres
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)
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")
transforme_sobre_texto <- removeWords(transforme_sobre_texto , stopwords_pt)
wordcloud(transforme_sobre_texto, scale = c(8, 0.5), max.words = 20, color = wes_palette("Royal1"))
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"))
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)
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)
texto_token <- texto_df %>%
unnest_tokens(word, text)
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
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"
)
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
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)
Text Mining no R. Disponível em: https://www.udemy.com/course/text-mining-no-r-extracao-informacao-analise-documento/ Acesso em 2022.↩︎