基于数据挖掘的社交网络情感分析研究

基于数据挖掘的社交网络情感分析研究

摘 要

随着近年来国内诸如微博、微信,国外诸如推特、Facebook 等知名社交网络平台及在线社交网络平台访问量的呈爆发式快速增长,人们已越来越地倾向于直接在各类社交网络平台基础上来表达其自己表达的各种观点思想和真实情感态度。同时,社交网络平台自身也已产生积累了相当大量真实的文本数据,其中还包含大量了真实用户反映的各类情感倾向态度和真实观点。挖掘分析这些舆情信息和分析判断其的情感倾向性,对进行优化和个性化的推荐,更好地组织进行社会舆情信息监控服务等活动都可能有著很重要的研究价值意义和现实意义。
本课题主要任务是通过 Python 设计基于数据挖掘的微博情感分析系统,实现了通过网络爬虫爬取微博有关热点的信息,对爬取到的信息用 jieba 进行中文分词等,采用可视化方式展示给用户,提供给用户进行数据的分析。最后使用 SnowNLP 进行文本的情感分析。让用户或平台可以直观感受到其他网友的情感倾向。

第1章 引言

1.1 研究背景与研究意义

1.1.1 研究背景

2009 年,新浪领先发布微博服务。网易、搜狐、腾讯也紧随其后发布自己的微博服务。从此以后微博在中国的名气越来越大,用户也越开越多。这四个公司的特点都是,用娱乐明星吸引用户的眼球,很少去发布关于国家或全球正在发生的事,正是因为这样,平台吸引了一大批粉丝。随后,为了抢占新型媒体的用户,一些传统的新闻网站也推出了微博,值得一提的是,人民网就包含在里面。到现在微博服务已经推出了十载有余,手机和网络的普及也让微博变得家喻户晓。

1.1.2 研究意义

随着互联网技术的提高以及网民数量的日益增多,越来越多的人在社交媒体上发表自己的意见和看法,或是分享自己的喜悦,又或是发泄着自己的负面情绪,因此,设计该系统用于对各种话语进行情感分析研究。对微博、抖音以及 B 站等社交平台评论进行情感分析的研究,爬取出当中使用的高频词,研究当代网民的主要情感,社交平台的信息是实时更新的,网络热词也会随着生活中不断发生的事情不断发生变化,如“都市土狗”、“emo”、“芭比 Q 了”、“yyds”、“插眼”等等,在网络中所表达意思与本身所代表的意思完全不同。而且,互联网的使用逐渐变得全民化,人们的生活方式也随之发生改变。网络作为一座桥梁,负责人与人之间的交流。但是,随着搜索引擎的发展,在网络上发泄自己对现实生活不满的网民也在增加。

1.2 主要研究内容

本文提取目标网站的信息,进行文本处理,进行可视化分析,使用聚类方法分析关键字,系统的主要工作如下:
1、网络爬虫
网络爬虫分析网页的构成,并根据固定规律通过脚本或固定程序取得。web 爬虫类的具体功能是基于 url 地址发送请求,等待网页的取得,解析网页 DOM 文档获得新的URL,本地存储取得的数据,循环到循环结束为止。
2、数据处理
把大量的信息存储在数据库里。收集、建立数据集;数据集存储数据。
3、数据可视化展示
对爬出的信息进行中文的分词等,用可视化方式向用户提示,对用户进行数据的分析。使用 Cloudword 可视化技术进行可视化处理。
4、情感分析
通过构建感情分析模型,进行用户评论的感情分析。系统处理取得的数据,用
SnowNLP 进行感情分析。

第2章 相关技术

2.1 爬虫简介

2.1.1 爬虫概念

网络爬行动物是我们所说的网络蜘蛛,也被称为网络机器人,正如其名,起着自动爬出网络上文件内容的作用。爬取过程如下,首先取得网络地址进行爬取网络上的内容,然后判定网页是否有链接,如果有,则将链接排队取入,最后将爬取的内容保存在数据库中,在前端进行展示重复以上的过程,直到爬取满足设定条件为止。

2.1.2 爬虫分类

爬虫有很多种类,按照不同的方式我们可以分为不同的类型,如果按照爬虫的实现功能、内部结构、爬取策略等,可以分为 3 类,分别为通用爬虫、聚焦爬虫、深度爬虫。

2.1.3 爬取策略

