




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DesignandImplementationofASocialNetwork-ysisSystemforUserAuthor:QUANFeng-nanTutor:HUChun-Socialnetworkisonlinereflexofourdailylife.Thestatusofsocialnetworkusers,theoperationmethodofsocialnetworkandtheinteractionbetweenfriendsreflecttheinformationdisseminationfunctionofsocialnetwork.Withtheysisofdataofsocialnetworkusersandvisualizationofysisresults,socialnetworkcandobetterininformationdissemination.Asforuser’s aldata,thispaper plishestwopartsofjobs,oneisthetopicextractionofuser’sstatusandthesimplificationof bymeansofusing thesymboloftopics,theotheristhestatisticalysisoftheusageofsocialnetworkandconsideringthefrequencyofinteractionasthesymbolofusinghabitofsocialnetwork.Asforthefriendsmessageofusers,wedealwiththefriendlistsandgeneratethefriendsdiagrambymeansofnetworkdiagram.Intheendwebuildasystemtovisualizetheysisof dataandfriendmessage,includingtherecentstatusthatuserposts,thenumberandfrequencyofstatus,thefriendsthattheuseroftencontacts,the ofuser’sstatus,thefriendsdiagramandtheinteractionbetweenfriends.Withtheysisandthevisualizationofuser’sdata,thesocialnetworkuserscanknowbetterabouttheiroperationmethodandusesocialnetworkinabetterwaytocommunicatewithfriends.Consequently,socialnetworkcanplayabetterroleininformationexchange.:socialnetwork,topicextraction, 绪 研究背 国内外研究现 Simply 知 独到分 PKUVIS可视化分析 总 研究目标与内 课题来 的组织结 相关技术现 数据可视化工 本章小 面向社交网络的用户数据分析系统设 系统功能需 设计原 系统总体架构设 系统功能模块详细设 接口模块设 数据分析模块设 可视化展示模块设 本章小 面向社交网络的用户数据分析系统实 系统开发环 平台环境和开发语 技术基 接口模块实 用户发布状态内容提 用户好友关系信息提 数据分析模块实 4.3.1提取模块实 用户个人分析模块实 数据可视化模块实 4.4.1提取可视化实 用户使用行为可视化实 用户好友信息可视化实 系统结构与功能介 系统主 个人 本章小 系统实 实验环 功能实 实验目 实验过 实验总结与分 性能实 实验目 实验过 实验总结与分 本章小 总结与展 工作总 工作展 致 参考文 绪社交网络是一种以用户社交为的网络服务形式,随着Web2.0时代的到来,社交越来越受到广大网民的喜爱。截止2013年12月,我民规模达6.18亿,使用社交的网民达到2.77亿,占总人数的45.0%[1]。由此可以看出,社交已经成为互联网生活中不可或缺的一部分。目前国内的社交主要有、腾讯、人人 Myspace等。2012年10月,全球活跃用户数突破10亿,成为全世界最大的社交[2]。到8.45亿的第一大社交,每年产生180PB的新数据[3]。用户使用真实身份登录,其中不实用户数为8.7%[4]在所有社交中比例较小因此于研究信息规律以及预测有着十分重要的意义。,通过提供的应用平台接口获得用户账号信息,分析用户好友的地理分布情况,用户好友的粉丝数,用户发布状态最常提到的,用户在一天中使用的时间段分布,用户好友分布,用户好友间的关系网络,用户最受欢迎的等[7],展示效果如图1.1所示。图1.1Wolfram alyticsforSimply总结,效果如图1.2所示:1.2Simply账号、转发时间曲线、地域分布、等方面,对于的分析有着形象地词展示上,使用词云表示转发过程中出现的高频词汇。知微效果如图1.3所示。1.3独到分分析结果,图使用点阵图。独到分析效果如图1.4所示。 图1.4独到分PKUVIS可视化分析PKUVIS可视分析工具(WeiboEvents)是可视化与可视分程,使用户能够发现事件中的关键人物、关键、重要观点,同时通过可视化的方式图1.5PKUVIS可视化分析工信息的重要来源之一。随着用户好友数的增多,用户从社交网络获取的信息呈现式增长。随之而来的问题就是用户若想要从这大量的信息中获取自己感的信息,不得的代表所在的,用谈论较多的代表用户所谈论的内容。的提取能够帮助用户明确好友间谈论的内容,从而更好地了解好友间谈论的话题。(2014340300第一章绪论相关技术LDA(LatentDirichletAllocation,即隐含狄利克雷分布,是一种文档生成模或语料库(corpus)中潜藏的信息。它采用了词袋(bagofwords)的方法,这种方LDA作为一种典型的词袋模型,认为一篇文档是由一组词构成的一个集合,词与Beta分布是二项式分布的共轭先验概率分布,狄利克雷分布作为多项式分布的共轭先验概率分布。因此正如LDA贝叶斯网络结构中所描述的,在LDA模型中图2.1LDA贝叶斯网络结构p(wi,zi,θi,Φ|α,β)= p(θi|α)p(zi,j|θi)p(Φ|β)θi以及Φ进行积分和对Zi进行求和得到p(wi|α,β)= ∑p(wi,zi,θi,Φ|α,数+建交互式网页应用的网页开发技术。通过在与服务器进行少量数据交换,AJAX可Web应用允许用户端填写表单(formWeb服务器发送许多带宽,因为后两个页面中的大部分HTML码往往是相同的。由于每次应用的与此不同,AJAX端机器上完成,因此Web服务器的负荷也减少了。DHTMLLAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列XMLJSON代替,进一步减少数据量,形成所谓的AJAJ。而客户端与服务器也并不需要异步[10]。设计的一种标记语言。HTML被用来结构化信息——例如标题、段落和列表等等,也可器(Notepad等)或所见即所得的HTML编辑器来编辑HTML文件。HTML是一种相对比较弱的超文本实现。早期超文本系统具有类型的、包含和来源这样的属性。另一个现在缺乏支持的特性是粗链路。使用XML的严格规则的XHTML(可扩展超文本标记语言,很多人认为它已经成为当前的HTML标准,XHTML1.0HTML4.01标准编写网页,但已有许多网页转用较新的HTML5编码JSP(全称JavaServerPages)SunMicrosystems公司倡导和许多公司参与共同HTML、XML或其他格式文档的Web网页的技术标准。JSP技术是以Java语言作为语言的,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序。JSP使Java代码和特定的预定义动作可以嵌入到静态页面中。JSP句法增加了被称为JSP动作的XML,它们用来调用内建功能。另外,可以创建JSP库,然后像使用标准HTML或XML一样使用它们。库提供了一种和平台无关的扩展服务CSS(CascadingStyleSheets,即层叠样式表,又称串样式列表、层次结构式样式和颜色等)的计算机语言,由W3C定义和。目前版本是CSS2.1,为W3C的CSS最重要的目标是将文件的内容与它的显示分隔开来CSS使作者可以将字体的HTMLCSS语言写的文件中。HTML文件中只包含结构和内容的信息,CSS文件中只包含样式的信息[13]。JavaScript引擎,为浏览器的一部分,广泛用于客户端的语言,最早是在HTML网页上使用,用来给HTML网页增加动态功能。然而现在JavaScript也可被用于网络服务器,如Node.js。言在用户的浏览器上运行,不需要服务器的支持。所以在早期程序员比较青睐于JavaScript以减少对服务器的负担,而与此同时也带来另一个问题:安全性。而随着服务器的强壮,虽然现在的程序员更喜欢运行于服务端的以保证安全,但JavaScript动及异步IO等特性,JavaScript逐渐被用来编写服务器端程序[14]。我们的系统需要动态显示处理信息,包括用户谈论的,用户的社交网络使用习惯,用户的好友关系图等,因此我们主要使用基于JavaScript的数据可视化工具。D3.jsJavaScript库(也可视其为插件HTML、SVGCSS,D3可以图形化、生动的展现数据。D3web标准的实现,使使用者不再受限于某个专有的框架,而是将强大而形象的组件与数据驱动方法整合进DOM[18]。D3.js与SVGD3.js在数据可视化方面大有用武之地。SVG指可伸缩Graphics同时SVG是一个与诸如DOM和XSL之类的网的标准。D3不是一个整体框架,它提供了基于数据文件的高效操作。D3能提供非凡的灵活CSS3,HTML5SVGWeb标准。D3以最小的开销支持大型数据集和动态行为的互动和动画。同时,D3允许通过丰富的组件和插件进行代码重用。与Flash相比,SVG最大的优势是与其他标准(XSLDOM)相兼容,它是开放的标准。而Flash则是未开源的私有技术。Highcharts是一款纯JavaScript编写的图表库能够很简单便捷的在Web或Web应用中添加交互性的图表,Highcharts目前支持直线图、曲线图、面积图、柱状图、饼图、散点图等不同类型的图表,提供丰富的API接口,方便在创建图表后对图表的任意点、线和文字等进行增加、删除和修改操作。支持众多的JavaScript事件,结合jQuery、MooTools、Prototype等JavaScript框架提供的Ajax接口,可以实时地从服务器取得数HTML5canvasIE7/8提供了降级替代方案。Chart.js不依赖任何外部工具库,轻量级,并且提供了加载外部参数的方法。础。2.1节介绍了文档生成模型LDA的基本原理与实现方法。2.2节介绍了涉及到WebAJAX、HTML、JSP、CSSJavaScript。2.3节介绍数据可视化库D3.js、Highcharts和Charts.js,我们对数据的分析结果主要调用这三面向社交网络的用户数据分析系统设本节详细介绍本系统的运行流程和总体模块设计。根据以上功能需求,我们3.1接口模块。接口模块分为数据模块与格式化处理模块,需要完成与数据库LDA3.1表3.1数据格式与具体内容描向的状态的编根据用户发布状态的时间轴信息中的用户状态内容,运用文档生成模型LDA进行提取。由于是一种无监督学习算法,在训练时不需要手工标注的图3.2文档生成算法流程算法流程中对应的变量以及其含义[15]3.2所示:表3.2文档生成算法流程变βαkγΦ图展示好友联系,可以帮助用户更好地找到潜在的好友。图3.3词展示预期效3.4预期效果如图3.5所示。3.5面向社交网络的用户数据分析系统实根据第三章介绍的面向社交网络的用户数据分析系统的总体设计和功能模块详细序使用Linux系统运行。操作系统:Windows7/Ubuntu12.04数据库管理系统:MongoDBWindows个人计算机,IDEEclipseforJavaEE。其中接口模块与数Javahtml/CSS/JavaScript相关技术进行开发,数据可视化模块使用JavaScript的d3.js、Highcharts库调用生成效果图。LDA-DavidBlei在提LDAC语言完成了模型的源码实现[16]。系统应用提取根据LDA源码的格式要求,对要分析的源文件进行预处理,建立索引表,JavaJava相关方法调用有一定的掌握的结果,因此需要使用Web前端的相关技术搭建,美化界面以提供良好的用户体D3.js、Highcharts、D3.js、Highcharts、Charts.js三个可视化库,通过词云、柱状图、饼图、图等展示数据分析结果。态部分数据分为两类,用户状态和用户对他人状态的评论。根据数据中的fid一项可以判断该项状态属于还是评论通过比较fid的数ArrayList<String>mids=newArrayList<String>();StringfileName=STOREDIR+userId+FILESUFFIX;BufferedWriterbw=newBufferedWriter(newFileWriter(file));printDataById的参数为要查询的用户的ID,mids保存用户发布的状态,userJsonsArrayList<String>transferMids=newArrayList<String>();Iterator<String>fidIterator=mids.iterator();{(midmiduserJsonsfidmidmidsfidmid相同,那该条状态为转发状态,保存这条转发状态。TransferMids用于if(usersRecord.get(ssss[1])==null){maptmp.put("source",userindex);maptmp.put("target",nodeindex-1);maptmp.put("value",目标结点(target,也就是好友结点)的好友情况。Userindexnode中用户的编号,最后将maptmp(该好友总结点信息)加载到显示列表中。从接口模块传来的用户发布状态内容信息,用户好友列表信息,经过LDA提接口模块从数据库提取的内容以文档形式,作为提取的数据输入。LDA-C源码在Linux系统运行,其中主要实现命令:ldaest[alpha][k][settings][data][random/seeded/*][directory]ldainf[settings][model][data][name]pythontopics.py<betafile><vocabfile><n第一条命令为模型学习,其中alpha为迭代参数,选择小于1时运行速度较快;k为篇随机文档开始;directory表示输出结果路径。settings为设置LDA不需要手动划分训练集,因此该文件与第一条中的data文件相同;name为最终结果,一个概率矩阵,表示在不同topics.py是运行文件,betafile以及好友交互内容等。整个分析模块的流程如图否是4.1 publicArrayList<String>{ArrayList<File>files=br=newBufferedReader(newFileReader(file));while((tmpString=br.readLine())!=null&&!hasGetId){为打开文件其中ID信息,br.readline()为一行信息,如果其中有ID信息就读出来,根据ID号在数据中找到该ID对应的用户的状态数据。publicStringgetPrintStringByUid()sb.append(date).append("|");sb.append(content);returnsb.toString();}getPrintStringByUid通过Uid直接输出 publicStringgetPrintStringByFid()sb.append("#");sb.append(date).append("|");sb.append(uid).append("|");sb.append(content);returnsb.toString();}getPrintStringByFid通过比fid输出评论的内容,若用户该fid编号则为提取的结果是不同下出现频率较高的。因此我们使用词云展示function{使用D3.js+svg的可视化展示方法,将 在一个html页面展示,现.style("font-size",function(d){return.style("font-family",scrolling="no"frameborder=0></iframe>用户月发帖量,调用Highchartschart:{type:'column',margin:[50,50,100,},title:{text:‘……’},xAxis:{……},yAxis:type为图表类型柱状图,margin为边界大小,title为标题,xAxisyAxis分varradarChartData=labels:[],datasets:[{fillColor:"rgba(……)",strokeColor:"rgba(……)",pointColor:"rgba(……)",pointStrokeColor:"……",data:[……]}]}label force.nodes(json.nodes)append("line").attr("class",varnode=svg.selectAll("node").data(json.nodes).enter().node.append("circle").attr("class","node").attr("r",2).on('mouseover',function()d3.select(this).attr('fill','orange');}).on('mouseout',function()d3.select(this).attr('fill',4.2所示,主页介绍了系统的设计初衷,以社交网络为平台,对社交系统主页提供搜索功能,对用户感的个人,团体与话题进行搜索,可得到相应4.2用语言、、状况、居住地、毕业学校和工作地点。2013年该用户的每周发布状态数,每十条状态的平均评论数,4.3并用辐射图按比例表示,效果如图4.4所示。统计用户全年的发帖时间分布,以柱状图词图4.4与时间分4.5如图4.6所示,好友关系以点阵图表示,该用户与好友头像下方的显示用户和业学校以及等,最后列出用户与好友最近的交互信息。4.6根据上一章节的需求说明和设计,本章介绍了整个用户数据分析系统的实现。4.1法说明。4.5小节对系统的功能与结构进行了统一的介绍。前两个章节分别介绍了面向社交网络的用户数据分析系统的详细设计及各功能模后针对系统功能设计具体的实验,实施实验并分析,验证本系统的可用性。根据系统需要,实验服务器系统选用Windows系统,其中提取部分需要使用LinuxChrome浏览器,关于验证本系统功能和性能测试的相关参数CPU:In(R)Core(TM)i5 操作系统:Windows7/Ubuntu12.04数据库:MongoDB测试网页端浏览器:Chrome用户谈论的。经过LDA模型提取生成的,以词云形式展示柱状图、饼图、图展示1)提./ldaest0.75settings.txtap.datseeded./ldainfsettings.txtresult/finalap.datpythontopics.pyfinal.betavocab.txtest命令中,0.7为迭代参数,设置为1以下可以得到较快速度,5为数目,settiings.txt为参数设置文件,ap.dat为数据文档,seeded为迭始方式,选择一inf命令中,settings.txt为参数设置文件,result/finalest命令中得到的结果矩阵文件,ap.dat为需要处理的数据文件,result/inf为推测结果。python命令中,topics.py文件为单词转换文件,final.beta为结果矩阵,vocab.txt为词汇表,45.4所示,输出五个最热门的四个。5.4用户提图5.5词云展从图上可以看出,该用户发布的状态中,develop,browse等词的出现频率较高, Highcharts、Charts.js显示用户的行为信息,其中用户月发帖量和用户发帖时间分布如图5.6所示:调用D3.js下的网络图展示方法,显示好友关系,由于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论