2016-04-03 14 views
0

私は、twitterの感情分析のためのデータセット(約7000エントリ)を分析しようとしています。私は、ツイットが否定的であるかどうかを予測するために、Naive Bayesモデルを使用しようとしてきました。混同行列には予測がなく、基本速度だけであり、モデルが予測をしていないことを意味します。どうすれば予測をすることができますか? removeSparseTermsパラメーターを変更する必要があるかもしれません。 Bayesが何かを予測できない場合、このデータセットには他にどのようなモデルが適していますか?予測がないNaive Bayesモデル(特異性は0); Rの感情分析R

tweets$Negative = as.factor(tweets$Sentiment <= -1) 
# Create corpus, Convert to lower-case, remove punctuation, remove stopwords, 
# stem document, create frequency matrix 

sparse = removeSparseTerms(frequencies, 0.995) 
tweetsSparse = as.data.frame(as.matrix(sparse)) 
tweetsSparse$Negative = tweets$Negative 

split = sample.split(tweetsSparse$Negative, SplitRatio = 0.7) 
trainSparse = subset(tweetsSparse, split==TRUE) 
testSparse = subset(tweetsSparse, split==FALSE) 

prepare_testData <- function(model.training.data, test.dtm){ 
    # Create an empty dataframe with column names same as features in training data 
    train.features <- names(model.training.data) 
    testData <- matrix(data = rep(0, length(train.features) * nrow(test.dtm)), 
        nrow = nrow(test.dtm), ncol = length(train.features)) 
    colnames(testData) <- train.features 
    row.names(testData) <- row.names(test.dtm) 

    # features common to both train and test are copied from test data 
    common.features <- intersect(train.features, names(test.dtm)) 
    for(i in 1:length(common.features)) { 
    testData[,common.features[i]] <- test.dtm[,common.features[i]] 
    } 
    testData <- as.data.frame(testData) 
    return(testData) 
} 

########### Naive Bayes model training ########### 
naive.bayes.model <- train(Negative ~., 
          data = trainSparse, 
          trControl = trainControl(method = "cv", number = 5), 
          method = "nb") 
naive.bayes.testData <- prepare_testData(naive.bayes.model$trainingData[, -ncol(naive.bayes.model$trainingData)], 
             testSparse) 
naive.bayes.pred <- predict(naive.bayes.model, naive.bayes.testData) 
naive.bayes.metrics <- confusionMatrix(naive.bayes.pred, testSparse$Negative) 
+1

最小限の[再現可能な例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)を作成する必要があります。サンプル入力データが含まれているので、コードを実行して問題を再現することができます。また、問題に直接関係しないコード行を削除してください。 – MrFlick

答えて

0

予測、特にSVMとランダムフォレストを取得できる他のいくつかのモデルを試しました。私ができることはNaive Bayesの予測を得ることができませんでした。私はNaive Bayesの背後にある仕組みを理解していませんが、おそらくこのデータセットにはあまり適用できませんでした。申し訳ありませんが私はより多くの助けになることはできません。

関連する問題