和图的遍历方式相似,爬虫策略也分三种,最佳优先策略、深度优先策略、广度优先策略。

2.2 数据挖掘

2.2.1 数据挖掘流程

1.数据挖掘需求分析
考虑好系统需要什么样的数据,收集、整理、叙述数据挖掘的需求,制定系统的大致完成方针,确定相关背景的需求数据和指标。
2.数据采集
从数据库中提取数据样本,初步分析数据来源,估计数据质量,提取、整理、处理样本,最后处理的样本数据放在数据挖掘集中。
3.模型建立
在测试组中,用不同的算法和方式比较优劣,然后选择比较适当的分析方式,构筑第一代的模型。
4. 模型部署
将数据挖掘集中的数据完成部署,并加载全部的数据,再将数据部署到环境中。
5. 模型评价
确认模型对预测结果的效果,估计模型适用时是否达到标准,并根据实际情况进行修改。

2.2.2 数据挖掘方法

1.分类分析
每个数据都有自己能够被归纳概括的特征。对于这些采集到的数据,我们可以根据分类分析的方法反映到相对应的类别中。
2.回归分析
回归分析主要使用时间序列分析法预测数据的趋势特征,预测数据是否有一定的关系等。
3.聚类分析方法
每个数据都有相同的地方,同时也有不同的地方,因此利用聚类分析算法,根据它们各自的相同和差异可以将其分成不同的类别,根据“尽可能相似的特征”分类,可以获取到更精确的数据分类。
4. 关联规则分析法
相关指的是动作之间的相关性。由于利益的恒常性和潜在意识倾向,在进行某一行为时,很可能与其他行为有关联。
5. 异常值检测
在动作数据中,如果某个动作数据和其他数据的偏差太大,则形成偏离组的值,即异常的动作。

2.2.3 数据挖掘——朴素贝叶斯

传统的感情分析方法多为 SVM(支持向量机)、朴素贝叶斯(贝叶斯)、最大熵(最大熵)三种。
贝叶斯分类的原则是根据使用贝叶斯式计算的后续体验的概率,即属于某个类别的概率的对象的先验概率,选择以最大后验概率为对象的类别。
贝叶斯网络是概率无循环图,图中的每个节点表示随机变量,并且图中的每个节点是两个节点之间的数字,并且如果存在圆弧,则对应于一个随机变量的概率指示两个节点是相关的,相反,两个随机变量是独立的条件。任何网络节点 X 具有对应的条件概率表(条件概率表、CPT),其表示父节点所需的各可能节点 X 的条件概率的值。如果节点 X 没有父节点,则 CPT 是 X 的湾网络结构的预概率分布和各节点的 CPT 定义的概率分布网络变量。
贝叶斯算法:假设特征条件之间彼此独立的方法首先通过给定的训练集合,假设特征词语之间的独立为前提,学习从输入到输出的联合概率分布,并且基于所学习的模型,输入 X 获得最大后验概率的输出 Y。
设置了样本数据集D={d1,d2,…,dn},与样本数据对应的特征属性组为X={x1,x2,…,xd}类为 Y={y1,y2,…,,,,ym},D 被划分为 ym 类别。这里是 x1,x2,,,。。如果xd 彼此独立且随机,则可以通过 Y 的导频概率Pprior=P(Y)、Y 的导频概率 Ppost=P (Y|X)、朴素贝叶斯算法来获得,并且可以根据导频概率 Pprior=P(Y)、证据 P(X)、类条件概率 P(X|Y)来计算出:
P(Y|X) = P(Y) P(X|Y) / P(X)
基于每个特征之间彼此独立,如果给定类别是 y,则该公式可以进一步表示为下式:
P(X|Y = y)=∏di = 1P(xi│Y = y)
可以根据以上两个公式计算后验概率为:
Ppost=P(Y|X) = P(Y) ∏di = 1P(xi│Y) / P(X)

2.3 情感分析概述

2.3.1 情感分析基本概念

