我正在使用下面的R腳本對Twitter評論(以哈薩克語)進行情感分析。 3000(1500sad,1500happy)對訓練集的評論和對測試集的1000(快樂悲傷混合)評論。一切都很好,但最終,預測值顯示出所有的樂趣,這是不對的。naiveBayes和預測功能不工作在R
我已經檢查過每個功能,並且所有功能都正在運行,直到naiveBayes
功能。我檢查了分類器值,它們是正確的。我認爲要麼naiveBayes
或predict
搞砸了。
當我只用一個快樂評論(列表中的第一個)和1500個悲傷(負面)評論作爲訓練集使用此代碼時,預測的結果都很開心,我認爲應該大部分時候都很悲傷。
classifier = naiveBayes(mat[1500:3000,], as.factor(sentiment_all[1500:3000]))
但是,當我對訓練集使用所有傷心或負面的評論時,預測的結果都是悲哀的。
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
沒有人可以評論? –
我懷疑預測()函數工作不正常。當我運行'code' predict = predict(分類器,mat [1:1,],type =「raw」);預測'代碼'它返回'代碼'快樂難過 [1,] 0.5 0.5'代碼'這意味着預測功能不起作用。 –