我试图根据推文的情绪将推文分为三类(买入、持有、卖出)。我正在使用 R 和包 e1071。
我有两个数据框:一个训练集和一组需要预测情绪的新推文。
训练集数据框:
+--------------------------------------------------+
**text | sentiment**
*this stock is a good buy* | Buy
*markets crash in tokyo* | Sell
*everybody excited about new products* | Hold
+--------------------------------------------------+
现在我想使用推文文本 trainingset[,2]
和情绪类别来训练模型trainingset[,4]
。
classifier<-naiveBayes(trainingset[,2],as.factor(trainingset[,4]), laplace=1)
查看分类器的元素
classifier$tables$x
我发现条件概率是计算出来的。每条关于买入、持有和卖出的推文都有不同的概率。到目前为止一切都很好。
但是,当我预测训练集时:
predict(classifier, trainingset[,2], type="raw")
我得到一个仅基于先验概率的分类,这意味着每条推文都被归类为持有(因为“持有”在情绪中所占份额最大)。所以每条推文都有相同的买入、持有和卖出概率:
+--------------------------------------------------+
**Id | Buy | Hold | Sell**
1 |0.25 | 0.5 | 0.25
2 |0.25 | 0.5 | 0.25
3 |0.25 | 0.5 | 0.25
.. |..... | .... | ...
N |0.25 | 0.5 | 0.25
+--------------------------------------------------+
任何想法我做错了什么?感谢你的帮助!
谢谢