持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情
一、数据说明
收集了微博上关于“垃圾分类”评论的数据以及 weibo_senti_100k 数据集。
垃圾分类评论数据
抓取的数据类型主要包括微博 ID、发布时间、微博内容、内容类型、转发-评论-点赞等微博平台信息。经过编程自动筛选与人工清洗,去除重复、无用数据及干扰数据,最终有近 22 万条有效数据用于模型训练。如下图所示:
weibo_senti_100k 数据集
weibo_senti_100k 数据集,包含 11 万多条带情感标注的微博评论,正负向评论约各5 万多条,用作训练集,训练 LSTM 网络,最终能够预测“垃圾分类”评论的情感。
二、基于情感词典的文本情感分类
这种方式是对人的记忆和判断思维的最简单的模拟,具体步骤如下:首先进行分词及词性标注,词和词性构成一个元组;然后进行句子切分,读取停用词表,去除停用词;接着读取情感词典,获取六种权值的词,根据要求返回 list,其中,程度副词的权值从高到低分别是 2、1.5、1.25、0.5、0.25、-1;进而,对情感得分进行最后处理,如[-1,3]→[0,4]。其中分数越高,说明情感越趋向于积极性。
1.文本的预处理
由网络爬虫等工具爬取到的原始微博评论文本,通常都会带有我们不需要的信息,所以需要对文本进行预处理。我们使用Python作为我们的预处理工具,其中的用到的库有Numpy、Pandas和jieba,使用正则表达式去掉标点符号,然后使用jieba分词切分,最后读取停用词文件,去除停用词。
2.载入情感词典
情感词典分为四个部分:积极情感词典、消极情感词典以及程度副词词典。为了得到更加完整的情感词典,我们从网络上收集了若干个情感词典,并且对它们进行了整合去重,同时对部分词语进行了调整,以达到尽可能高的准确率。
3.计算情感得分
基于情感词典的文本情感分类规则比较机械化。我们将每个积极情感词语赋予权重1,将每个消极情感词语赋予权重-1,并且假设情感值满足线性叠加原理;然后我们将句子进行分词,如果句子分词后的词语向量包含相应的词语,就加上向前的权值,其中程度副词会有特殊的判别规则,程度副词的权值从高到低分别是2、1.5、1.25、0.5、0.25、-1,如果句子分词后的词语向量包含相应的词语,则乘以相应的权值。最后,总权值即为情感得分。
4.测试
导入 weibo_senti_100k 数据集,测试准确率。
使用传统的基于情感词典的文本情感分类准确率较低,仅达到60.9%。
传统的基于情感词典的文本情感分类的思路简单易懂,而且稳定性也比较强,然而存在着两个难以克服的局限性:一方面,传统思路差强人意,精度较低,很难进一步提高精确度;另一方面,传统思路需要事先提取好情感词典,而这一步骤,往往需要人工操作才能保证准确率,进行操作的人又需要一定的背景知识,这个背景知识依赖性问题会阻碍着自然语言处理的进步。
在文本情感分类(二)中介绍基于深度学习的文本情感分类,训练 LSTM 网络,克服传统基于情感词典的文本情感分类方式的不足,实现准确率较高的情感类别预测。