我对文本挖掘很陌生,但我想在一段时间内分析推文。
我几周前从推特上发了推文,现在才开始分析它。我将DocumentTermMatrix保存为矩阵,并且很难将其转换回DocumentTermMatrix以对数据执行潜在的dirichlet分配。
scrap<- searchTwitter("#RepealThe8th", n=1500)
twscrap <- sapply(scrap, function(x) x$getText())
corpus1 <- Corpus(VectorSource(twscrap))
corpus1 <- tm_map(corpus1,
content_transformer(function(x) iconv(x, to='UTF-8-MAC', sub='byte')),
mc.cores=1)
corpus1 <- tm_map(corpus1, content_transformer(tolower), mc.cores=1)
corpus1 <- tm_map(corpus1, removePunctuation, mc.cores=1)
corpus1 <- tm_map(corpus1, function(x)removeWords(x,stopwords()), mc.cores=1)
corpus1 <- tm_map(corpus1, stemDocument, mc.cores=1)
myStopwords = c("https", "http");
idx = which(myStopwords == "r");
myStopwords = myStopwords[-idx];
corpus1 = tm_map(corpus1, removeWords, myStopwords);
corpus1 <- tm_map(corpus1, stripWhitespace)
plaincorpus1 <- tm_map(corpus1, PlainTextDocument)
dtm <- DocumentTermMatrix(plaincorpus1, control = list(minWordLength = 3));
m <- as.matrix(dtm)
这就是我最初保存数据的方式
write.csv(m, "matrix.csv")
当我加载数据时,我无法将其恢复为DTM格式
m <- read.csv("matrix.csv",header=TRUE)
corpNR<-Corpus(DataframeSource(xNR))
dtmNR<-DocumentTermMatrix(corpNR)
dtmNR$dimnames$Terms <- colnames(xNR) #add terms to DocTermMetrix
str(dtmNR)
dtmNR$ncol <- length(dtmNR$dimnames$Terms) #give it the right no. of cols
这给了我一个右侧的DTM,但我不知道如何获得dtmNR $ i,dtmNR $ j或dtmNR $ v的正确数据
我也试过
library(qdap)
m1 <- as.Corpus(m)
#Error in data.frame(grouping, text.var, check.names = FALSE, stringsAsFactors = FALSE) :
# arguments imply differing number of rows: 2062, 1500
#dtm1 <- as.DocumentTermMatrix(m1)
dtm1 <- as.TermDocumentMatrix(m1)
#Error in .TermDocumentMatrix(t(x), weighting) :
# argument "weighting" is missing, with no default
答案 0 :(得分:0)
不要把它写到像这样的csv文件中。
相反,请使用save(file='myDTM.RData', list=list(dtm)) # or similar
;然后load('myDTM.RData')
。