我正在使用 Vowpal Wabbit 使用基本的 unigram 特征进行二元情感分类(正面和负面)。这是我的火车功能的样子:
1 | 28060 10778 21397 64464 19255
-1 | 44248 21397 3353 57948 4340 7594 3843 44368 33938 49249 45696 32698 57948 21949 58810 32698 62793 64464
1 | 44248 21397 3353 32698 62996
1 | 44248 21397 3353 57948 63747 40024 46815 37197 7594 47339 28060 10778 32698 45035 3843 54789 19806 60087 7594 47339
每行都以标签开头,然后是词汇表中的一系列单词索引。这些特征采用默认值 1。
我使用这个命令来训练:
cat trainfeatures.txt | vw --loss_function logistic -f trainedModel
这是我用于测试的命令:
cat testfeatures.txt | vw -i trainedModel -p test.pred
这是输出文件 test.pred 的样子:
28.641335
15.409834
13.057793
28.488165
16.716839
19.752426
值范围在 -0.114076 和 28.641335 之间。如果我使用一个规则,如果值大于阈值,比如 14,那么它是正的,否则它是负的,那么我得到 51% 的准确度和 40.7% 的 f-measure。
但我正在关注的论文报告该数据集的准确率为 81%。因此,我在实施或对结果的解释中肯定有问题。我无法弄清楚那是什么。
编辑:我在测试命令中使用了 --binary 选项,这给了我标签 {-1,+1}。我对其进行了评估,得到了以下结果——准确度为 51.25%,f-measure 为 34.88%。