Rpart - bigrams的准确性

时间:2016-01-03 19:33:20

标签: rpart

晚上好,大家好!

我在R中遇到问题。我有一个包含Playstation 4亚马逊评论的数据集,我想在 rpart 的帮助下创建一个预测模型,并希望得到这种模式的准确性。

评论已成功加载到R,已创建语料库并已应用了一些预处理任务:

library(RWeka)
library(tm)
library(rpart)

corpus <- Corpus(VectorSource(tr.review.ps4$reviewText))
corpus <- tm_map(corpus, tolower)
corpus <- tm_map(corpus, removePunctuation)
corpus <- tm_map(corpus, PlainTextDocument)
corpus <- tm_map(corpus, removeWords, stopwords('english'))
corpus <- tm_map(corpus, stemDocument)

使用以下代码创建双字母组和术语文档矩阵:

BigramTokenizer <- function(x) {RWeka::NGramTokenizer(x, RWeka::Weka_control(min = 2, max = 2))}
txtTdmBi <- TermDocumentMatrix(corpus, control = list(tokenize = BigramTokenizer, bounds = list(global=c(10, Inf))))

然后删除稀疏术语并创建矩阵:

dtm <- removeSparseTerms(txtTdmBi, 0.999)
dtmsparse <- as.data.frame(as.matrix(txtTdmBi))

原始数据集由7561个对象组成。因此,培训和测试集创建如下:

train <- dtmsparse[1:6500,]
test <- dtmsparse[6501:7561,]

然后训练完成。 $ overall指星级评分从1到5。

train$overall <- tr.review.ps4[1:6500,]$overall

使用unigrams时,预测模型创建如下:

model <- rpart(overall ~., data = train, method= 'class')

但是,这在我的情况下不起作用,因为 - 我想 - 必须建立与原始评论数据集的连接。但是怎么样?我没有想法。

当我输入此代码时,我得到以下错误输出:

  

terms.formula(公式,数据=数据)中的错误:

任何人都可以帮助我吗?非常感谢。

祝你好运 保罗

1 个答案:

答案 0 :(得分:0)

今天我仍在寻找解决问题的方法。幸运的是我找到了错误。

发生了错误消息,因为 TermDocumentMatrix 位置错误。

我必须使用以下代码转置矩阵:

txtTdmBi.t=t(txtTdmBi)

最后它奏效了。

祝你好运 保罗