Mudanças entre as edições de "Linguagem R:Wordcloud"

De BrapciWiki
Ir para navegação Ir para pesquisar
 
(9 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
== WordCloud ==
+
= Método para contagem de palavras =
  
=== Pacotes ===
+
== Pacotes ==
 
* stringr ([[R:Instalar pacotes]])
 
* stringr ([[R:Instalar pacotes]])
  
= Machado de Assis - Circulo Vicioso =
+
== Machado de Assis - Circulo Vicioso ==
 
[[Arquivo:Machado de assis circulo vicioso.jpg|semmoldura|direita]]
 
[[Arquivo:Machado de assis circulo vicioso.jpg|semmoldura|direita]]
 
  s_dirty <- 'Bailando no ar, gemia inquieto vaga-lume:
 
  s_dirty <- 'Bailando no ar, gemia inquieto vaga-lume:
Linha 21: Linha 21:
 
  Porque não nasci eu um simples vaga-lume?'
 
  Porque não nasci eu um simples vaga-lume?'
  
#Mostra o conteúdo da [[https://pt.wikipedia.org/wiki/Vari%C3%A1vel_(estat%C3%ADstica) Variável]]
+
#Mostra o conteúdo da [[Variável]]
 
  s_dirty
 
  s_dirty
  
Linha 27: Linha 27:
 
  words <- str_split(s_dirty, fixed(' '))
 
  words <- str_split(s_dirty, fixed(' '))
  
Mostar a variável words
+
Mostar a [[variável]] words
 
  words
 
  words
  
Problemas de padronização e caracteres especiais
+
Problemas de padronização e [[charactere]]s especiais
Colocando tudo em caixa baixa '''str_to_lower'''
+
Colocando tudo em caixa baixa '''str_to_lower''' ou '''tolower'''
  s <- str_to_lower(s_dirty)
+
  s <- tolower(s_dirty)
 
  s
 
  s
  
Substitui os [[character]] ENTER (\\r) e NOVA LINHA (\\n) por espaço
+
Substitui os [[charactere]] ENTER (\\r) e NOVA LINHA (\\n) por espaço e cria uma nova variável s_clean
 
  s_clean <- str_replace_all(s,'[\\r\\n]',' ')
 
  s_clean <- str_replace_all(s,'[\\r\\n]',' ')
  
Linha 41: Linha 41:
 
  s_clean
 
  s_clean
  
separando novamente as palavras, agora da variável limpa
+
separando novamente as palavras, agora da [[variável]] limpa
 
  words <- str_split(s_clean, fixed(' '))
 
  words <- str_split(s_clean, fixed(' '))
 
  words
 
  words
  
Removendo outros caracteres especiais de pontuação , . ? ! : com ENTER e NOVA LINHA
+
Removendo outros [[charactere]]s especiais de pontuação , . ? ! : com ENTER e NOVA LINHA
 
  s_clean <- str_replace_all(s,'[\\r\\n,.?!:;]',' ')
 
  s_clean <- str_replace_all(s,'[\\r\\n,.?!:;]',' ')
 
  s_clean <- str_replace_all(s_clean,' ',';')
 
  s_clean <- str_replace_all(s_clean,' ',';')
Linha 51: Linha 51:
 
Remove espaços em branco
 
Remove espaços em branco
 
Loop - Programação
 
Loop - Programação
  s_clean <- str_replace_all(s_clean,';;',';')
+
  s_clean <- str_replace_all(s_clean,';;;;',';')
  s_clean <- str_replace_all(s_clean,';;',';')
+
  s_clean <- str_replace_all(s_clean,';;;',';')
 
  s_clean <- str_replace_all(s_clean,';;',';')
 
  s_clean <- str_replace_all(s_clean,';;',';')
 
  s_clean <- str_replace_all(s_clean,';;',';')
 
  s_clean <- str_replace_all(s_clean,';;',';')
 
  s_clean
 
  s_clean
  
Separando novamente as palavras, agora da variável limpa novamente
+
Separando novamente as palavras, agora da [[variável]] limpa novamente
 
  words <- str_split(c(s_clean), fixed(';'))
 
  words <- str_split(c(s_clean), fixed(';'))
 
  words
 
  words
  
Transforma a array em uma tabela de dados e frequencia
+
Transforma a array em uma tabela de dados e frequencies
 
  freq <- table(words)
 
  freq <- table(words)
 
  freq
 
  freq
  
Ordena da maior frequencia para meno
+
Ordena da maior frequencies para meno
 
  freq <- sort(freq, decreasing=TRUE)
 
  freq <- sort(freq, decreasing=TRUE)
 
  freq
 
  freq
Linha 75: Linha 75:
 
  freq[freq["Freq"] >1]
 
  freq[freq["Freq"] >1]
  
Filtra dados com frequencia maior que 1
+
Filtra dados com frequência maior que 1
 
  freq_t[freq_t[,1] > 1,]
 
  freq_t[freq_t[,1] > 1,]
freq_t[freq_t$freq > 1,]
 
  
 
Exportar dados para o CSV
 
Exportar dados para o CSV
Linha 83: Linha 82:
 
  cat("Palavra;Frequencia", palavras, file="d:/lixo/frequencias.csv", sep="\n")
 
  cat("Palavra;Frequencia", palavras, file="d:/lixo/frequencias.csv", sep="\n")
  
Mostra dados gráficos
+
[[Arquivo:RGui word count.jpg|miniaturadaimagem|direita]]
 +
Mostrar [[Linguagem R:Gráficos]]
 
  plot(freq)
 
  plot(freq)
 +
 +
Filtrando dados para mostrar
 +
f <- freq_t[freq_t[,1] > 1,]
 +
barplot(f)
  
 
Histograma - Cluster pela frequência
 
Histograma - Cluster pela frequência
 
  hist(freq)
 
  hist(freq)
 +
 +
= WordCloud =
 +
 +
== Pacotes ==
 +
*install.packages("wordcloud") # word-cloud generator ([[R:Instalar pacotes]])
 +
 +
#Setando o local do arquivo para ser processado
 +
filePath <- "https://cedapdados.ufrgs.br/api/access/datafile/7"
 +
#Realizando leitura do arquivo já codificado
 +
text <- readLines(filePath, encoding="UTF-8")
 +
wordcloud(text)

Edição atual tal como às 13h12min de 8 de junho de 2020

Método para contagem de palavras

Pacotes

Machado de Assis - Circulo Vicioso

Machado de assis circulo vicioso.jpg
s_dirty <- 'Bailando no ar, gemia inquieto vaga-lume:
- Quem me dera que fosse aquela loura estrela,
que arde no eterno azul, como uma eterna vela !
Mas a estrela, fitando a lua, com ciúme:
- Pudesse eu copiar o transparente lume,
que, da grega coluna á gótica janela,
contemplou, suspirosa, a fronte amada e bela !
Mas a lua, fitando o sol, com azedume:
- Misera ! tivesse eu aquela enorme, aquela
claridade imortal, que toda a luz resume !
Mas o sol, inclinando a rutila capela:
- Pesa-me esta brilhante aureola de nume...
Enfara-me esta azul e desmedida umbela...
Porque não nasci eu um simples vaga-lume?'
  1. Mostra o conteúdo da Variável
s_dirty

Função str_splip, separa a frase por palavras tendo como delimitador o character definido na função

words <- str_split(s_dirty, fixed(' '))

Mostar a variável words

words

Problemas de padronização e characteres especiais Colocando tudo em caixa baixa str_to_lower ou tolower

s <- tolower(s_dirty)
s

Substitui os charactere ENTER (\\r) e NOVA LINHA (\\n) por espaço e cria uma nova variável s_clean

s_clean <- str_replace_all(s,'[\\r\\n]',' ')

mostra o conteúdo de s_clean

s_clean

separando novamente as palavras, agora da variável limpa

words <- str_split(s_clean, fixed(' '))
words

Removendo outros characteres especiais de pontuação , . ? ! : com ENTER e NOVA LINHA

s_clean <- str_replace_all(s,'[\\r\\n,.?!:;]',' ')
s_clean <- str_replace_all(s_clean,' ',';')

Remove espaços em branco Loop - Programação

s_clean <- str_replace_all(s_clean,';;;;',';')
s_clean <- str_replace_all(s_clean,';;;',';')
s_clean <- str_replace_all(s_clean,';;',';')
s_clean <- str_replace_all(s_clean,';;',';')
s_clean

Separando novamente as palavras, agora da variável limpa novamente

words <- str_split(c(s_clean), fixed(';'))
words

Transforma a array em uma tabela de dados e frequencies

freq <- table(words)
freq

Ordena da maior frequencies para meno

freq <- sort(freq, decreasing=TRUE)
freq

Convert a lista em uma tabela

freq_t <- as.matrix(freq)
colnames(freq_t) <- "Freq"
freq_t
freq[freq["Freq"] >1]

Filtra dados com frequência maior que 1

freq_t[freq_t[,1] > 1,]

Exportar dados para o CSV

palavras <- paste(names(freq), freq, sep=";")
cat("Palavra;Frequencia", palavras, file="d:/lixo/frequencias.csv", sep="\n")
RGui word count.jpg

Mostrar Linguagem R:Gráficos

plot(freq)

Filtrando dados para mostrar

f <- freq_t[freq_t[,1] > 1,]
barplot(f)

Histograma - Cluster pela frequência

hist(freq)

WordCloud

Pacotes

#Setando o local do arquivo para ser processado
filePath <- "https://cedapdados.ufrgs.br/api/access/datafile/7"
#Realizando leitura do arquivo já codificado
text <- readLines(filePath, encoding="UTF-8")
wordcloud(text)