微博用户关系可视化设计毕业设计(论文)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

毕业设计(论文)
指导教师职称博士讲师学生姓名学号
专业网络工程班级
系主任院长
起止时间
目录
摘要 (i)
Abstract (ii)
第一章绪论 (1)
1.1研究背景 (1)
1.2研究意义 (1)
1.3研究现状 (2)
第二章分析与研究方法 (4)
2.1研究方法 (4)
2.2微博用户关系分析原理 (4)
第三章微博数据获取 (6)
3.1新浪微博开放平台 (6)
3.1.1简介 (6)
3.2数据获取 (6)
3.2.1创建应用 (6)
3.2.2下载软件开发包 (7)
3.2.3获取数据 (8)
3.3微博标签分析与特征 (14)
第四章微博用户属性及用户关系研究 (16)
4.1微博用户属性 (16)
4.1.1用户的动机 (16)
4.1.2用户的角色分类 (17)
4.1.3用户的行为 (17)
4.2微博用户关注情况分析 (18)
4.3微博用户关系网络分析 (21)
4.3.1微博用户关系间的强度分析 (27)
4.3.2网络密度分析 (28)
4.3.3平均路径长度与网络直径 (29)
第五章总结与展望 (31)
5.1总结 (31)
5.2展望 (32)
参考文献 (33)
谢辞 (34)
微博用户关系可视化设计
摘要:微博用户数量的爆炸式增长使得微博用户网络更为错综复杂。

本文主要研究微博用户关系以及其可视化:通过新浪微博的官方API开放平台接口以及Python运行环境,读取特定微博用户的相关数据并进行用户关系分析;利用CSV文件存储分析结果;使用Gephi工具进行可视化输出,对用户的特征、行为活动以及整体关系结构进行直接展示,从而得到微博用户与其相关用户之间的交互“强度”,及其所在社群的可视化关系图,最终有助于用户社群的挖掘与舆情控制等。

关键字:微博用户;用户关系;可视化
Visualization of Relationships between Weibo Users
Abstract: Weibo explosive growth of the number of users makes the network more complex Weibo user. The main microblogging users and their relationship herein Visualization: official Sina Weibo Open Platform API interface and Python runtime environment, read the relevant data for a specific micro-blog users and user relationship analysis; CSV file storage utilization analysis; using Gephi tools for visual output on the user's characteristics, behavior and the overall structure of a direct relationship between the display, whereby the micro-blog users and their associated user interaction between the "strength", and where the visualization diagram community ultimately contribute mining and user community control of public opinion.
Keywords: weibo user;user relationship;visualization
第一章绪论
1.1 研究背景
伴随着我国的计算机技术以及互联网技术的快速发展,2013年我国的信息化进程报告会认为我国的信息化进程已经与发达国家一同步入网络化的时代,截至2013年的6月,中国网民已经突破6亿,初步实现网络化。

可见,互联网技术已经日复一日的融入到我们的日常生活当中,网络技术已经影响了我们的生活、工作、交友方式等,成为生活中不可或缺的组成部分之一。

近几年来,全球互联网市场上各种社交软件相续应运而生,从外国的MSN、FaceBook、Twitter 等到国内的QQ、人人、微信等,以及到目前流行的微博客,这些平台都是我们在日常生活中人与人之间关系以及行为活动的具体表现。

通过这些交互平台,我们可以常与亲戚朋友沟通,并且结交志同道合的新朋友,它们能提供给我们所需要的通信便利,减少因为地理上的不便所带来的麻烦。

“微博”作为社交软件的新生力量,作为一种全新的信息传播模式。

据新浪微博最新的数据显示,截至2013年底,新浪微博用户的注册数量已经突破6亿,用户活跃度也持续增长。

随之而来的对于微博的技术升级、应用开发、平台资源的整合,在资源数据下的研究分析,折射出各方面的优势以及提升空间。

在如此大的微博用户数据中蕴藏着巨大的可挖掘数据,因而对新浪微博的数据进行挖掘研究很有必要性。

