基于社交网络的情绪化分析IV

By 白熊花田(http://blog.csdn.net/whiterbear) 转载需注明出处,谢谢。

前面进行了微博数据的抓取,简单的处理,类似度分析。后面两篇进行学校微博的情感分析。


微博情感分析

这里试图通过字典分析的方式计算学校微博的情感倾向。主要分为积极情感,消极情感,客观。

这里字典分析的情感分析和机器学习方式进行情感分析均參考rzcoding的博客,这里仅仅是根据他的思路和代码改装成了微博的情感分析。

字典分析

字典分析的原理是,给定一句微博。推断这句微博中是否出现过积极或者消极的情感词。假设出现,那么寻找修饰该情感词的程度副词。然后根据定义的规则计算积极和消极情感分值。

字典分析结果

使用了matplotlib模块进行结果的显示。



图表示字典分析dlut(大连理工大学)的一个用户的情感分析结果,当中红色表示积极的值(依次为总值,均值。方差),绿色表示消极的值(依次为总值,均值,方差)

字典分析全部学校的结果。

学校名称 积极的微博 消极的微博 客观的微博
大连理工大学 32.7% 25.5% 41.8%
清华大学 32.8% 23.6% 43.7%
北京大学 33.9% 24.0% 42.1%
南京大学 31.2% 25.6% 43.3%
华东政法大学 32.4% 29.0% 38.6%

从上表能够看出。一个学校所发的微博积极的微博数目较大于消极的微博数目。积极的微博比例一般在32%左右。而消极的微博一般在24%左右。忽略掉客观的微博,那么积极的微博和消极微博数目比例大体在1:1的水平上。

机器学习

利用机器学习的方法对微博进行情感分析,即使用相关监督的学习算法,如贝叶斯算法,使用标注的情感文本进行学习。训练得到分类器。最后使用该分类器进行情感分类并进行图形化显示。

详细步骤为:首先手工标注微博,以积极。消极和客观三种状态来标识。接着。使用全部词,双词和卡方统计等方式获取词的特征,然后,使用多种机器学习模型进行训练。筛选得到最佳精度的分类器。最后,使用该分类器进行微博的情感分类,如:假设积极的情感概率则为积极微博。

机器学习分析结果

机器学习分析全部学校的结果。

学校名称 积极的微博 消极的微博 客观的微博
大连理工大学 12.6% 28.4% 59.0%
清华大学 8.7% 20.3% 70.9%
北京大学 8.5% 19.0% 72.6%
南京大学 9.8% 23.6% 66.6%
华东政法大学 11.9% 30.6% 57.4%

这里的结果与用词典分析的结果不太一样,在词典分析中,用户发的积极的微博数目大于消极的微博数目,而这里,五所大学中,全部的学校所发的积极的微博比例均小于消极的微博,积极微博大概占到10%左右。消极的微博约占到22%左右。客观的微博占到65%左右。

除去客观的微博,积极微博和消极的微博的比例大体相当于1:2。实验中分类器的精确度达到70%。

影响实验结果的因素:其一,该结果是基于分类器得出的结果,而分类器又是基于标注的微博数据,所以。自己标注的微博数据会对分类器的判定有着一定的影响;其二,因为中文语义丰富。在不同的语境下有着不同的含义。这样会导致分类器的判别有一定的难度从而造成相关的误差。

总结

本次毕设研究的主题为分析和了解不同的群体在社交网络上是怎样表达情绪的及其表达情绪的倾向。

为此,本研究设计并实施了一整套从数据抓取到分析的流程。设计了爬虫去抓取数据,设计了对应的算法去分析和统计和处理数据。

终于,本研究做到了在一定层面上展现了社交网络用数据的特性,不同群体用词的差异性,也给出了在社交网络上不同的群体是怎样表达情绪及其倾向这一问题的解答。

基于社交网络的情绪化分析IV的更多相关文章

  1. 利用python3 爬取 网易云 上 周杰伦所有专辑,歌曲,评论,并完成可视化分析已经歌曲情绪化分析

    这篇文章适合于python爱好者,里面可能很多语句是冗长的,甚至可能有一些尚未发现的BUG,这个伴随着我们继续学习来慢慢消解吧.接下来 我把里面会用到的东西在这里做一个简单总结吧:本文用到了两门解释性 ...

  2. VSTO学习笔记(七)基于WPF的Excel分析、转换小程序

    原文:VSTO学习笔记(七)基于WPF的Excel分析.转换小程序 近期因为工作的需要,要批量处理Excel文件,于是写了一个小程序,来提升工作效率. 小程序的功能是对Excel进行一些分析.验证,然 ...

  3. 基于CommonsCollections4的Gadget分析

    基于CommonsCollections4的Gadget分析 Author:Welkin 0x1 背景及概要 随着Java应用的推广和普及,Java安全问题越来越被人们重视,纵观近些年来的Java安全 ...

  4. 第1篇--基于jdk7和jdk8分析 JVM的内存区域

     基于jdk7和jdk8分析 JVM的内存区域 目录前言1.什么是JVM2.JRE/JDK/JVM是什么关系3.JVM执行程序的过程4. JVM的生命周期5.JVM垃圾回收一.运行时数据区的组成1.程 ...

  5. Java反序列化: 基于CommonsCollections4的Gadget分析 Java 序列化与反序列化安全分析

    Java反序列化: 基于CommonsCollections4的Gadget分析 welkin 京东安全 5天前 https://mp.weixin.qq.com/s/OqIWUsJe9XV39SPN ...

  6. Python爬取《你好李焕英》豆瓣短评并基于SnowNLP做情感分析

    爬取过程在这里: Python爬取你好李焕英豆瓣短评并利用stylecloud制作更酷炫的词云图 本文基于前文爬取生成的douban.txt,基于SnowNLP做情感分析. 依赖库: 豆瓣镜像比较快: ...

  7. Hive -- 基于Hadoop的数据仓库分析工具

    Hive是一个基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库 ...

  8. 基于SQL的日志分析工具myselect

    基本介绍 程序开发者常常要分析程序日志,包括自己打印的日志及使用的其他软件打印的日志,如php,nginx日志等,linux环境下分析日志有一些内置命令能够使用,如grep,sort,uniq,awk ...

  9. 符号执行-基于python的二进制分析框架angr

    转载:All Right 符号执行概述 在学习这个框架之前首先要知道符号执行.符号执行技术使用符号值代替数字值执行程序,得到的变量的值是由输入变 量的符号值和常量组成的表达式.符号执行技术首先由Kin ...

随机推荐

  1. I2C驱动框架(五)

    参考:I2C子系统之 adapter driver注册——I2C_dev_init() i2c的操作在内核中是当做字符设备来操作的,相关初始化在由i2c_dev_init函数来初始化. static ...

  2. nw335 debian sid x86-64 -- 4 realtek 提供的官方驱动

    realtek 提供的官方驱动   1 查看无线网卡的驱动芯片: $ sudo lsusb Bus 001 Device 003: ID 0bda:8176 Realtek Semiconductor ...

  3. 几条sql语句(exists)

    通常exists后的子查询是需要和外面的表建立关联关系的,如 select count(*) from a where exists (select 'x' from b where a.id = b ...

  4. python基础学习笔记——列表技巧

    列表: 循环删除列表中的每⼀个元素 li = [, , , ] for e in li: li.remove(e) print(li) 结果: [, ] 分析原因: for的运⾏过程. 会有⼀个指针来 ...

  5. jq:mouseover和mouseout多次触发解决办法

    区别: mouseover与mouseenter 不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件. 只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件. mou ...

  6. 【18】什么是FOUC?如何避免

    [18]什么是FOUC?如何避免 Flash Of Unstyled Content: 用户定义样式表加载之前浏览器使用默认样式显示文档,用户样式加载渲染之后再从新显示文档,造成页面闪烁. 解决方法: ...

  7. Android隐藏软键盘收回软键盘

    代码改变世界 Android隐藏软键盘收回软键盘 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPU ...

  8. spring之lazy-init

    lazy-init:延迟实例化 ApplicationContext实现的默认行为就是在启动服务器时将所有singleton bean提前进行实例化.提前实例化意味着作为初始化过程的一部分,appli ...

  9. response.setHeader参数、用法的介绍

    response.setHeader 是用来设置返回页面的头 meta 信息, 使用时 response.setHeader( name, contect ); meta是用来在HTML文档中模拟HT ...

  10. 关于a标签的onclick和href谁先执行的问题

    今天上午遇到一个问题,我想在a标签跳转的时候增加一些程序上的判断,但又不会影响a标签的正常跳转,于是就有了这篇文章. 我的具体代码是这样的: <a href="http://www.m ...