关于社交网络中的信息传播机理的探索--基于数据挖掘和分析研究

 2022-03-05 09:03

论文总字数:9566字

摘 要

本文基于Python语言提出了一种实时挖掘公开社交网络数据的方法,并改进前人提出的基于英文的情绪判别算法,研究了社交网络中的信息传播。并以2016年微博上对于“两会”的讨论数据为例,对所收集的数据时间段内人们对于“两会”的情绪传播情况进行了统计学上的分析:我们利用了SPSS里时间序列、统计系数、假设检验分别分析了在两会期间的情绪传播情况。这样的数据挖掘方法和数据分析方法都对政府相关部门监管社交网络有相当意义。

关键词: 社交网络, 数据挖掘, 数据分析, 情绪倾向, Python

Abstract

This paper proposes a data mining technique for open online social networks based on Python language, and revises a previous English-based emotion-judgmental algorithm to study on information diffusion in online social networks. Moreover, We use Weibo data concerning “Double Conference” in 2016 as an example to statistically analyze emotion diffusions in these data. We actually take advantage of time series analysis, coefficient calculating and hypothesis testing functions in SPSS to do that. Data mining proposed and data analysis methods in the paper might contributes to government management of online social networks.

Key Words: Social Network, Data Mining, Data Analysis, Emotional Tendency, Python

目录:

摘要: 1

Abstract 1

第一章:引言 3

第二章: 社交网络提取数据的方法 6

第三章:数据中所蕴含情绪的判别算法 8

第四章:统计验证: 10

第五章:利用提出的方法进行实证分析 12

第六章:总结与未来展望 18

致谢 20

第一章:引言

社交网络最先是由J.A Barnes在1954年提出,发展到信息时代的今天,已经在人们生活的各个方面都能看到它的身影。它的起源是电子邮件,90年代的电子邮件作为信息交换的低成本媒介被人们广泛使用,成为了最早期的社交网络,之后BBS升级了社交网络,将群发和转发加入,实现了广泛传播、评论信息的功能。这也是本篇论文讨论的重点—-对信息的评论与情绪。之后随之产生的博客、各类视频网站到现在流行的微博、脸书,社交网络在当代社会已经发展得接近完备。

随着社交网络的发展近年来社交网络俨然已经成为了社会热点关注的对象,Nature、Science及其他顶级期刊国际顶级刊物连续刊出了关于社交网络的前沿研究[10, 11, 12]。不同的网络模型陆续被应用到社交网络分析当中,而关于社交网络的研究也从理论到实际各个方面被各国学者深入研究,推特、脸书等知名社交网站被频繁研究。无论是从前沿性还是实用性上来讲,社交网络都无疑是当下的热点研究方向。

然而社交网络在提供给人们一个良好的交流平台以及使人们信息传递更加便捷迅速的同时,也带来了诸多问题。比如一些言论会在社交网络上迅速传播,甚至引起社会动荡,严重影响社会稳定。在某种程度上,社交网络在传播信息的同时,也蕴含着传播观点、情绪甚至是谣言。比如在2010年2月20日到21日,一则“山西一些地区要发生地震”的小心通过网络渠道在民众中疯狂传播,导致山西太原、晋中等地的几十个县市数百万群众在2月20日凌晨开始聚集在大街上躲避地震,这也导致山西地区的交通一度瘫痪。另有发生在2011年3月11日,日本东海岸发生9.0级地震,该地震造成日本福岛第一核电站1—4号机组发生核泄漏事故。此时一条消息传出,食盐中的碘元素可以放核辐射。受日本核辐射影响,国内盐供应出现短缺,发生了“抢盐风波”。由此可见,一些谣言或情绪拥有感染一系列个体的能力。如果不加以控制,受到影响的个体可能会危害他人安全,加上谣言带来的恐慌,这些都可能影响社会的安定。对社交网络中信息传播的研究中基于理论的模型很多,20世纪60年代,Daley和Kandall提出DK模型[13],拉开了信息传播模型的研究序幕。随后,Maki 和Thompson又提出了MK模型[14]。1985年,Sudbury[15]撰文提出传染病的SIR模型对谣言传播的动态模型也同样适用,之后也有学者提出社交网络中信息传播的阈值条件。但是这些模型都有明显缺陷,他们都假设人群的均匀混合的,从而忽视了个体的差异性,导致他们的模型对社交网络的拟合程度并不理想。

