swaggyPYang / WBDS

data analysis system for sina weibo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WBDS

data analysis system for sina weibo 一个用来分析新浪微博poi点数据的项目,

1需求分析 1.1设计背景 随着互联网的日益普及,以及社交网络、微博等工具的出现,用户也参与到了时空数据的提供中来,担当着网络信息提供者和网络信息接受者的双重角色。用户提供信息数据量大、内容丰富,对用户特征和时空分布的分析有巨大的参考与挖掘价值。据统计,国内最大的微博平台——新浪微博的用户数量超过5亿,其中80%的用户使用移动端登录微博。截止2015年9月30日,微博月活跃用户数(MAU)已经达到2.12亿人,较上年同期增长48%,其中9月份移动MAU在MAU总量中的占比为85%;9月的日均活跃用户数(DAU)达到1亿,较上年同期增长30%。据第36次《**互联网络发展状况统计报告》显示,截止2015年6月,我国网民规模达到6.68亿,互联网普及率为48.8%;手机网民规模达到5.94亿。随手机终端的大屏化和手机应用体验的不断提升,移动商务类应用发展迅速,互联网应用向提升体验、贴近经济方向靠拢。手机作为网**要上网终端的趋势进一步明显。而移动端的微博包含的时空数据信息是数据分析中极其重要的一部分,信息位置体现了用户的活动范围、聚集、活动轨迹等内容,对用户行为特征分析和城市时空间结构分析有着重大意义。 1.2国内外研究现状 随着国际互联网的快速发展,尤其是以 Twitter 和 Facebook 为代表的新一代社交网络的出现和快速崛起,国外社交媒体分析步入快速发展阶段。众多专门针对社交媒体进行数据分析的工具和软件快速出现,功能不断完善,开源的交互式的复杂网络可视化和分析平台软件 Gephi便是其中的代表。Gephi提供社会网络分析最常用指标 (SNA)和无尺度网络方面的多种计算,包括中心度,网络直径,聚类系数,平均最短路径,网页排名,页面请求等,并可以实现社区检测和社区模块化。Facebook、Twitter 自己也推出了相应的分析工具。但需要注意到的是,目前市场上出现的大部分社交媒体分析软件尚都处在非常不成熟的阶段,并且极少有利用网络节点数据进行城市时空间结构的研究。微博数据分析有待完善。

2系统设计 针对需求分析,我们进行系统的总体设计,提出解决思路。首先我们使用Python借助新浪微博提供的位置服务动态应用程序编程接口(http://open.weibo.com/wiki),获取北京市区范围内的微博用户签到数据。在新浪微博官方提供的位置服务动态读取接口中有“获取某个位置周边动态”,在获取授权使用之后,可以获取某个点位(经纬度)周边一定范围的微博签到数据。结合GIS对所获取的数据进行时空分析,对城市活力、城市意象、城市联系进行分析,挖掘带有位置信息的微博数据的价值。 表 1 新浪微博API接口 位置服务(开发指南)

动态读取接口 Place/public_timeline 获取公共的位置动态 Place/friends_timeline 获取用户好友的位置动态 Place/user_timeline 获取某个用户的位置动态 Place/poi_timeline 获取某个位置地点的动态 Place/nearby_timeline 获取某个位置周边的动态 Place/statuses/show 获取动态的详情 2.1系统总体结构及关键技术 系统总体利用前沿的Node.Js技术,使用node目前最稳定使用最为广泛的express框架,结合开源的NOSQL数据库mongoDB进行搭建。本系统架构的设计**采用传统的三层体系架构,自底至上大体可分为:数据层、应用层、表现层。最底层的数据存储层中,空间数据采用ArcGIS的企业级地理数据库进行组织管理和存储发布;微博数据我们采用轻巧、灵活,非常适合在数据规模很大的mongoDB进行存储,利用mongoDB自带的Map-Reduce编程模式对数据进行分析,最后结合GIS技术,利用ArcGIS Server发布系统需要的基础地图服务,利用工具箱结合ArcGIS提供的核密度分析、创建泰森多边形等分析功能构造系统需要的GP服务对数据进行挖掘和分析,最后利用ArcGIS API for JavaScript对结果进行渲染并在浏览器中进行展示。 2.2系统功能设计 系统分为四大模块1)用户群分析模块:通过对爬取的带有地理位置的用户数据依照年龄、性别和城区进行统计,以分析不同属性特征的用户分布位置。2)城市活力分析模块:按照居民日常生活的时间节奏,将一天按照3个小时一段,划分为夜晚(0-3时、3-6时)、上午(6-9时、9-12时)、下午(12-15时、15-18时)、晚上(18-21时、21-24时),共计8个时间窗,采用核密度以及格网统计等方法分析采集时间窗内居民活动随时间的变化规律,以及不同性别居民,主城与外围居民的活动时间差异。3)城市意象:利用带有地理位置的用户签到数据采用邻域分析方法分析城市道路、区域以及标志物的特征以及变化,展示城市的重要性以及可变性。4)城市通勤:提取所有带有地理位置的用户签到数据中,单个用户签到两次及以上的次数的数据生成通勤线。

