在 R 中生成词云的正确方法是什么?



我的目标是在r中生成一个词云,但在使用了3种不同的方法后,我很挣扎。

方法1:

textplot_wordcloud(dfm, min_count=20, random_order=FALSE, rotation=0.3, 
color=RColorBrewer::brewer.pal(8, "Dark2"))

我得到一个错误说-无法找到函数textplot_wordcloud"。我有量纲,量纲。textstats, RColorBrewer, &安装了词云库等。我不确定这个方法有什么问题。

方法2:

m <- as.matrix(dfm)
v <- sort(rowSums(m), decreasing=TRUE)
d <- data.frame(word=names(v), freq=v)
head(d, 5)
set.seed(1234)
wordcloud (words=d$word, freq=d$freq, min.freq=150, max.words=150,                          random.order=FALSE, rot.per=0.3, colors=brewer.pal(8, "Dark2"))

当我得到一个词云时,云中的每个单词都对应于一个行名。所以,wordcloud有text26, text77, text75,…等等......当我查看head(d, 3)时,我在第2列和第3列中看到了'word'和' frequency '。3作为标头。然后,我看到text26 text26 71在第一行;text77 text77 51在行2;text75 text75 50在第3行…等等......行名显示在列2中;我不确定我的代码出了什么问题。我错过了什么?

方法3:

wordcloud_topic <- function(topics, i) { cloud.data <- sort(topics[i, ],                                          decreasing=TRUE)[1:100]
wordcloud(names(cloud.data),
freq=cloud.data,
scale=c(5, 0.5),
min.freq=30,
rot.per=0.3,
random.order=FALSE) }

由于我是初学者,我不确定这个方法有什么问题。我将感谢这里的指导和帮助。谢谢你。

我很难跟随你的矩阵发生了什么,但也许尝试一些更简单的东西,如freq_table()从rstatix包,将采取一个向量,并返回一个tibble,其中单词是在一列和prop是在另一列。

library(wordcloud)
library(rstatix)
dfm <- c("pear", "apple", "orange")
d <- freq_table(dfm)[,c(1,3)]
colnames(d) <- c("word", "freq")
wordcloud (words=d$word, freq=d$freq, min.freq=150, max.words=150, 
random.order=FALSE, rot.per=0.3, colors=brewer.pal(8, "Dark2"))

这在我的系统上工作,没有wordcloud包的问题。

相关内容

  • 没有找到相关文章

最新更新