评论文本分类

 

前言

本项目旨在巩固机器学习算法,测试不同机器学习对文本分类的效果

由于暑假前不会更新(认真备战期末考试),本文先占坑,以后再补。

目的

根据已有数据,判断一条评论的星级。

数据的获得与处理

下载亚马逊评论数据集,获得 json 文件。

将文件拆成 $25$ 个,每个包含 $10^5$​ 条评论的小文件

对每个文件提取单词,转小写,统计出常用单词 $1729$​ 个(出现次数超过千分之一),转为编号形式。

平均每条评论出现单词数不多(远小于 $1792$ 个),算法可以对此进行优化。

中小规模数据效果

训练集 $10^5$ 个,测试集 $10^5$ 个。

感知机

正确率 $70\%$ 左右。

作为最简单的神经网络,这个正确率已经很可观了。

由于感知机只能解决线性可分问题,会造成欠拟合,训练集准确率也不超过 $73\%$​ 。

朴素贝叶斯

正确率 $62\%$ 左右。

可能由于属性之间并非独立。

决策树

先分出70000训练集,30000验证集

采用基尼系数作为属性选择标准

用验证集实现预剪枝,并在数据大小小于10时,停止分类。

算法 正确率
感知机 70%
朴素贝叶斯 62%
决策树