首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R:逐个文档比较单词直方图

R:逐个文档比较单词直方图
EN

Stack Overflow用户
提问于 2018-07-01 07:47:04
回答 1查看 188关注 0票数 0

我正在寻找一种方法,以比较文字直方图的文件,属于一个文件夹语料库与几个文件网。我确实尝试过:

代码语言:javascript
复制
freq <- sort(colSums(as.matrix(dtm), group=Docs), decreasing=TRUE) 

同时,也尝试了ggplot选项:

代码语言:javascript
复制
p <- p + geom_bar(stat="identity") +   facet_wrap(~ Docs)   

但令人遗憾的是,我错了。

下面是一个修改过的代码示例,但令人遗憾的是,我的3个文档的情节类似于一个文档,也没有被Docs分割:

代码语言:javascript
复制
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   
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-01 08:23:59

创建wf的方式意味着您正在丢失您的文档,并且它们对ggplot2不可用。我将创建wf作为文档名称和dtm的组合。(如果你有一个很大的语料库,这里要小心。)然后,我把wf转换成一个长格式,所以ggplot对于ggplot2来说是非常好的格式。然后,当你创建你的地块时,你只需用你所需要的任何方式进行整理。在下面的示例中,我在文档之间拆分了图。

代码语言:javascript
复制
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)) 

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51121368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档