1.2研究意义
微博,即微博客,是一种基于用户关系间信息分享、信息传播以及获取信息的平台,用户可以及时更新自己的简短话题,并可以公开的形式公开。

微博是依靠独立信息源所形成数量庞大的微博用户数量,通过对信息的加工整理,可以将微博构建为互联网中的信息指向源和主要信息源。

微博这一全新的交互平台,打破了传统常规的传播途径,给人带来全新的社交交互体验;并且在现今的发展中,
微博的应用开发使用有着巨大的商机潜力。

对微博用户的挖掘研究有着巨大的积极意义:通过对微博用户的行为活动习惯、属性信息、直接关系、间接关系等的研究分析,并且对用户间的关系进行可视化展示,使得用户在自己微博中能够更加清晰的看到自己周边的环境情况、行为活动习惯、关系情况等;对微博用户的潜在关系的挖掘研究可视化展示,有助于更加深刻的了解到用户间圈子的形成、相同点、影响力、活跃度等,也有利于分类分析研究的开展。

1.3 研究现状
新浪微博自从2009年推出以后,在我们的社会生活中的一些方面领域产生巨大的影响力;随着微博的发展升温,微博在互联网业界得到了广大的关注,吸引着各界学者的关注,比如计算机科学、互联网技术、心理学等一些领域对微博进行深层次的挖掘研究。

对于国内外关于微博研究的相关文献资料的整理分析,主要有以下几个方面:微博网络结构领域特征研究、微博用户研究、微博热点研究、微博应用研究等。

本文主要是对微博用户关系领域的研究分析,所以针对微博用户关系研究的主要是以下两个方面:
(1)用户关系方面分析,解利群、颜清华等人对于社会网络的分析理论,从社会网络学方法分析视角微博中人与人之间的关系量化情况,总结
出直观模型——微博“围观模型”,此模型表现了微博用户关系整体
网络的基本特征:明星用户之间的交流互动的情况很频繁,形成一个
朋友交流圈;普通用户则处于网络交流的外围“围观”状态,与明星
用户之间的直接交流状态基本无法实现,因此在一定程度上普通微博
用户只是进行单方面的信息传播与阅读;“围观模型”概念体现了微
博交互网络的一个特征,并且也折射出了目前的现实社会中的一个网
络关系特点——交互交流的困境。

袁园、孙霄凌、朱庆华则是随机选
取部分微博用户以及其关注的人的数据作为研究对象,通过关联的关
系建立社会网络结构图,利用社会网络方法分析并且使用聚类分析法
来对此样本数据进行整个网络的分析、内部子结构的分析以及角色位
置的分析,从而以微博用户关注的数据来挖掘微博用户关注对象的分
布和其关联性,可针对目前的微博关系提出有用的建议。

(2)用户特征方面分析,杨小朋、何跃提出“博文魅力指数”概念,并且运用Spearman和Pearson的相关系数分别来对听众数量和收藏博文
的人数、博文魅力指数等变量进行分析,最终选取用户的听众人数和
微博的魅力指数这两个变量通过K-Means聚类算法对微博用户进行
聚类分析,结果表明:博文魅力指数与收藏博文人数这两个变量中度
正相关;聚类将微博用户分为信息获取型、草根名人型和普通社交型
三种。

何黎、孙何跃、孙何跃针对微博用户的相关信息以及关系结构
数据来进行相关性的分析、关联性原则的分析以及决策树规则的分析
并且挖掘用户的行为特征包括核心用户的,结果表明:微博中的名人
明星用户的关注数量小,但是被关注数量大的特征;微博用户趋于通
过积极关注其他微博用户以及积极发布博文的这两种方式来提升自
己的被关注度;公布性别或者自身相关信息的微博用户,通常会发布
博文,而不愿意公布性别或者自身相关信息的微博用户,则通常就不
愿意发布博文。

