数据集如下所示:
sentiment<-c(1, 1, 0)
review<-c("review1", "review2", "review3") #insert some reviews here
daamx<-data.frame(sentiment, review)
情绪列是一个值,表示评论是正面还是负面(1或0),我的作业后面需要这个。审核列是说明评论的列。 Daamx是一个tsv文件。
我的目标是获得一个矩阵,其中包含行中的注释(每行包含1条注释)以及列中所有注释的单词。该表必须用数字表示每个单词的出现次数。另外,我想设置列中显示的最大单词数量,因为我只需要最多出现的2000个单词。
到目前为止我的代码:
install.packages("tm")
library(tm)
daamx_review<-daamx$review
#Changing the review column into a VectorSource and VCorpus
daamx_source<-VectorSource(daamx_review)
daamx_corpus<-VCorpus(daamx_source)
#Function
clean_corpus <- function(corpus){
corpus <- tm_map(corpus, stripWhitespace)
corpus <- tm_map(corpus, removePunctuation)
corpus <- tm_map(corpus, content_transformer(tolower))
corpus <- tm_map(corpus, removeNumbers)
corpus <- tm_map(corpus, removeWords, stopwords("en"))
return(corpus)
}
#Using function
clean_daamx<-clean_corpus(daamx_corpus)
#Using DocumentTermMatrix and creating Matrix
daamx_tdm<-DocumentTermMatrix(clean_daamx,control = list())
daamx_m<-as.matrix(daamx_tdm)
在将审阅列设为VectorSource,VCorpus并使用clean_corpus函数清理它之后,我尝试将clean_daamx放在DocumentTermMatrix中,然后放在矩阵中。但我现在得到的结果是每行中有一个“字符(0)”的矩阵,列中只有30个字左右(只有以a和b开头的单词)。
任何帮助将不胜感激!