短文本情感分析任务

任务描述: 基于机器学习方法实现电影评论文本的情感分类。 最终机器能够从大规模标注文本中获得经验,判定某一指定文本的情感极性:正面/负面

数据集: 数据集已经切分为训练集和测试集, 其中训练集 25000 条, 测试集 25000 条;训练集和测试集中正面(positive) 评价和负面(negtive)评价各占一半。

目录结构如下:训练集和测试集分别位于 train 和 test 两个目录,每个目录下均有 pos 和 neg 两个子目录,分别代表正面评价的文本和负面评价的文本;每一个训练样例一个文件,文本命名方式为: id_rating.txt,其中 id 为样例唯一 id, rating 为该文本的情感极性评分,正面评价为 7-10分,负面评价为 0-4 分; 例如: [test/pos/200_8.txt], 表示测试集中 id 为 200、评分为 8 的正面评价实例(正例)

提示

  1. 本任务为典型的文本分类问题(正面/负面两类分类问题);
  2. 可以充分使用目前流行的大规模预训练语言模型如 BERT 等; 注意分词问题(tokenization);
  3. 虽然是两类分类问题,是否可以借鉴训练样例中给出的 rating 值来辅 助训练过程;
  4. 从训练集中要独立切分出部分训练例作为验证集来调整模型的超参 数;
  5. 模型构造时注意输入字符串序列的最大长度限制;
  6. 如果设计的分类器性能不好,是否可以考虑集成学习? (Adaboost);
  7. 充分发挥自己的动手能力,提升模型的测试效果~

(1)朴素贝叶斯实现

V1.1 二分类实现

分数记录:

平滑 正确率 准确率
未平滑 0.51324 0.5067958773046441
+1 0.77308 0.7278552833589212
+2 0.77656 0.7312683971099813

V1.2 引入TF-IDF特征提取,及停用词

平滑 正确率Acc 准确率Pre
未平滑 0.60108 0.562895116730549
+1 0.80944 0.7831625183016105
+5 0.81656 0.790187738339689
+100 0.8314 0.8420444224258938
+250 0.83028 0.8463216173139837

V1.3 对 1.2 测算平滑参数的影响

对1.2的文本处理模块不变,改写模型及评测

参考资料:

V2.0 使用sklearn的多项式贝叶斯

test_demo

这是一个示例代码

查看环境版本