基于以上的研究成果,本文以新浪微博作为研究数据源,通过新浪微博的官方API开放平台接口以及Python运行环境,读取微博用户的相关数据,并对微博用户关系进行分析,利用CSV文件存储分析结果,并使用Gephi工具进行可视化输出,使得用户的特征、行为活动以及整体的关系结构得以形象化展示,并得到微博用户与其他用户之间的交互“强度”,及其所在的社群的可视化网状关系图,从而挖掘用户间的直接关系和间接关系。

第二章分析与研究方法
2.1 研究方法
数据可视化技术的基本思想是将数据库里的每天一个数据项或者一个节点数据作为单个图元元素来表示,庞大的数据源可以直接构成数据图像,并且可以将数据的各个属性值以多维数据的形式进行展示,还可从不同的纬度观察数据,从而对数据进行更深入的观察和分析。

数据可视化主要旨在借助于图形化手段,可清晰有效的传达与沟通信息;为了能够有效的传达思想概念,美学形式与功能需求这两功能齐头并进,可以通过直观有效地传达关键的方面与特征,从而实现对于相当稀疏而又复杂的数据集进行深入洞察。

2.2 微博用户关系分析原理
这部分主要是介绍实验的整体流程如下图2.1所示。

图2.1 原理流程图
本次研究的微博样本对象是名人明星用户,其角色分类是大V认证用户,
他所发表的博文可以被其它用户进行评论、转发、点赞等操作;为了获取到研究样本用户所关注的人等数据源,可以通过新浪微博的官方API开放平台接口的friendships方法,获取微博用户的相关数据(关注的人ID,用户ID,博文ID等)并进行分析;为了获取其博文的评论者用户的ID,因为受到官方开发平台权限的限制,所以要通过页面HTML源代码的分析,使用Python运行环境以及BeautifulSoup、Requests等外部库的方法“find_all”方法提取自己所需要的DIV 下的内容数据,得到的微博用户的ID要使用“点—边”的形式存储到CSV节点关系表中,然后利用CSV文件存储分析结果;数据可视化——使用Gephi工具导入以上得到的CSV文件就可以输出关系图,以及此次数据的网络密度、平均路径长度等变量。

第三章微博数据获取
3.1 新浪微博开放平台
3.1.1简介
新浪官方的开放平台是一种基于新浪微博客系统的开发平台,主要是用来实现信息的传递、资源的分享和交流的一个平台,其体系结构类似于国外的社交软件Twitter。

广大应用开发者只要登录新浪微博的开放平台网站并在网站中创建应用,便可通过官方开放平台所提供的各种开放接口(Open API)对新浪微博系统进行读写,获取自己想要的微博数据和实现某些应用功能,挖掘出新浪微博系统的新功能与新玩法,使微博能够得到不断的创新与进步,微博的的长期发展不断的注入新的血液力量。

3.2 数据获取
3.2.1 创建应用
想要获取新浪微博的数据,首先要做的第一步就是创建应用,其创建的过程如以下几个步骤:
第一步:进入新浪微博的开放平台网站(网址:/)。

第二步:选择“微连接”目录下的“站内应用”,然后再选择右上角的“创建应用”按钮。

第三步:选择“创建应用”按钮后,会弹出一个开发者信息填写的一个注册界面,这里正常填写能通过邮件激活即可。

第四步:填写创建应用的相关信息,填好应用对应的实际地址,如若只为简单地获取微博数据,本地址可以随意选区,没有太多具体要求。

第五步:提交创建的应用之后,在页面“管理中心”的“应用信用”中的“基本信息”中可以看到自己创建的应用的基本信息以及新浪系统会自动为你生成App Key和App Secret,这个两个值将是获取微博数据的重要基石;为了应用的
成功创建而不出现第三方的授权错误,在“高级信息”的中还得必需填写可实现的回调地址,便于后面从地址栏中获取“code”的值。

如图3.1所示:
图3.1 应用code值
3.2.2 下载软件开发包
新浪开放平台提供了很多的软件开发包(SDK)供开发者下载使用,里面提供了较为丰富的开发源代码可供开发者参考、学习和使用,如图3.2所示。

