晚上好,大家好!
我在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(公式,数据=数据)中的错误:
任何人都可以帮助我吗?非常感谢。
祝你好运 保罗
答案 0 :(得分:0)
今天我仍在寻找解决问题的方法。幸运的是我找到了错误。
发生了错误消息,因为 TermDocumentMatrix 位置错误。
我必须使用以下代码转置矩阵:
txtTdmBi.t=t(txtTdmBi)
最后它奏效了。
祝你好运 保罗