【问题标题】:Rpart - accuracy of bigramsRpart - 二元组的准确性
【发布时间】:2016-01-04 23:25:38
【问题描述】:

大家晚上好!

我在 R 中遇到了一个问题。我有一个包含 Amazon 对 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 是指从一到五的星级。

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

当使用一元组时,预测模型的创建如下:

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

但是,这在我的情况下不起作用,因为 - 我猜 - 必须建立与原始评论数据集的连接。但是怎么做?我不知道。

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

terms.formula(formula, data = data) 中的错误:

谁能帮帮我?非常感谢。

最好的问候 保罗

【问题讨论】:

    标签: rpart


    【解决方案1】:

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

    出现错误消息是因为 TermDocumentMatrix 位置错误。

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

    txtTdmBi.t=t(txtTdmBi)
    

    终于成功了。

    最好的问候 保罗

    【讨论】:

      猜你喜欢
      • 2018-09-25
      • 2019-10-21
      • 2022-12-09
      • 2021-12-27
      • 1970-01-01
      • 2020-07-08
      • 1970-01-01
      • 2023-03-28
      • 2018-05-21
      相关资源
      最近更新 更多