因整个毕业设计的实现使用的基本都是java语言,所以这里本人下载使用的是java SDK。

下载地址:
/p/weibo4j/downloads/detail?name=weibo4j-oauth2-beta2.1.1. zip。

当然,也可根据自己的喜爱和需要下载自己想要的SDK版本。

图3.2 SDK目录
3.2.3 获取数据
下载好Weibo4j-oauth2.0-beta2.1.1.zip后,解压得到weibo4j-oauth2,里面内容如图3.3所示:
图3.3 weibo4j-oauth2文件目录
将解压得到weibo4j-oauth2导入到Eclipse中;为了成功授权用户的登录,此时需要配置src目录下config.properties里面的参数值。

其中config.properties 的内容如下:
client_ID =
client_SERCRET =
redirect_URI =
baseURL=https:///2/
accessTokenURL=https:///oauth2/access_token
authorizeURL=https:///oauth2/authorize
rmURL=https:///2/
参数配置情况如下(后四行内容无需修改):
client_ID=App key的值
client_SERCRET =App Secret的值
redirect_URI =应用成功发布在新浪微博的对应的实际地址的值,这里因为本人使用的是南华大学官网的网址,所以此处应填写的即为此网址。

配置好config.properties里面的参数值后,编译运行weibo4j-oauth2工程下examples里weibo4j.examples.oauth2中的OAuth4Code.java文件,此时跳转到授权界面,并成功的自动跳转到南华大学官网的首页,在地址栏中会有出现一个“code”值,如图3.4:
图3.4 地址栏code值
此时,将该code的值复制到Eclipse的console窗口下,按enter键继续就可以获得access_token的值,此值相当于一个访问令牌,拥有此认证码便使得你的账号得到了微博系统的认可,便会拥有对微博系统的某些操作的权限。