在实际生活中,谣言的传播过程其实通常会受许多因素影响,比如谣言传播者的态度,谣言接受者的个人主观意愿等等,于是谣言传播在某种程度上也可以看成是情绪的传播。现在关于情绪传播的研究有许多事基于数据角度分析的,Fowler等人[8]分析了跨度为20年的弗雷明翰心理的研究数据,发现无论是快乐或是沮丧的情绪都会在实际社会网络中传播。Turkle[18]提出了接触积极的情绪也可能使我们变得消极的观点,他解释了社会比较对情绪传播的影响。在这些研究的基础上,有学者把情绪传播的研究方向转向世界上最大的在线社交网络---脸书。2012年,Kramer[1]等人发现,某人发布的脸书状态会影响看到他这条状态的好友的情绪,也就是情绪传播不仅发现在现实社会网络中,还在社交网络上通过文字传播。2014年,他们通过刻意地为用户减少所能看到的积极的或是消极的状态数量,证实了情绪传播确实存在于脸书社交网络中。本文也基本这个作品,通过实时提取社交网络数据,利用情绪判别算法,提出了一种实时监控社交网络中情绪传播状况的方法。

而我们经常都发现,当我们发现在社交网络上谣言或其他过激言论存在的时候,这时谣言往往已经扩散开来了,再采取措施去阻止该信息的传播就显得为时已晚。比如在我国这几年发生的许多谣言都是这样:“地震”谣言、“抢盐”风波,当我们发现时,恐慌情绪都已经传播开来了。所以,如果我们可以设计一种方法在一定时间内进行实时的社交网络信息提取并及时的分析,那么我们就可以及时地了解到网络中各种信息,情绪传播的情况,通过计算机通过统计学知识自动分析其中是否存在过激情绪传播的情况。如果所有的统计系数、统计方法都显示出时间和情绪倾向高度的相关性,那么我们就应该采取相应的措施对网络上的过激言论进行控制,以免过激言论影响到更多人的生活。显然,这样实时监控社交网络的方法对相关部门管理社交网络具有重要的意义。

本文主要基于Python语言提出一种提取社交网络数据的方法,并通过改进一种基于英文的情绪判别算法,设计了一种能自动判别中文中情绪的算法。并用几种统计学方法来具体分析情绪倾向和时间之间的相关性。如果我们在每一段时间就让电脑做一次这样的工作,那我们就可以很好的实现实时监控社交网络中信息传播的想法。

第二章: 社交网络提取数据的方法

许多前人对数据挖掘进行过深入研究,如在[6]中,Eric基于客户群关系系统过数据挖掘研究。也有在[7]中利于对财务报表中的诈骗进行数据挖掘的。但本文的数据挖掘集中在算法。基于C语言和R语言的数据提取存在许多限制,如语言和数据大小的限制,而在Pytho中提取网络数据则显得方便得多:

用Python把网站数据存储本地到分以下四步[17]:

  1. 新建项目:新建一个新的数据提取项目
  2. 明确目标:明确你想要提取的目标
  3. 制作项目提取方法:制作提取的项目开始读取网页
  4. 存储内容:设计管道存储依次提取内容内容

很显然其中的第三步(制作项目提取方法)是整个数据提取的关键。这个过程总体分两步:先读再取。也就是说,首先你要获取整个网页的所有内容,然后再取出其中对你有用的部分。

读: 项目是Python用户自己编写的类,用来从一个域(或域组)中抓取信息。他们定义了用于下载的URL列表、跟踪链接的方案、解析网页内容的方式,以此来提取项目。

要建立一个项目,我们必须用scrapy.spider.BaseSpider创建一个子类,并确定三个强制的属性:

  1. name:提取项目的识别名称,必须是唯一的,在不同的提取项目中你必须定义不同的名字。
  2. start\_urls:提取项目的网址列表。爬虫从这里开始抓取数据,所以,第一次下载的数据将会从这些网址开始。其他子URL将会从这些起始URL中继承性生成。
  3. parse:解析的方法,调用的时候传入从每一个URL传回的信息对象作为唯一参数,负责解析并匹配抓取的数据(解析为item),跟踪更多的URL。

这样的Python提取方法虽然效率偏低,会提取到许多无用的信息,但可以帮助我们提取到所有需要的信息。对一般没有防止数据提取的网站,这样的提取方法十分奏效。我们只需筛选我们提取出来的数据即可得到我们所想要的数据。当我们用一个循环让这个代码每10分钟,或每一小时运行一次,就可以实现实时提取数据的功能,但这同时也对设备要求较高。而这样对于网站数据提取的方法也有重要的作用:

1.可以帮助我们更好的实现网络监控,避免谣言、过激言论的传播。

2.可以帮助我们察觉网络最近实时动向。

第三章:数据中所蕴含情绪的判别算法

利用机器学习来做情绪判别算法是现在主流的方法,而在前人发表的文献中,其中主要的方法是利用关键词定位,由此判别一句话或一段话中的情绪倾向。在文献[1, 3]中,作者使用了LIWC2007作为判别算法,这个算法是针对英文表达的。现在本作品修改了其中的词库,我们通过“中国常用词库”来将常常用在中文中的表达(包括字,词语,成语,以及固定组合)加以权重,通过搜索一整句话中的所有的语言表达,来进行权重加和来判别整句话中的情绪。

