我对使用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
我不确定为什么语料库有某种不正确的维度。我的印象是语料库是可接受的输入。
有没有人能够深入了解这个错误的性质,谁曾经见过这个错误,也许对各种解决方法有一些想法?
提前致谢。
答案 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)
<强>结果:强>