IMBD影评数据的情感分析
问题情况
SemEval往年的任务:情感分析(Sentiment Analysis,SA)。
采用的某博客推荐的一个数据集,IMBD影评数据,给出5W条标注数据,每条数据包括影评内容和影评作者对电影评分(1-10整数评分,其中1-5认为是neg,6-10认为是pos,这个数据集是一个均衡数据集,且得分分布关于5.5对称)。
我从5W条中取出一部分做训练集,取出另一部分做测试集,比例为1:1,对于测试集,我写了一个脚本从两方面评价结果,一是我的评分与实际评分的Pearson相关系数(Pearson),二是我的评分的倾向(neg/pos)与实际倾向的正确率(Correct)。
思路
认为得分和该影评对应电影得到pos倾向的概率存在正向关,这个假设显然是合理的。选取合适的转换函数,把得分转化为得到pos倾向标签(tag)的概率。同时认为文本由单词特征(feature)构成。这样本问题转化为一个feature-tag问题,计算出pos倾向的概率,再转化为得分,就是对评分的一个合理的估计。
解法
可以用rank[1, 10]→pro[0, 1]的线性函数来实现得分到概率的转化。
可以用一个朴素贝叶斯来实现feature-tag的基本功能,并做一些数学技巧上的优化。
具体数学原理为:
Naive Bayes Classifier
dim rate = p(pos|sen) / p(neg|sen)
dim log_word_rate[word] = log(p(word|