情感分析也主要基于文本数据,是现代自然语言快速处理法(NPL)方法的两个主要工作内容。感情色彩分析:有感情意见的发掘,被称为倾向性的分析等。从简单的意义上来说,这是一个分析、处理、归纳具有感情色彩信息的复杂主观性文本的内容,综合推理总结的复杂过程。在互联网中(如微博、抖音、b 站等)产生了许多活跃用户参与的网络评论信息,诸如历史人物、事件、产品等最有参考价值的信息。这些网络上的评论信息往往表现了当时人们普遍社会的各种思想感情色彩倾向和道德情感倾向,如喜、怒、哀、苦、乐和道德批判、称赞等。基于此,潜在的用户可以通过直接浏览用户的评论,直接阅读这些具有强烈主观感情色彩的信息,间接了解社会大众对当前流行活动公司和公司产品本身的真实看法。

2.3.2 情感分析基本步骤

情感分析的流程包括文本的预处理、特征表示和选择、训练模型和调整模型。传统公认的文本情感意义分析方法的基本路径也可以大致总结为关键字意思识别、词汇意思关联、统计水平方法、概念水平技术这 4 种。
1.关键词识别:利用无法明确定义文本结构中可能出现的关键字的影响类词,例如“快乐”、“悲伤”、“恐惧”、“无聊”等,实现影响的分类。
2.词汇关联:除了查影响语之外,还依存于与词汇情感相关的“关联”值。
3.统计控制的基本方法:通过统计方法控制机器习语学习过程中出现的各种因素,如潜在语意分析、SVM(support vector machines)、语袋等。
4.概念水平技术:一些具有较强智能特征的方法旨在通过检测情感所有者(维持情感状态的人)和情感目标物(使情感所有者产生情感的实体)来识别。为了深入思考、深入挖掘在特定的小类特定上下文条件下获得的某些语法意见,在获得给定者的这种语法意见时深入思考相关的特定语法功能之一需要使用这些各种具体的语法功能和其间存在的一些相互对应关系。语法功能具有在它们之间存在的这种相互关系之间存在的一些内在关系,但是常常出现并需要深度以通过深度意义的文本解析或深度的文本意思理解分析来获得。与传统的简单抽象语言的语义技术算法的想法不同的重要点在于,在概念级的语言抽象的
语义算法的想法过程中,考虑到其他一些文字知识本身不能充分表现文字信息中的某些要素,例如文字知识主体意思是考虑了网络。因此,可能希望在使用这种意义抽象的算法构想的同时,能够探索其他文字信息之间相对复杂或更微妙、复杂的意义情感上的表现。
例如,可以表示可以传递通过分析提取的、未明确表示的某种意义信息的字符概念,但是通过分析,他们发现彼此或存在于明确表示的概念中的其他意义的不明显的相互联系,等等需要从中间取得相关的请求信息。

2.4 正负面情感关键词分析

2.4.1 具体步骤

关键词分析基于词语频率统计,具体步骤如下。
(1)决定评价对象。首先,分别分词负数和正数的文本内容,提取关键字,找出词语频率高的词,结合经验,重点分析其中的情感倾向。
(2)查找含有这些关键词的文本,分词这些文本,提取出频率高且能反映运营问题的词汇。

2.4.2 情感倾向分析

1.否定词分析
否定语是副词的一种,是表示否定意义的词,在文本中具有独特的语法意义和影响。根据中文的成语习惯,重视否定会使情感极性发生变化,而双重否定则多表示肯定。因此,可以检测在句子的范围内在情感语之前出现否定语的个数,如果是奇数,则反转情感语的极性,具体来说,可以将-1 乘以情感语的加权值来表现。如果是偶数的话,可以使情感语的加权值保持一定,或者适当地提高。双重否定表示肯定,所以比直接肯定的语气重。
2.程度副词分析
程度副词也是副词的一种,副词一般用于修饰或限制动词和形容词、范围、程度等。“程度”指的是某个量在对应的层级序列上,是量的层级表示。比如,在“这个姐姐很漂亮”这句话中,“漂亮”是赞美的话,“非常”是修饰在前面,加强了这个赞美的程度。由此可知,程度副词的加入者情感倾向的强弱度变化,需要相应的处理。另外,正如“太漂亮了”和“特别漂亮”那样,“太”和“特别”这两个程度的词的表达程度是不同的,所以我们建议把程度副词分为四个等级,分别对应不同的份量。和否定语的用法一样,在句子中,在情感语的前面检测程度副词是否存在,存在时在情感语的加权值上乘以程度副词的份量。

第3章 系统分析

系统分析是通过需要者与顾客沟通,将所取得的信息通过需求说明书传达给用户和开发者。需求分析最初并不重视,但前期需求获得不全面,如果不彻底,在后期开发过程中,很多功能达不到客户的要求,加大开发周期和任务量,严重者会导致项目重新启动,损失可能很严重。

