在R中使用DocumenttermMatrix函数时出错

时间:2017-09-15 06:04:53

标签: r tm

我已经获取了1000行的通用文本,并在textmining的过程中执行了以下操作。在使用文档术语矩阵时,我没有将字数计算为矩阵中的输出。

>def<-read.csv("Defect.csv",header = T)
>docs<-Corpus(VectorSource(def$Summary))
>docs<-tm_map(docs,content_transformer(tolower))
>docs<-tm_map(docs,removeNumbers)
>docs<-tm_map(docs,removeWords,stopwords("english"))
>docs<-tm_map(docs,removePunctuation)
>docs<-tm_map(docs,stripWhitespace)
>docs<-tm_map(docs,stemDocument,language = "english")

>docs[[1]]$content
[1] "access logout access employe separ modul"

>dtm<-DocumentTermMatrix(docs)
>data.matrix(dtm)

以下是我为DTM获得的输出

  

条款   文档访问注销模块separ approv按钮单击显示错误

我没有在矩阵中得到单词计数。不确定这里可能出现的错误。

1 个答案:

答案 0 :(得分:1)

def<-read.csv("Defect.csv",header = T)
docs<-Corpus(VectorSource(def$Summary))
docs<-tm_map(docs,content_transformer(tolower))
docs<-tm_map(docs,removeNumbers)
docs<-tm_map(docs,removeWords,stopwords("english"))
docs<-tm_map(docs,removePunctuation)
docs<-tm_map(docs,stripWhitespace)
docs<-tm_map(docs,stemDocument,language = "english")

注意:使用TermDocumentMatrix而不是DocumentTermMatrix

dtm <- TermDocumentMatrix(docs)
m <- as.matrix(dtm)
v <- sort(rowSums(m),decreasing=TRUE)
d <- data.frame(word = names(v),freq=v)
rownames(d) <- NULL

现在,您的数据框应该看起来像..

> head(d,10)
        word freq
1       file  157
2       data  151
3  incorrect  136
4     target  120
5       issu   95
6       tabl   82
7      sourc   69
8     column   63
9        get   61
10   process   56