Mudanças entre as edições de "Linguagem R:Wordcloud"
| (11 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
| Linha 1: | Linha 1: | ||
| − | = | + | = Método para contagem de palavras = |
| − | + | == 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 [[ | + | #Mostra o conteúdo da [[Variável]] |
s_dirty | 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(' ')) | words <- str_split(s_dirty, fixed(' ')) | ||
| − | + | Mostar a [[variável]] words | |
words | words | ||
| − | + | Problemas de padronização e [[charactere]]s especiais | |
| − | + | Colocando tudo em caixa baixa '''str_to_lower''' ou '''tolower''' | |
| − | s <- | + | s <- tolower(s_dirty) |
s | 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]',' ') | s_clean <- str_replace_all(s,'[\\r\\n]',' ') | ||
| − | + | mostra o conteúdo de s_clean | |
s_clean | s_clean | ||
| − | + | 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 [[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,' ',';') | ||
| − | + | 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 <- 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 | |
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 frequencies | |
freq <- table(words) | freq <- table(words) | ||
freq | freq | ||
| − | + | Ordena da maior frequencies para meno | |
freq <- sort(freq, decreasing=TRUE) | freq <- sort(freq, decreasing=TRUE) | ||
freq | freq | ||
| − | + | Convert a lista em uma tabela | |
freq_t <- as.matrix(freq) | freq_t <- as.matrix(freq) | ||
colnames(freq_t) <- "Freq" | colnames(freq_t) <- "Freq" | ||
| Linha 76: | Linha 75: | ||
freq[freq["Freq"] >1] | freq[freq["Freq"] >1] | ||
| − | + | Filtra dados com frequência maior que 1 | |
freq_t[freq_t[,1] > 1,] | freq_t[freq_t[,1] > 1,] | ||
| − | |||
| − | + | Exportar dados para o CSV | |
palavras <- paste(names(freq), freq, sep=";") | palavras <- paste(names(freq), freq, sep=";") | ||
cat("Palavra;Frequencia", palavras, file="d:/lixo/frequencias.csv", sep="\n") | cat("Palavra;Frequencia", palavras, file="d:/lixo/frequencias.csv", sep="\n") | ||
| − | + | [[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 | ||
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
Índice
Método para contagem de palavras
Pacotes
- stringr (R:Instalar pacotes)
Machado de Assis - Circulo Vicioso
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?'
- 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")
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
- 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)