我正在运行以下代码并收到此错误:
.jcall(“RWekaInterfaces”,“[S”,“tokenize”,.jcast(tokenizer,:java.lang.NullPointerException
setwd("C:\\Users\\jbarr\\Desktop\\test)
library (tm); library (wordcloud);library (RWeka); library (tau);library(xlsx);
Comment <- read.csv("testfile.csv",stringsAsFactors=FALSE)
str(Comment)
review_source <- VectorSource(Comment)
corpus <- Corpus(review_source)
corpus <- tm_map(corpus, removePunctuation)
corpus <- tm_map(corpus, removeNumbers)
corpus <- tm_map(corpus, stripWhitespace)
corpus <- tm_map(corpus, removeWords,stopwords(kind = "english"))
corpus <- tm_map(corpus, content_transformer(tolower))
corpus <- tm_map(corpus, removeWords, c("member", "advise", "inform", "informed", "caller", "call","provided", "advised"))
dtm <- DocumentTermMatrix(corpus)
dtm2 <- as.matrix(dtm)
wordfreq <- colSums(dtm2)
wordfreq <- sort(wordfreq, decreasing=TRUE)
head(wordfreq, n=100)
wfreq <- head(wordfreq, 500)
set.seed(142)
words <- names(wfreq)
dark2 <- brewer.pal(6, "Dark2")
wordcloud(words[1:100], wordfreq[1:100], rot.per=0.35, scale=c(2.7, .4), colors=dark2, random.order=FALSE)
write.xlsx(wfreq, "C:\\Users\\jbarr\\Desktop\\test")
有趣的问题是,我在多个文件上运行了这段代码,只有特定的文件有错误。
5条答案
按热度按时间7nbnzgx91#
Sanmeet是对的-这是 Dataframe 中
NAs
的问题。就在你的台词之前:
review_source <- VectorSource(Comment)
插入以下一行:
这会将所有
NA
值更改为短语NULLVALUEENTERED
(您可以随意更改)。没有更多的NAs
,代码应该可以正常运行。jc3wubiy2#
由于字符串向量
Comment
中的NA,您在tokenizer中得到错误或者您也可以使用is.na,如下所示
现在应用预处理步骤,创建语料库等
希望这对你有帮助。
jqjz2hbq3#
建议:我在使用以下命令阅读Excel(.xlsx)文件时出现此错误:
注意,endRow的值应该是NULL或一个有效的数字。但
因此,您可能需要检查参数值和参数与参数的对齐情况。
ulydmbyx4#
在你的 Dataframe 中似乎有
NAs
。运行is.na()
并删除这些行。尝试再次运行代码。应该可以的von4xj4u5#
或者你可以过滤dataframe: