当前位置:   article > 正文

基于Python文本内容/情感的对微博文本自动二元分类_对文本进行情感二分类,并计算其准确率,召回率和f值

对文本进行情感二分类,并计算其准确率,召回率和f值

资源下载地址:https://download.csdn.net/download/sheziqiong/85836603
资源下载地址:https://download.csdn.net/download/sheziqiong/85836603

选题:设计实现一种基于文本内容/情感的文本自动分类方法
具体目标:实现一个分类器,完成对微博文本的简单二元分类,即分为正面、负面。

本文工作要点

微博文本不同于正式文本,作为在网络社区上的文本,具有不规范性、流行性、符号混杂性等特点,具体总结了以下四点:

  • 长度不定,但最长不超过 140 字,一般在 80-100 字间;
  • 句式简单,一般来说表达情绪很直白,一个或几个关键词就能决定整段文本的情感;
  • 用词不规范,出现大量谐音词,但体裁相近,且会集中出现大量流行词汇;
  • 常用表情符号来辅助表达情绪。

2、4给处理上带来方便,特别是文本化的表情符号能够增加情绪词权重;而 1、3 是挑战,需要数据量尽量大,涵盖更多的语言现象。

而在中期报告中也提出,由于句子中与情绪表达无关的文本的存在,直接使用分类的方法对于长文本不适用,需要进行过滤,并且传统分类方法忽略了词间的语义联系,使得训练集的规模需求变大,在没有大的微博语料库的情况下也很难取得好的效果。

因此,本文考虑结合词向量和传统分类方法,可以在某个大规模语料库上训练词向量表,继而用微博文本中词向量的平均获得整个文本的向量,用向量作为输入来进行分类。同时,当输入不再需要完整的文本时,过滤无用文本也就成为可能,删除连词、介词等并不会对句子中的关键信息有影响。词向量模型照顾到了语义联系,也符合情绪本质上是语义层面的特点;而传统分类方法训练速度较深度学习方法快,消耗计算资源较小,效果也没有绝对的差距,因此适合在个人电脑上运行。

具体方法与流程

  • 实验数据

维基百科中文语料( ):用于训练词向量表

第二届 CCF 自然语言处理与中文计算会议中文微博情感分析样例数据:本项目微博语料来源中科院计算所中文自然语言处理开放平台发布的中文停用词表 StopWord.txt:用于过滤无用文本

  • 训练流程

首先由维基百科中文语料获取词向量表,借助模块为 python 中开源的 genism,其中包括了针对维基百科语料训练词向量的方法。

之后对微博语料进行预处理,下载的样例数据中并不是简单的正负二元分类,其分类包括:anger 愤怒、disgust 厌恶、fear 恐惧、happiness 快乐、like 喜好、sadness 悲伤、surprise 惊讶、none 中性。我将 anger 愤怒、disgust 厌恶、fear 恐惧、sadness 悲伤归为负面,happiness 快乐、like 喜好归为正面,最终获得各 1029 句的正负平衡语料,命名为 neg.txt 和 pos.txt。

对正负语料进行分词,借助模块为 jieba(结巴分词);使用停用词表进行文本清洗; 最终对照词向量表并取平均值获得句子的特征向量。获得的特征向量维数为 400,为节约计算资源、加快速度,使用 PCA 分析作图,发现 100 维即可包含几乎全部信息,因此降维至 100。

随机划分训练集与验证集为 95:5。验证集有 102 句,其中负面 48 句,正面 54 句。

使用三种分类模型进行比较研究,为 SVM、BP 神经网络、随机森林。分别在训练集上训练得到模型,调用模型在验证集上进行验证。

实验结果与分析

1.评价指标

类别属于此类不属于此类
实际属于此类TPFN
实际不属于此类FPTN

表 1:混淆矩阵

TP、TN 表示分类结果与实际标签一致的文本数,FN、FP 表示分类结果与实际标签不一致的文本数。

准确率:P=TP/(TP+FP)

召回率:R=TP/(TP+FN)

F1 值:F1=2P*R/(P+R)

2.实验结果

在验证集上测试结果如下表:

模型类别准确率召回率F1 值
SVM00.610.620.62
SVM10.660.650.65
BP 神经网络00.560.710.62
BP 神经网络10.660.500.57
随机森林00.650.690.67
随机森林10.710.670.69

表 2:验证结果

3.实验结果分析

  • 比较来看,随机森林效果最好,但差距不大,说明在这样较小的训练集上没有模型占绝对优势。调参时发现增加 BP 的迭代次数的提升效果并不明显,但改变隐藏层层数有较大影响;SVM 中优化核函数是关键;随机森林中要适当减少“树”的数目,增加“树”效果不好。
  • 训练集的规模影响很大。当减少 100 句训练集句子,三种模型的 F1 值普遍下降近 10 个百分点,其中 SVM 受影响最大,BP 神经网络受影响最小。说明这些模型仍然很依赖训练集规模,而本项目中语料库规模本就不够大,应是导致最后验证效果一般的原因之一。
  • 正负验证效果不平衡。SVM 与随机森林均是正面文本效果好,推测有两方面原因:1. 在整理语料时,负面有四类情绪而正面有两类,负面情绪词显得更复杂,导致在训练集不够大的情况下涵盖不全面,效果会差一些;2.负面文本中有一类表达忧伤的,表意含蓄,提取特征也困难,导致结果变差。但 BP 神经网络的结果是负面优于正面,不清楚其中原因。
  • 适用于批量处理,而非单条微博分析。每次分析时文本均需经过预处理与向量化,其中最消耗时间的是词向量表的 I/O,待分析文本的规模对耗时影响不大,因此适用于一次处理大量数据,处理单条微博则相较用文本直接分类的方法慢很多。

资源下载地址:https://download.csdn.net/download/sheziqiong/85836603
资源下载地址:https://download.csdn.net/download/sheziqiong/85836603

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/691918
推荐阅读
相关标签
  

闽ICP备14008679号