3.1 可行性分析

可执行性分析是根据系统的各个维度来判断系统是否可执行。是否可行,需要我们自己调查,通过各渠道,以各种角度分析判断。其中包括一些比较常见的东西。技术可行性,经济可行性。可行性分析很重要,所谓磨刀不做误砍柴的工作,如果没有首先调查,直接开始系统,导致系统一般不能进行或客户不满意,要求从头开始。系统的开发语言是 python,背景数据的存储直接存储在数据库中。python 可以实现目标站点信息的提取,通过 jieba 进行分词,通过 Cloudword 生成可视化图像。构筑情感模型进行用户评论的情感分析。如上所述,系统可以在技术上执行。

3.2 功能需求分析

1 注册登录:使用系统之前需登录,没有账户的情况下,需要注册之后再登录。
2 信息收集:从微博网站上爬取相关的信息,同时将其他网站上收集到的信息放进数据库中。
3 词云分析:把需要的关键词绘制成图片,通过改变字体大小或颜色来表现其重要程度,通过图形的方式进行的分析,将复杂的关键词展示在一目了然的图片中。
4 情感分析:构建情感分析模型进行用户评论的情感分析,分析网友的发帖或者评论情感倾向是否积极。
5 用户管理:对用户信息进行管理。

第4章 系统设计

4.1 设计目标及原则

系统开发的关键在于系统的设计,系统设计是其中的重要点,设计是否达到要求决定系统后期能否成功开发,以及完成后的性能是否达到标准。在全部的系统设计当中,需要满足的要求有:
(1)数据安全性
系统的开发设计覆盖了大量的数据,其中包括用户的数据和系统所需要的数据,任何数据都必须保证绝对安全,设计时如果不采用某些防范方法,就不能发现和改善隐含的安全问题。
(2)易用性
系统开发的最终目的是为用户提供良好的体验,使用与否,使用是否方便,决定客户今后是否继续合作。使用方便的系统可以提高用户的生产率,提高用户的好感度。

4.2 整体框架

1.数据爬取
根据爬虫抓取主要是抓取网页上的信息,通过 Python 爬虫技术,对指定的网站发起请求,获得服务器响应的数据,解析之后存入到 Excel 中,本文是指向性的捕捉主要用指向性抓取目标网站页面上的信息保存在本地文件中。
2.数据处理
把爬取到的海量信息进行中文分词、统计词频等存放到数据库中。
3.可视化展示
对爬出的信息进行中文的分词等,用可视化方式向用户提示,对用户进行数据的分析。
4.情感分析
在提取出来的数据中,分别对积极和消极的文本分词,并提取出其中的关键词,通过构建情感分析模型进行用户评论的情感分析。
5.用户管理
用户注册和登录。

4.3 系统流程设计

第5章 系统实现

结 论

系统通过数据挖掘的方法对社交网络情感进行分析评价,利用了爬虫、数据挖掘、文本分析以及朴素贝叶斯等,主要通过对微博网站的发帖内容和评论内容进行分析研究,并将得到的结果展示在图标当中。经过这次的系统实现与设计,我了解到了什么叫做“光说不练假把式”,在听老师上课的时候,我能理解知识的大半部分,然后课后的时间在巩固以下,我便能将其消化,但当我自己独立完成一个系统的开发时,我便感觉到力不从心。
因为在做系统之前,很多 Python 的知识已经遗忘,所以在进行开发的时候我遇到了很多困难,例如数据库与系统之间连接不上,系统出现 bug 无法解决等问题,我通过上网查阅以及请教同学得到了解决,在这个过程中,我学到了很多,也提高了自己一个人解决困难的能力,同时我深刻体会到,书本中的知识是死的,只有将其装进自己的大脑并能够利用,它才是活得,总之,“实践是检验真理的唯一标准”。
针对于本次的设计与实现,我不是特别满意,因为时间紧凑并不能将我的想法完全体现出来,比如,应该针对不同的用户群体开设不同的模式,对于普通用户,允许查看;而对于网站的管理人员,则可以针对信息的反馈,给不同的网民推送不同的内容,并将一些不好的字眼用特殊符号和谐。

猜你喜欢

转载自blog.csdn.net/m0_66309026/article/details/130897660
今日推荐