图一:在判别一句话的过程中,我们往往会遇到不具有情绪倾向的情况(如广告中有一些常用的词语和句子),当遇到这类信息时,电脑自动识别为“特殊标识符”,从而将整句话的情绪倾向设为0;另外,我们还经常遇到一条网络状态中含有“开心”“微笑”“不开心”“尴尬”这样的表情,当出现这样的表情时,也可以显著地说明该句子的情绪倾向。;如果以上两种情况都没出现,我们便需要考虑一个句子里的情感词语,否定词,程度词,语气词和句式等因素来综合判断这一句话中整体的情绪倾向的。具体流程如图所示

由此我们可以依次分析每一条数据中的情感倾向,进而统计从而得到所提取数据中每个时间段两种态度或情绪的比例。

第四章:统计验证:

验证信息或者情绪在社交网络中是否有效传播的重要依据就是情绪倾向比例是否与时间有相关性。在统计学上有一系列验证二维列联表[4]中两个变量之间的相关性的方法:包括计算Kendall’系数[14],Gamma系数[2],Somers d系数[9]和Spearman秩相关系数[16],其中,Spearman系数是一种非参数检验的方法。一般的计算方法如下,且它们的计算都在SPSS程序中十分容易实现。

其具体理论的计算方法如下:

其中是第i行,第j列的元素, 表示第i行元素的总和, 表示第j列元素的总和. 基于上述给出的辅助量,就可以轻松地计算一下几个系数

其中 和分别验证了因素A在因素B上的影响和因素B在因素A上的影响。另外一种测量两个变量之间相关性的方法是通过计算 Spearman秩相关系数 . 这是一种非参数检验上用到的检验系数,可以从 (10) 中得到:

其中,是对和之间的差异描述.

更进一步,我们假定原假设为情绪倾向和时间相互独立,备择假设是原假设和情绪倾向不是互相独立,我们可以通过计算卡方检验的P值从而得到结果。

其中

当原假设成立时, 近似服从自由度为1的卡方分布。

我们另可考虑运用时间序列的方法检验时间和情绪倾向的相关性:如果时间和情绪倾向是互不相关的,互相独立的,则相应的情绪比例相对于时间应该是个平稳时间序列,而平稳时间序列的定义的如下:

    1. 与t无关。

运用SPSS进行平稳实践序列分析,通过SPSS中对Sig.(Significance显著性)的检验,也很容易得到结果。

第五章:利用提出的方法进行实证分析

图二:这是部分关于处理网页的Python代码,可以看到,我们提取网页中数据的步骤主要是两步,先读取数据之后,再一页一页的将数据print和存储下来

运行本文提出的数据提取算法,得到了大概共计26万条关于今年“两会”主题的真实微博数据,进行数据分析。

图三:工作流程图

提取数据的结果:以“两会”为关键词提取了共计26万条关于今年“两会”主题的真实微博数据。如下图所示:

图四:以“两会”为关键词在微博上搜索相关微博,并按时间排列,并以该网址为起点,提取该网站上所有数据。并以该网页为起点提取数据

用改进的情绪判别算法对以上数据提取结果进行情绪分析,得出每条微博中的情绪倾向,得到结果如图所示:

图五:在每一条微博后,我们都计算出了该条微博的情绪倾向的总体权值,正值代表该条微博对“两会”的态度为正面、积极的。负值代表该微博对“两会”的态度为负面、消极的。经验证我们的情绪算法正确率高于80%。

如前面所讲,在每一条微博后的数字即是判别结果,如果改结果为正,则机器判别情绪为正面,0则为中立,否则为负面情绪。经过判别,我们得到的正面,中立和负面的微博信息条数分别为:92953,79603,88530。

当我们将所得到的情绪分析结果进行时间分隔(以半小时为单位)后来进行统计分析,得到如下结果:

表一:2016年3.3-3.7之间几种系数的计算结果如上表所示,除了非参数检验的Spearman秩相关系数有一些数据显示出显著性,其它数据显然它们的值都非常趋向于0,这在统计学上的意义就是我们的验证的两个变量,也就是时间和情绪之间的相关性非常弱。这意味着情绪并没有随着时间的推移而传播。

表二:更进一步,我们要检验在上表里的统计系数是否足够的小或者足够的大,以至于我们可以判定时间和情绪倾向之间的相关性,我们可以利用上述讨论过的方法进行假设检验,我们得到的检验p值显著的大(pgt;alpha, alpha代表显著程度,通常设定为 0.05 or 0.1). 这样,在时间和情绪倾向间不存在相关性的原假设就无疑成立了.

图六:这是2016.3.3-2016.3.7之间情绪倾向在各个时间段的走势。红色和蓝色代表积极情绪和消极情绪比例随时间的变化趋势。从图中可以看出,两种情绪倾向在各个时间段几乎是平稳的,而当我们用SPSS来验证时间序列的平稳性,得到了SIG(显著性)=0.02也均符合改时间序列平稳的假设,而此图也验证了我们的数据符合平稳时间序列的预期。

分析:

剩余内容已隐藏,请支付后下载全文,论文总字数:9566字

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;