使用R中的tm和wordcloud包创建文字云时出错

时间:2014-04-17 20:54:33

标签: r data-visualization tm word-cloud

我对使用tm包时遇到的一些错误有点不清楚。

我知道wordcloud包中的wordcloud函数将语料库作为参数:

如文档中所述:(您为函数提供的单词)可以是字符向量,也可以是Corpus

到目前为止一切顺利。

考虑到这一点,我有一些简单的代码如下:

library(tm)
library(wordcloud)

corpus  <-Corpus(DirSource("/.../MUSIC"), readerControl = list(language="lat")) readerControl = list(language="lat"))

a <- tm_map(corpus, removeWords, c(stopwords("en")), mc.cores=1) 

我希望下一行给我一个wordcloud:

wordcloud(a)

但我得到以下错误:

Error in simple_triplet_matrix(i = i, j = j, v = as.numeric(v),  
nrow = length(allTerms),  :  'i, j, v' different lengths  

我不确定为什么语料库有某种不正确的维度。我的印象是语料库是可接受的输入。

有没有人能够深入了解这个错误的性质,谁曾经见过这个错误,也许对各种解决方法有一些想法?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您必须从语料库中创建DocumentTermMatrix。试试这个,

tdm <- TermDocumentMatrix(corpus)  
matrix <- as.matrix(tdm)  # changed to term.matrix
v <- sort(rowSums(matrix),decreasing=TRUE)
d <- data.frame(word = names(v),freq=v)
wordcloud(d$word)

<强>结果: this is the result