Linguagem R:Wordcloud

De BrapciWiki
Revisão de 14h38min de 7 de junho de 2020 por Renefgj (discussão | contribs)
Ir para navegação Ir para pesquisar

WordCloud

Pacotes

 y <- scan()
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
s_dirty
  1. função str_splip, separa a frase por palavras
  2. separa por palavras tendo como delimitador o espaço e enviar para variável word
words <- str_split(s_dirty, fixed(' '))
  1. Mostar a variável words
words
  1. Problemas de padrinização e caracteres especiais
  2. Colocando tudo em caixa baixa
s <- str_to_lower(s_dirty)
s
  1. Substitui os caractres ENTER (\\r) e NOVA LINHA (\\n) por espaço
s_clean <- str_replace_all(s,'[\\r\\n]',' ')
  1. mostra o conteúdo de s_clean
s_clean
  1. separando novamente as palavras, agora da variável limpa
words <- str_split(s_clean, fixed(' '))
words
  1. Removendo outros caracteres especiais de pontuação , . ? ! : com ENTER e NOVA LINHA
s_clean <- str_replace_all(s,'[\\r\\n,.?!:;]',' ')
s_clean <- str_replace_all(s_clean,' ',';')
  1. Remove espaços em branco
  2. 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
  1. separando novamente as palavras, agora da variável limpa novamente
words <- str_split(c(s_clean), fixed(';'))
words
  1. transforma a array em uma tabela de dados e frequencia
freq <- table(words)
freq
  1. ordena da maior frequencia para meno
freq <- sort(freq, decreasing=TRUE)
freq
  1. Convert a lista em uma tabela
freq_t <- as.matrix(freq)
colnames(freq_t) <- "Freq"
freq_t
freq[freq["Freq"] >1]
  1. Filtra dados com frequencia maior que 1
freq_t[freq_t[,1] > 1,]
freq_t[freq_t$freq > 1,]
  1. Exportar dados para o CSV
palavras <- paste(names(freq), freq, sep=";")
cat("Palavra;Frequencia", palavras, file="d:/lixo/frequencias.csv", sep="\n")
  1. Mostra dados gráficos
plot(freq)
  1. histograma - Cluster pela frequencia
hist(freq)