我目前正在对一家电信公司数据的 twitter 数据进行情感分析。我正在将数据加载到 HDFS 中,并使用 Mahout 的朴素贝叶斯分类器来预测情绪是积极的、消极的还是中性的。
这就是我正在做的
我正在向机器提供训练数据 (key :sentiment,value:text) 。
使用 mahout 库通过计算文本的tf-idf(逆文档频率)来创建特征向量。
mahout seq2sparser -i /user/root/new_model/dataseq --maxDFPercent 1000000 --minSupport 4 --maxNGramSize 2 -a org.apache.lucene.analysis.WhitespaceAnalyzer -o /user/root/new_model/predicted
将数据拆分为训练集和测试集。
我将该特征向量传递给朴素贝叶斯算法来构建模型。
mahout trainnb -i /user/root/new_model/train-vectors -el -li /user/root/new_model/labelindex -o /user/root/new_model/model -ow -c
- 使用这个模型,我正在预测新数据的情绪。
这是我正在做的非常简单的实现,通过这种实现,即使我有很好的训练集,我的准确度也会很低。所以我正在考虑切换到逻辑回归/SVM,因为它们为这类问题提供了更好的结果。
所以我的问题是如何使用这些算法来构建我的模型或使用这两种算法预测推文的情绪。我需要遵循哪些步骤来实现这一目标?