使用DocumentTermMatrix从R中的列中的字符串创建矩阵(文本挖掘)

时间:2018-01-02 11:56:49

标签: r text-mining tm term-document-matrix

数据集如下所示:

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开头的单词)。

任何帮助将不胜感激!

0 个答案:

没有答案