R: сравнить гистограмму слов по документу - PullRequest
0 голосов
/ 01 июля 2018

Я ищу способ сравнить гистограммы слов по документам, принадлежащим к папке с несколькими документами. Я попытался сделать:

freq <- sort(colSums(as.matrix(dtm), group=Docs), decreasing=TRUE) 

Также и попробовал в ggplot вариант:

p <- p + geom_bar(stat="identity") +   facet_wrap(~ Docs)   

но, к сожалению, я получил ошибку.

Ниже приведен модифицированный пример моего кода, но, к сожалению, мои 3 документа построены как один и не сегментированы Документами:

c= c("hola como  hola como  hola como", "hola me fui hola me fui hola me fui hola me fui", "hola como estas hola como estas hola como estas" )
corpus= VCorpus(VectorSource(c))

dtm <- DocumentTermMatrix(corpus)

m <- as.matrix(dtm)   
m 
freq <- sort(colSums(as.matrix(dtm)), decreasing=TRUE)  
wf <- data.frame(word=names(freq), freq=freq)   

p <- ggplot(subset(wf, freq>1), aes(word, freq))    
p <- p + geom_bar(stat="identity") 
p <- p + theme(axis.text.x=element_text(angle=45, hjust=1)) 
p   

1 Ответ

0 голосов
/ 01 июля 2018

То, как вы создаете wf, означает, что вы теряете свои документы, и они не доступны для ggplot2. Я создаю wf как комбинацию имен документов и DTM. (Будьте осторожны, если у вас большой корпус.) Затем я включаю wf в длинном формате, чтобы ggplot был очень хорошим форматом для ggplot2. Затем просто создавайте документы так, как вам нужно, когда вы создаете свои графики. В приведенном ниже примере я разделил графики между документами.

library(tm)

c= c("hola como  hola como  hola como", "hola me fui hola me fui hola me fui hola me fui", "hola como estas hola como estas hola como estas" )
corpus= VCorpus(VectorSource(c))

dtm <- DocumentTermMatrix(corpus)

wf <- data.frame(docs=Docs(dtm), as.matrix(dtm)) 

library(tidyr)
wf <- wf %>% gather(key = "terms", value = "freq", -docs)

library(ggplot2)
ggplot(wf, aes(terms, freq)) + 
  geom_bar(stat="identity") +
  facet_wrap(~ docs) + 
  theme(axis.text.x=element_text(angle=45, hjust=1)) 

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...