图 1 系统结构 3数据库设计 本系统的数据包括基础地理数据、用户数据以及用户签到数据。其中基础地理数据利用ArcGIS Server发布成Web上的服务;用户数据和用户签到数据利用新浪微博API进行采集并采用MongoDB进行组织存储。如表(2-3)所示: 表 2 微博用户数据 序号 字段名 标识符 1 用户ID userID 2 地址 adress 3 性别 gender 4 创建时间 creationT 5 签到时间 checkT 6 签到点ID poiid 表 3 微博用户签到数据 序号 字段名 标识符 1 用户ID userID 2 地点 location 3 性别 gender 4 年龄 age 5 经度 x 6 纬度 y 7 日期 date 8 时间 time 9 签到时间 checkinTime 10 签到点ID poiid 4详细功能设计 4.1用户群分析模块 该模块实现了对研究区域内新浪微博用户按照年龄、性别以及城区进行分类统计,并对不同属性进行渲染,来分析其不同属性下的空间位置差异,如图2

图 2 各年龄段微博用户数量统计 4.2城市活力 从时间维度出发,对研究范围内的微博签到数据进行统计分析,研究人的活动与时间的规律。并以此为依据,在分析城市活动空间总体特征的基础上划分时间窗,利用核密度分析以及格网统计的方法分析城市活动空间的动态变化。 4.2.1 总体动态 将采集到数据按照一周为一个周期分析用户签到在每天的位置变化以及每天的数量变化,生成签到数量变化折线图以及每天的签到核密度图。通过对比可以分析出在工作日以及非工作日之间的用户活动区域变化(如图3,图4)。在此基础上,按照居民日常生活的时间节奏,将一天按照上文提到的8个时间段,分析采集时间段内居民活动空间位置随时间的变化规律(如图5,6)。

图 3 9月28日微博签到数量核密度分析 图 4 10月1日微博签到数量核密度分析

图 5 单时段微博签到数量对比分析             图 6 单时段微博签到数量对比分析

4.2.1 动态差异分析 分别研究不同性别用户签到变化,以此来反映北京市区居民的活动时间与活动区域之间的差异性(如图7,8)。

图 7 女性微博签到分布 图 8 男性微博签到分布 4.3城市意象 城市意象,讲述有关城市的面貌,结合城市五要素(道路、边界、区域、节点、标志物)充分展示了城市的重要性和可变性。这里我们选取其中的道路、区域以及标志物三个要素利用ArcGIS的空间连接以及邻域分析等方法统计分析签到点位于道路以及区域中的特征。 4.3.1 城市路径微博签到分析 将发生在城市道路上的微博签到数据提取出来,从而对活动频率进行统计,分析城市中道路的总体路况。在全天路况统计中,我们按照居民日常生活的活动节奏将一天分为8个时段,进而分析在每个时段的城市路况,在双时段对比中我们可以直观的观察到城市路况随时间的变化迁移。通过全天的时段对比可以直观展示全天城市路况的变化情况。对于城市道路的规划以及车辆的限制提供辅助决策功能(如图 9)

图 9 城市道路热度分析

4.2.2 城市区域热度分析 根据微博签到的空间位置,利用ArcGIS提供的K-means空间聚类分析算法,以经度纬度坐标作为划分指标,以空间距离为划分依据,将北京市区划分成若干个不同属性的活动区域,作为识别活动模式特征的基础。提取出其中活动频率大的区域,我们可以发现活动频率高的区域主要集中在主城区。(如图10)

图 10 签到点K-means空间聚类分析 4.2.2 城市地标层级分析 分层地标是指一个地标可以同时隶属于不同的地标层级,其在较高层级下的空间作用范围要远大于在较低层级下的空间作用范围。这种层级性结构不是一个孤立分割的结构,而是较高层级地标作为低层级地标的子集存在,而在不同层级表现出不同的空间影响力。这种层级性结构在空间搜索、认知、导航的过程中发挥着重要的作用:在一个陌生的环境里,显著性较大、层级较高的地标为用户提供一个粗略的全局认知,可以指定大体的导航方向与区域范围;显著性较小、层级较低的地标则为用户提供了一个精确的局部认知,用于确定具体的导航目的地与路径。本系统通过大量POI点的签到数据利用Voronoi图对低层级POI进行空间作用的范围分割,然后遍历每个POI所在泰森多边形的最小邻域(直接邻接),通过比较邻域内POI的显著度指标的大小,提取邻域中显著的都小于当前位置显著度的POI当做下一层地标,继续执行逐步迭代的过程,最终实现自上而下的分层地标提取,数据量庞大,处理难度较大。如图红色点所在多边形的直接邻域多边形(绿色点所在多边形)的POI显著度值都低于它,所以,红色点将被提取出来作为下一层的地标进行运算。其中POI显著度(POIExp)我们以每一个POI点的签到数量(check_Num)以及自由打分的分区得分(urban_score)进行计算,计算公式如下:(POIExp=check_Num*urban_score )(如图11,12,13)。

图 11 第二层城市地标 图 12 第四层城市地标

About

data analysis system for sina weibo


Languages

Language:JavaScript 80.0%Language:CSS 11.4%Language:HTML 8.1%Language:Python 0.4%Language:CoffeeScript 0.1%