![](/img/trans.png)
[英]Errors when creating a wordcloud using the tm and wordcloud packages in R
[英]Error reading txt file into R and turning it into a wordcloud using the tm package
{R版本3.1.2}
我正在尝试制作一个函数,该函数可以采用工作目录中任何txt文件的名称并自动读取它,删除停用词并创建词云。 这是到目前为止的代码:
word_cloud <- function(x){
fileName <- paste("./", x , sep="")
txt = readLines(fileName, warn=FALSE)
myCorpus = Corpus(VectorSource(txt))
myCorpus = tm_map(myCorpus, tolower)
myCorpus = tm_map(myCorpus, removePunctuation)
myCorpus = tm_map(myCorpus, removeNumbers)
myCorpus = tm_map(myCorpus, removeWords, stopwords("english"))
myDTM = TermDocumentMatrix(myCorpus, control =
list(minWordLength = 1))
m = as.matrix(myDTM)
v = sort(rowSums(m), decreasing = TRUE)
set.seed(4363)
wordcloud(names(v), v, min.freq = 50)
}
当它运行到分配myDTM的行时,将引发错误,
“ UseMethod(“ meta”,x)中的错误:没有适用于“ meta”的适用方法应用于类“ character”的对象
和警告:
“另外:警告消息:在mclapply(unname(content(x)),termFreq,control)中:所有调度的内核在用户代码中均遇到错误”
这里发生了什么?
再添加一行代码-
myCorpus <- tm_map(myCorpus, PlainTextDocument)
readLines可能不会像您假设的那样创建长度为1的向量。 当我阅读其中的文件时,它会创建一个198个长度的向量,而VCorpus会认为这是198个文档。 尝试在readLines之后添加以下内容:
paste(txt, collapse = " ") -> txt
当我用添加的代码运行您的代码时,它可以工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.