运行结果如图3.5所示:
图3.5 access_token值
在weibo4j-oauth2工程中创建一个文件输出的java文件:FileOutputUtil.java,内容如下:
package com.test;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import .apache.bcel.internal.generic.NEW;
public class FileOutputUtil {
private static long count= System.currentTimeMillis();
public static void printToFile(String str){
String fileName = "C:\\Users\\smiao\\Desktop\\beyesheji\\data\\weibo" + ++count + ".txt";
File file = new File(fileName);
FileWriter fw=null;
try {
fw = new FileWriter(file);
fw.write(str);
} catch (IOException e) {
e.printStackTrace();
}finally{
if(fw!=null){
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
接着再修改weibo4j.examples.timeline中的GetFriendsTimeline.java里面的传递参数。

本文选择微博用户为:用户名为“文章同学”的作为此次研究对象的数据源,然后再对其进行直接关系(一级关系)以及二级关系扩展研究,再可针对二级关系图中的核心圈进行分析研究(对此微博用户的关系用户作为研究数据)。

因此可以通过以上配置好的官方开发包关系接口的friendships中的关系方
法如下图3.6、3.7所示:
图3.6 获取用户的关注列表的代码
图3.7 GetFriendsById方法代码
通过上述的接口方法来获取分析所需要的关注列表ID(图3.10),由于此官方的开放平台对于一些名人明星的相关数据无法直接返回结果数据,所以还要使用Python方法以及其外部库“BeautifulSoup”、“Requests”等,在页面HTML源代码(如图3.9)中抓取相关的用户ID、微博用户名等字段属性,这样就可以对用户的相关关系网络进行挖掘研究。

代码如图3.8:
图3.8 Python方法代码
图3.9 HTML源代码
在图3.9的HTML源代码解析中,可以看到在每个DIV中的都有固定的class 是“comment_lists”,在DIV下都包含有“dl”以及其class是“comment_list S_linel”,外部库“BeautifulSoup”下的“find_all”方法(可以针对需求进行删减)可以获取到每个相同class的“dl”下的内容——微博用户的ID,以列表方式呈现,再以“点—边”的形式存储到CSV文件中。

图3.10 关注用户的ID列表
图3.10为研究样本用户所关注的人列表。

3.3 微博标签分析与特征
每条博文所附带的固定属性:博文ID、转发者ID、评论者ID、点赞者ID、微博链接URL等;每位微博用户所附带的固定属性:用户名、用户ID、粉丝名、粉丝ID、粉丝数量、被关注者ID、关注者ID、关注者数量等。

详细信息如下表3.1所示:
表3.1 属性表
第四章微博用户属性及用户关系研究
4.1 微博用户属性
这部分主要是针对个体用户的属性进行分析,也是对个体用户的行为特征的一些指标进行分析,从微博用户的动机、微博用户的角色分类、微博用户的行为等三个角度来分析研究的。

基于微博用户属性的介绍分析,可以得到用户个人的基本信息以及特征,折射出他所在的“圈子”也是具有其相同的行为特征,对接下来微博用户关系的直接关系研究提供了可靠的依据,包括他所在的直接关系网络进行二级关系扩展研究、核心圈等。

4.1.1 用户的动机
在CNNIC的第32次互联网调查报告中称截至2013年6月底,我国的网民已经达到5.91亿,互联网普及度到达44.1%,比2012年底提升了2.0个百分点;新浪微博的注册用户已经超过5亿多了,可见新浪微博的注册用户数量在我国的网民总数中占据了很大的比重,虽然微博注册用户可能一人持有多个账号的情况,但是这个比重足以看出新浪微博用户数量的庞大,用户使用新浪微博的动机可能是:
(1)用户自身的社交需求,可以很方便的同亲戚朋友们进行沟通联系;并且可以结交志同道合的新朋友;即时了解到最新的资讯新闻以及各界名人明星的最新状态。

(2)用户自身的表达展示,可以通过新浪微博平台更好的展示自己,分享自己的喜怒哀乐等事情;也可以在这个巨大的集体中寻找到属于自己的快乐,缓解孤独烦恼,能够融入到大家庭中。

4.1.2 用户的角色分类
在微博中虽然每一位用户都拥有平等的权利,可以任意发布自己的消息状态,但是在如此大的群体中还是根据不同的标准进行划分用户类型:
(1)可根据用户是否是认证用户分为认证以及非认证用户,其中认证用户是还要分为个人认证用户和机构认证用户,想要申请成为认证用户要满足以下条件:新浪微博用户的关注人数不能少于50人,发布的博文不少10篇,粉丝不能少于100人,身份证,手机号等信息认证。

(2)可根据微博用户的粉丝数量分为明星用户和草根用户,一般明星用户的粉丝数量较高,关注度高、影响力大;草根用户的粉丝则较少,多数是自己的朋友亲戚等,因而关注度、影响力等就较小。

(3)可根据用户的活跃程度的不同分为意见领袖以及“僵尸”,意见领袖的活跃程度比较高,他们发表的博文、评论、转发等都能引起大部分粉丝的支持,能够代表一定的影响力;而“僵尸”用户则是一些不活跃的用户,粉丝少,没有影响力。

(4)可根据微博的实体类型分为个人用户以及机构用户,个人用户是普通用户和明星用户,机构用户则是政府机构等。

(5)可根据微博信息交流的角度分为信息发布用户、信息共享用户、信息管理用户。

4.1.3 用户的行为
微博用户的主要行为特征有:
(1)发表博文,微博的一个明显特色就是微博用户自己作为一个媒体来发布信息资讯,输入字数控制在140以内,还可以对自己要发布的信息进行权限设置为:公开、仅自己可见等。

(2)转发博文,微博用户在浏览阅读其它用户的博文时可对其进行转发,也就是说把他人所发布的原博文进行引用再发布,在转发的时候还可以对原博文进行发表转发的原因以及“@”、或者私信好友用户等。

(3)评论博文,用户在浏览阅读博文时可对这条博文进行评论操作,还可在评
论的同时对其进行转发、“@”功能操作。

(4)私信功能,可以通过这项功能对于不方便公开的信息进行发送交流,具有一定的隐私保护性,其接受范围也能进行设置,可选择所有人、好友或者自己关注的人进行发送私信。

(5)浏览功能,微博用户在微博平台可以查看到关注的人时刻更新的信息状态等。

(6)添加关注的人,用户可以对自己的亲朋好友或者志同道合的陌生人进行关注,能够在第一时间浏览到他们的最新动态信息。

(7)使用应用,在微博平台的第三方应用中,可以根据自己的需求来选择性的使用应用。

4.2 微博用户关注情况分析
这部分主要是针对样本数据里的关注情况进行分析研究,对微博用户“文章同学”以及其ID为“1212812142”的用户关系共有187条关注数据进行分析研究;经过计算统计187个关注用户共关注了80527个用户,平均关注数为42.91个用户,其中用户最多关注了2207个微博用户,最少则为0个。

通过针对微博用户与关注的人之间的直接关系进行分析研究,由新浪微博平台开发包接口的关系方法获取的数据源(如图3.10),形成了csv格式的文件如下图4.1所示,这是根据用户ID所形成的节点关系表。

其中“source”表示源头节点,“target”表示目标节点;ID为“1212812142”的是“文章同学”,“target”则是其所关注的微博用户,如果两者在同一行,就形成了“点—边”的直接关系——他的一级关系。

图4.1 关注的用户CSV节点关系表
根据生成的节点关系表CSV文件通过Gephi工具的导入,并且执行就可以直接生成微博用户与关注的人之间的直接关系结构图如下图4.2、4.3所示,使其可视化展示输出。

图4.2 研究用户与其关注的人关系图
在图4.2中由黑白点进行区分,其中唯一最大的白点表示微博用户“文章同学”,由其作为中心出度点,向其它的节点发起连接,其它的黑点作为入度点——他所关注的人,因此相互直接建立了联系。

图4.3研究用户与其关注的人关系区分图
在图4.3中标签ID为“1212812142”的是中心节点,即微博用户是“文章同学”,红点ID为“1196235387”的是“马伊俐”,由其向其它的点发起连接;通过数据的可视化展示,以及标签ID进行标注,能够更加清楚的看到相互之间的关系,接下来就可以对其进行二级关系扩展的分析研究。

4.3 微博用户关系网络分析
现实中的网络可以分成:社会网络、科技网络、和生物学网络这四大类。

微博用户关系网络是社会网络的其中角度之一,这部分主要是把采集到的新浪微博用户的关系通过社会网络进行分析研究,社会网络分析方法是针对社会网络中各关系结构以及属性进行分析研究的一种方法,主要分析行动者间的关系模式。

目前这方法被广泛用在分析作者合作、网络连接共链等角度中,在此把这方法引用到新浪微博用户关系分析研究中,对研究对象的关系整体结构进行可视化展示,
并且对其进行二级关系网络的扩展研究展示,可研究解释这个“圈子”里的结构关系,能够为深化研究微博用户关系提供了可靠的科学依据。

这里主要是针对微博用户关系间的扩展所形成的“圈子”进行分析研究,因此由新浪微博平台开发包接口的关系方法获取的数据源(研究样本用户与其关注的人的二级关系扩展数据),形成了CSV格式的文件如下图4.4所示,这是根据用户ID所形成的节点关系表。

其中“source”表示源头节点——样本用户ID 以及其所关注的人ID,“target”表示目标节点——研究用户所关注的人ID以及其所关注的人ID;如果两者在同一行,就形成了“点—边”之间的直接关系。

图4.4 样本用户与其二级关系扩展CSV节点分析表
根据生成的节点关系表CSV文件可直接通过Gephi工具进行导入输出,生成微博用户的二级关系扩展图如下图4.5所示,用户与其关注的人以及其关注的人与他的关注的人三者之间的关系结构可以直接通过可视化进行展示,其中最大的节点是ID为“1212812142”是数据样本对象,由于本次研究的对象微博是明星用户,所以产生的数据就比较多,可视化图像的节点与边就显示的比较密集、。

相关文档
最新文档