【发布时间】:2016-08-07 05:12:07
【问题描述】:
我正在使用以下 R 脚本对 twitter cmets(哈萨克语)进行情绪分析。 3000 (1500sad, 1500happy) cmets 用于训练集,1000 (happy sad mixed) cmets 用于测试集。一切正常,但最后,预测值显示都很开心,这是不对的。
我已经检查了每个函数,并且所有函数都在运行,直到 naiveBayes 函数。我检查了分类器值,它们是正确的。我认为naiveBayes 或predict 把事情搞砸了。
当我只使用一个快乐的评论(列表中的第一个)和 1500 个悲伤(负面)的 cmets 作为这段代码的训练集时,预测结果都是快乐的,我认为这主要是悲伤的。
classifier = naiveBayes(mat[1500:3000,], as.factor(sentiment_all[1500:3000]))
但是,当我对训练集使用所有sad或negative cmets时,预测结果都是sad。
classifier = naiveBayes(mat[1501:3000,], as.factor(sentiment_all[1501:3000]))
我花了几个小时,我完全迷失了问题所在。请帮我解决这个问题。
这是脚本:
setwd("Path")
happy = readLines("Path")
sad = readLines("Path")
happy_test = readLines("Path")
sad_test = readLines("Path")
tweet = c(happy, sad)
tweet_test= c(happy_test, sad_test)
tweet_all = c(tweet, tweet_test)
sentiment = c(rep("happy", length(happy) ),
rep("sad", length(sad)))
sentiment_test = c(rep("happy", length(happy_test) ),
rep("sad", length(sad_test)))
sentiment_all = as.factor(c(sentiment, sentiment_test))
library(RTextTools)
library(e1071)
# naive bayes
mat= create_matrix(tweet_all, language="kazakh",
removeStopwords=FALSE, removeNumbers=TRUE,
stemWords=FALSE, tm::weightTfIdf)
mat = as.matrix(mat)
classifier = naiveBayes(mat[1:3000,], as.factor(sentiment_all[1:3000]))
predicted = predict(classifier, mat[3001:4000,]); predicted
【问题讨论】:
-
没人评论吗?
-
我怀疑 predict() 函数不能正常工作。当我运行
codepredict = predict(classifier, mat[1:1,] , type="raw");预测code它返回codehappy sad [1,] 0.5 0.5code这意味着预测功能不起作用。
标签: r sentiment-analysis predict naivebayes