一种微博数据管理系统及其实现方法
【专利摘要】一种微博数据管理系统及其实现方法,为微博用户提供一种通过自动好友分组来管理微博数据的服务;系统由5个模块组成:用户授权模块、数据抓取模块、社区结构发现模块、分组解析展现模块、反馈模块、微博数据管理模块;本发明解决了传统手工管理微博数据费时费力且不易维护的问题。该方法基于社区发现技术来对用户好友进行智能地分组,具有准确率高、可发现重叠社区等优点。同时,该方法还将结果予以解析,为用户提供了直观易理解的用户好友分组依据。此外,该系统还提供了反馈机制,可通过将用户的反馈引入系统,进一步提高了系统的可靠性。
【专利说明】一种微博数据管理系统及其实现方法
【技术领域】
[0001]本发明涉及一种基于社区发现技术的微博数据管理系统及其实现方法,属于数据挖掘【技术领域】。
【背景技术】
[0002]在微博等社交网络中,随着用户好友数量的增多,用户每天面对大量的信息。对于用户较多微博用户,一种好的数据管理的方法是,依据用户在现实生活中的社交圈子,建立分组,根据好友所属不同分组来管理。建立分组后,便可以依照组别进行内容过滤,隐私设置等。目前,腾讯微博、新浪微博等主要的微博服务提供商均提供了这种机制来管理数据。然而,现有的方法主要是通过用户手工对好友进行分组管理来进行的。这种方法太过费时且需要用户大量的人工劳动。当用户有新的好友时,也难以更新。同时,手工的进行管理,存在着误操作的可能性。
【发明内容】
[0003]本发明的技术解决问题:克服现有技术的不足,提供一种微博数据管理系统及方法,可以高效、准确的挖掘出潜在的分组信息,用户可以方便地管理其微博数据。
[0004]本发明的技术解决方案:一种微博数据管理系统,如图1所示包括:
[0005]用户授权模块:采用Oauth协议进行授权。利用Oauth技术提供的安全机制,本系统不会接触到用户的隐私信息。
[0006]数据抓取模块:利用微博提供的API,获取用户好友之间的相互关系数据以及用户资料信息的数据。首先对用户的好友进行抓取。然后,对每一个好友,抓取其与用户的共同好友信息,从而获得所有好友之间的相互关系,形成一个由好友关系组成的用户社交关系网络。本模块的输入是用户在微博上的用户名,输出是用户社交关系网络。其中,网络中的每一个节点代表了用户的一个好友,节点之间的边代表了用户两个好友的关系。最终获得的用户社交关系网络输出到数据库中,供社区结构检测模块调用;
[0007]社区结构挖掘模块:对数据抓取模块获得用户好友关系组成的图,依据社区检测技术,从好友之间的社交关系中,挖掘出其潜在的社区结构,作为分组的依据。其中一个社区是一些好友的集合,其中社区内的好友间具有密度更大的好友关系,社区间的好友具有较少的好友关系。本模块使用了社区检测技术,由基本社区结构搜索和社区聚合两部分组成。无需用户设定任何参数,也无需任何参数。本模块的输入是数据抓取模块获得的好友关系网络,经此模块处理产生的好友分组输出至分组解析展现模块;
[0008]分组解析展现模块:根据社区结构发现模块产生的用户好友分组,对其进行解析。本模块的作用在于智能的挖掘出分组的语义信息。根据用户好友分组的语义信息,将组别抽象为名人明星、朋友、同学、同事四大类。解析模块将社区结构挖掘模块产生的每一个分组,利用组内成员用户资料、微博内容、转发关系特征,决定其分组的类别。作为分组解析结果,展现社区结构挖掘模块将解析模块的结果展现给用户。[0009]反馈模块:对每一个用户好友分组,设置一个反馈,收集用户评价。使用户对系统的效果做出打分评价,并收集用户反馈信息,将用户id、分组结果、用户反馈作为一条记录,存储至数据库,以便将来为系统改进、提高用户体验提供依据。
[0010]一种微博数据管理方法,实现步骤为:
[0011](I)用户授权:采用Oauth协议进行授权,得到用户在微博上的用户名;
[0012](2)数据抓取:根据用户在微博上的用户名,利用微博提供的API获取用户好友之间的相互关系数据以及用户资料信息的数据,具体是首先对用户的好友进行抓取;然后对每一个好友,抓取其与用户的共同好友信息,获得所有好友之间的相互关系,形成一个由好友关系组成的用户社交关系网络;其中,网络中的每一个节点代表了用户的一个好友,节点之间的边代表了用户两个好友的关系,最终获得的网络输出到数据库中;
[0013](3)社区结构挖掘:对步骤(2)获得的好友关系网络,依据社区检测技术,首先对网络进行深度优先搜索挖掘出其基本社区结构,随后对基本社区结构进行层级聚合,从好友之间的社交关系中,挖掘出其潜在的社区结构,作为分组的依据,其中一个社区是一些好友的集合,社区内的好友间具有密度更大的好友关系,社区间的好友具有较少的好友关系,从而得到用户好友分组;
[0014](4)分组解析展现:根据步骤(3)产生的用户好友分组,对其进行解析,本模块的作用在于智能的挖掘出分组的语义信息。将组别抽象为名人明星、朋友、同学、同事四大类,根据步骤(3)产生的每一个用户好友分组,利用组内成员用户资料、微博内容、转发关系特征,决定其分组的类别,作为分组依据展现给用户;
[0015](5)进行反馈:对每一个用户友好分组,设置一个反馈,收集用户反馈信息,以便将来为系统改进、提高用户体验提供依据。
[0016]本发明与现有技术相比的优点在于:
[0017](I)本发明可以自动地对用户的好友关系进行分析,发掘出其潜在的分组,从而依据分组管理微博数据。整个过程无需人工参与,帮助用户省去了大量繁琐重复的劳动,节省了时间,提高了效率。
[0018](2)本发明在自动发掘分组的过程中采用了社区检测理论和技术,仅使用了用户间的好友关系信息,没有使用用户资料等信息,从而避免了由于用户资料的不完整性、时效性引起的分组错误。
[0019](3)本发明将分组结果解析为用户易于理解的类别,用户可以依据此直观的管理其微博数据。
【专利附图】
【附图说明】
[0020]图1为本发明系统的体系结构图;
[0021]图2为本发明的数据抓取模块实现流程图;
[0022]图3为发明中社区结构挖掘模块实现流程图;
[0023]图4为本发明中分组解析展现模块实现流程图。
【具体实施方式】
[0024]如图1所示,本发明基于社区发现技术的微博数据管理系统与方法由用户授权模块、数据抓取模块、社区结构挖掘模块、分组解析展现模块和用户反馈模块构成。
[0025]各模块的具体实现过程如下:
[0026]1.用户授权模块
[0027](I)用户输入其帐号信息;
[0028](2)帐号信息发送至微博服务器验证,若通过验证,则返回accesstoken,授权完成,数据抓取模块将使用此accesstoken获得数据抓取权限。
[0029]2.据抓取模块,如图2所示,
[0030](I)初始化哈希表H,用于存放用户社交关系网络数据。获取用户的关注列表list ;
[0031](2)对(I)所得用户关注列表list的每一个Uid,取其与用户的共同关注列表list2。并对键为uid的哈希表项,初始化其值为一个空集合;
[0032](3)对(2)所得共同关注列表list2的每一个uid2,加入到哈希表中键uid对应的集合里;
[0033](4)重复步骤(3)直至共同关注列表中的每一项均被处理;
[0034](5)重复步骤(2)直至用户关注列表中的每一项均被处理;
[0035](6)将哈希表 中的数据写入数据库,并输出至社区结构挖掘模块,数据抓取结束。
[0036]3.社区结构挖掘模块,如图3所示,
[0037](I)初始化一个空集合C,取数据抓取模块所得的哈希表,取其中一个表项,执行
(2)到(3);
[0038](2)该过程是一个递归的深度优先遍历的过程。将(I)种选取的哈希表项的键加入集合。对选取的键在哈希表中对应的值,依次取出其中的每个uid,判断其是否在集合中,如果不在,判断其是否存在于集合中每个Uid对应的哈希值中,且集合中每个Uid存在其对应的哈希值中。如果均存在,将其加入集合,然后从此Uid开始,继续执行(2);
[0039](3)如果此时集合中元素个数大于3,则发现了一个社区结构C,保存此结果到社区集合S中。继续按照(I)中步骤循环执行。
[0040](4)设置门限值threshold=0.99。对前三步获取的社区结构,计算任意两个社区结构Ci, Cj之间的相似度,计算公式为:
[0041 ]
【权利要求】
1.一种微博数据管理系统,其特征在于包括:用户授权模块、数据抓取模块、社区结构挖掘模块、分组解析展现模块和反馈模块,其中: 用户授权模块:采用Oauth协议进行授权,得到用户在微博上的用户名; 数据抓取模块:根据用户在微博上的用户名,利用微博提供的API获取用户好友之间的相互关系数据以及用户资料信息的数据,具体是首先对用户的好友进行抓取;然后对每一个好友,抓取其与用户的共同好友信息,从而获得所有好友之间的相互关系,形成一个由好友关系组成的用户社交关系网络,最终获得的用户社交关系网络存储到数据库,并输出至社区结构挖掘模块供其调用; 社区结构挖掘模块:对数据抓取模块获得的好友关系网络,依据社区检测技术,从好友之间的社交关系中,挖掘出其潜在的社区结构,作为用户好友分组的依据;所采用的社区检测技术由基本社区结构搜索和社区聚合两部分组成,经处理产生的用户好友分组输出至分组解析展现模块; 分组解析展现模块:根据社区结构发现模块产生的用户好友分组,对其进行解析,根据用户好友分组的语义信息,将组别抽象为名人明星、朋友、同学、同事四大类,分组解析将社区结构挖掘模块产生的每一个用户好友分组,利用组内成员用户资料决定其分组的类别,作为分组解析结果,展现模块将社区结构挖掘模块和解析模块的结果展现给用户; 反馈模块:对每一个用户好友分组,设置一个反馈,收集用户评价,使用户对系统的效果做出打分评价,并收集用户反馈信息,将用户id、分组结果、用户反馈作为一条记录,存储至数据库,以便将来为系统改进、提高用户体验提供依据。
2.一种微博数据管理方法,其特征在于实现步骤为: (1)用户授权:采用Oauth协议进行授权,得到用户在微博上的用户名; (2)数据抓取:根据用户在微博上的用户名,利用微博提供的API获取用户好友之间的相互关系数据以及用户资料信息的数据,具体是首先对用户的好友进行抓取;然后对每一个好友,抓取其与用户的共同好友信息,获得所有好友之间的相互关系,形成一个由好友关系组成的用户社交关系网络;其中,网络中的每一个节点代表了用户的一个好友,节点之间的边代表了用户两个好友的关系,最终获得的网络输出到数据库中; (3)社区结构挖掘:对步骤(2)获得的好友关系网络,依据社区检测技术,首先对网络进行深度优先搜索挖掘出其基本社区结构,随后对基本社区结构进行层级聚合,从好友之间的社交关系中,挖掘出其潜在的社区结构,作为分组的依据,其中一个社区是一些好友的集合,社区内的好友间具有密度更大的好友关系,社区间的好友具有较少的好友关系,从而得到用户好友分组; (4)分组解析展现:根据步骤(3)产生的用户好友分组,对其进行解析,本模块的作用在于智能的挖掘出分组的语义信息。将组别抽象为名人明星、朋友、同学、同事四大类,根据步骤(3)产生的每一个用户好友分组,利用组内成员用户资料、微博内容、转发关系特征,决定其分组的类别,作为分组依据展现给用户; (5)进行反馈:对每一个用户友好分组,设置一个反馈,收集用户反馈信息,以便将来为系统改进、提高用户体验提供依据。
【文档编号】G06F17/30GK103488683SQ201310367762
【公开日】2014年1月1日 申请日期:2013年8月21日 优先权日:2013年8月21日
【发明者】王静远, 高飞, 李超, 欧阳元新, 熊璋 申请人:北京航空航天大学