一種微博轉(zhuǎn)發(fā)樹和轉(zhuǎn)發(fā)森林構(gòu)建方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于數(shù)據(jù)挖掘領(lǐng)域,具體涉及一種微博轉(zhuǎn)發(fā)樹和轉(zhuǎn)發(fā)森林構(gòu)建方法。
【背景技術(shù)】
[0002]目前微博內(nèi)容發(fā)布量巨大,已成為中國(guó)最大的輿論平臺(tái)。春運(yùn)、倫敦奧運(yùn)、江南style等社會(huì)熱點(diǎn)話題在微博平臺(tái)上得到聚焦和延伸,千萬級(jí)甚至億級(jí)的話題討論已成為微博平臺(tái)上的常態(tài)化現(xiàn)象。面對(duì)如此龐大、復(fù)雜的微博數(shù)據(jù),如何對(duì)微博及話題的轉(zhuǎn)發(fā)結(jié)構(gòu)進(jìn)行提取及如何進(jìn)行可視化成為重要挑戰(zhàn)。
【發(fā)明內(nèi)容】
[0003]本發(fā)明鑒于大數(shù)據(jù)環(huán)境下微博轉(zhuǎn)發(fā)結(jié)構(gòu)稀疏、難以溯源的問題,構(gòu)建了一種微博轉(zhuǎn)發(fā)樹和轉(zhuǎn)發(fā)森林構(gòu)建方法,以實(shí)現(xiàn)微博傳播結(jié)構(gòu)還原和微博信息溯源。
[0004]其具體步驟如下:
[0005]步驟一、獲取用戶指定單條微博的原創(chuàng)微博。
[0006]用戶指定單條微博分為單條原創(chuàng)微博和單條轉(zhuǎn)發(fā)微博兩種;
[0007]對(duì)于一條微博,微博信息包含微博識(shí)別號(hào)MID,原創(chuàng)微博識(shí)別號(hào)MID,微博內(nèi)容,微博創(chuàng)建時(shí)間戳,微博創(chuàng)建時(shí)間,博主信息,博主身份識(shí)別號(hào)WD,博主注冊(cè)地址,是否認(rèn)證,博主昵稱,關(guān)注數(shù),性別,博主頭像地址,認(rèn)證類型,粉絲數(shù),微博數(shù),自我描述,注冊(cè)時(shí)間和微博URL地址;
[0008]如果用戶指定單條微博為原創(chuàng)微博,利用該單條微博的微博識(shí)別號(hào)MID字段檢索并獲取該單條原創(chuàng)微博信息;如果用戶指定單條微博為轉(zhuǎn)發(fā)微博,利用其原創(chuàng)微博識(shí)別號(hào)MID字段檢索并獲取該單條轉(zhuǎn)發(fā)微博的原創(chuàng)微博信息;
[0009]步驟二、根據(jù)單條原創(chuàng)微博信息,獲取該單條原創(chuàng)微博在某時(shí)間段內(nèi)的所有轉(zhuǎn)發(fā)微博信息。
[0010]時(shí)間段為用戶指定時(shí)間段。
[0011]步驟三、構(gòu)建轉(zhuǎn)發(fā)微博列表RL,并將步驟二中的轉(zhuǎn)發(fā)微博信息依次加入;
[0012]轉(zhuǎn)發(fā)微博列表RL,指對(duì)該單條原創(chuàng)微博的所有轉(zhuǎn)發(fā)微博信息按照其微博創(chuàng)建時(shí)間進(jìn)行升序排列形成的列表;轉(zhuǎn)發(fā)微博列表RL的元素個(gè)數(shù)用RL_Len表示。
[0013]步驟四、構(gòu)建樹型存儲(chǔ)空間Tree,并將步驟一中單條原創(chuàng)微博信息轉(zhuǎn)化成樹節(jié)點(diǎn)對(duì)象加入,用TNtl表示;
[0014]樹型存儲(chǔ)空間Tree初始化為空的有序列表,用于存儲(chǔ)微博信息轉(zhuǎn)化的樹節(jié)點(diǎn)對(duì)象TreeNode,該單條原創(chuàng)微博信息轉(zhuǎn)化的Tree Node為TN。。
[0015]步驟五、取RL中的第i個(gè)元素RLi,將其轉(zhuǎn)化成Tree Node,用TNm表示,并加入到Tree列表的末尾。
[0016]其中,i為計(jì)數(shù)器,I ^ i ^ RL_Len ;初始i為I ;
[0017]步驟六、解析步驟五中元素RLiE錄的所有轉(zhuǎn)發(fā)博主昵稱字段,構(gòu)建博主昵稱列表RU ;
[0018]針對(duì)元素RLi,提取該元素中的微博內(nèi)容字段text,解析獲得被該元素記錄的所有轉(zhuǎn)發(fā)的博主昵稱形式為“//@博主昵稱”的博主昵稱字段,構(gòu)成博主昵稱列表RU ;博主昵稱列表RU的長(zhǎng)度為RU_Len,RU_Len大于等于O且為整數(shù);RU列表的第j個(gè)元素為RUj,O ? RU_Len ;
[0019]步驟七、構(gòu)建樹型存儲(chǔ)空間Tree的倒序列表TreeReverse ;
[0020]將樹型存儲(chǔ)空間Tree中,除去最后一條Tree Node外,將其他的Tree Node按微博創(chuàng)建時(shí)間的降序排列形成列表TreeReverse ;TreeReverse列表中的元素為TNw,表示第w個(gè) TreeNode ; I w i ;
[0021]步驟八、判斷博主昵稱列表RU中元素與TreeReverse列表中每個(gè)元素TNw的博主昵稱是否相同,如果相同,將TNni加入到元素children屬性中;否則,將TN 入到元素TN0的children屬性中;
[0022]具體為:將TreeReverse列表中每個(gè)元素TNw的博主昵稱去遍歷博主昵稱列表RU中的所有元素RUj的博主昵稱,如果含有相同字段,將TNm加入到元素children屬性中;否則,將計(jì)數(shù)器w+1,繼續(xù)重復(fù)步驟八進(jìn)行比較,直至TreeReverse列表中所有元素TNw比較完后,博主昵稱列表RU中任何一個(gè)元素與TreeReverse列表中所有元素了\的博主昵稱均不相同,將TNni加入到元素children屬性中。
[0023]步驟九、將計(jì)數(shù)器i+Ι,轉(zhuǎn)步驟五執(zhí)行;
[0024]步驟十、重復(fù)執(zhí)行步驟五到步驟九,直至將轉(zhuǎn)發(fā)微博列表RL所有元素比較完,完成單條微博的微博轉(zhuǎn)發(fā)樹;
[0025]依次將轉(zhuǎn)發(fā)微博列表RL中的元素RLi,轉(zhuǎn)化樹節(jié)點(diǎn)對(duì)象,加入到樹型存儲(chǔ)空間Tree中,完成單條微博的微博轉(zhuǎn)發(fā)樹。
[0026]步驟^ 、建立微博轉(zhuǎn)發(fā)森林;
[0027]根據(jù)用戶指定話題關(guān)鍵詞Topic,收集與該話題相關(guān)的全量微博信息,針對(duì)每一條微博信息構(gòu)建微博轉(zhuǎn)發(fā)樹,最后匯總該話題相關(guān)的全量微博信息的微博轉(zhuǎn)發(fā)樹,形成微博轉(zhuǎn)發(fā)森林。本發(fā)明的優(yōu)點(diǎn)在于:
[0028](I)本發(fā)明一種微博轉(zhuǎn)發(fā)樹和轉(zhuǎn)發(fā)森林構(gòu)建方法,從海量微博信息中提取稀疏的轉(zhuǎn)發(fā)關(guān)系,進(jìn)行信息傳播結(jié)構(gòu)復(fù)原及信息溯源,通過轉(zhuǎn)發(fā)樹生成算法,可以高效快速完整地進(jìn)行轉(zhuǎn)發(fā)樹和轉(zhuǎn)發(fā)森林的提取。
[0029](2)本發(fā)明一種微博轉(zhuǎn)發(fā)樹和轉(zhuǎn)發(fā)森林構(gòu)建方法,具有較高的效率和效果。
【附圖說明】
[0030]圖1是本發(fā)明一種微博轉(zhuǎn)發(fā)樹和轉(zhuǎn)發(fā)森林構(gòu)建方法的流程圖。
【具體實(shí)施方式】
[0031]下面將結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明。
[0032]一種微博轉(zhuǎn)發(fā)樹和轉(zhuǎn)發(fā)森林構(gòu)建方法,用于信息溯源和信息傳播路徑復(fù)原,服務(wù)于國(guó)家信息安全;首先構(gòu)建單條微博轉(zhuǎn)發(fā)樹,包括獲取單條微博的原創(chuàng)微博信息及其轉(zhuǎn)發(fā)微博信息、在原創(chuàng)微博及其轉(zhuǎn)發(fā)微博信息數(shù)據(jù)上,構(gòu)造微博轉(zhuǎn)發(fā)樹結(jié)構(gòu);然后,構(gòu)建話題相關(guān)的微博轉(zhuǎn)發(fā)森林。
[0033]具體實(shí)施步驟如圖1所示,包括:
[0034]步驟一、獲取用戶指定單條微博的原創(chuàng)微博。
[0035]用戶指定單條微博分為原創(chuàng)微博和轉(zhuǎn)發(fā)微博,根據(jù)用戶需求而定;
[0036]微博信息包括原創(chuàng)微博信息和轉(zhuǎn)發(fā)微博信息,均由:微博識(shí)別號(hào)MID,原創(chuàng)微博識(shí)別號(hào)MID,微博內(nèi)容,微博創(chuàng)建時(shí)間戳,微博創(chuàng)建時(shí)間,博主信息,博主身份識(shí)別號(hào)WD,博主注冊(cè)地址,是否認(rèn)證,博主昵稱,關(guān)注數(shù),性別,博主頭像地址,認(rèn)證類型,粉絲數(shù),微博數(shù),自我描述,注冊(cè)時(shí)間和微博URL地址組成。
[0037]其中,微博識(shí)別號(hào)MID 采用 int 64 型,形式如下:“mid”:5612814510546515491 ;
[0038]原創(chuàng)微博識(shí)別號(hào)MID,采用 int 64 型,形式如下:“mid”:5612814510546515491 ;
[0039]微博內(nèi)容,采用string型,形式如下:“text”: “求關(guān)注?!保?br>[0040]微博創(chuàng)建時(shí)間戳,自1970年以來的秒數(shù),采用int型;形式如下:“timestamp”:1306835215 ;其中,自1970年以來的秒數(shù),表示從1970年I月I日至微博創(chuàng)建時(shí)間的秒數(shù)
[0041]微博倉(cāng)丨J建時(shí)間,采用string型,形式如下:“created_at”: “Tue May 3117:46:55+0800 2011”;
[0042]博主信息,形式如下:“uSer” ;
[0043]博主身份識(shí)別號(hào)UID,形式如下:“uid”:11488058246 ;
[0044]博主注冊(cè)地址,形式如下'locat1n”: “北京朝陽區(qū)”;
[0045]是否認(rèn)證,形式如下'verified”:false ;
[0046]博主昵稱,形式如下:“name”: “zaku” ;
[0047]關(guān)注數(shù),形式如下:“friends_count”:447 ;
[0048]性別,形式如下:“gender”: “m” ;
[0049]博主頭像地址,形式如下:
[0050]“profile_image_url”:http://tpl.sinaimg.cn/1404376560/50/0/1 ;
[0051]認(rèn)證類型,形式如下:“verified_type”:_2 ;
[0052]粉絲數(shù),形式如下:“followers_count”: 1204 ;
[0053]微博數(shù),形式如下:“statuses_count”: 2908 ;
[0054]自我描述,形式如下'descript1n”: “人生五十年,乃如夢(mèng)如幻;有生斯有死,壯士復(fù)何憾。”;
[0055]注冊(cè)時(shí)間,形式如下:“created_at”: “Fri Aug 28 00:00:00+0800 2009”。
[0056]微博URL地址,形式如下:
[0057]“weibo_url,,:http://weib0.com/1813080181/Bb6CmdLnM ;
[0058]用戶指定的單條微博,其微博識(shí)別號(hào)MID字段設(shè)為Midi,原創(chuàng)微博識(shí)別號(hào)MID字段設(shè)為Mi d2 ;
[0059]收集用戶指定單條微博的原創(chuàng)微博信息具體分為:
[0060]如果用戶指定單條微博為原創(chuàng)微博,其微博識(shí)別號(hào)MID字段與原創(chuàng)微博識(shí)別號(hào)MID字段相同均為Midi,利用該單條微博的微博識(shí)別號(hào)MID字段Midl檢索并獲取該單條原創(chuàng)微博信息;
[0061]如果用戶指定單條微博為轉(zhuǎn)發(fā)微博,其微博識(shí)別號(hào)MID字段為Midi,其原創(chuàng)微博識(shí)別號(hào)MID為Mid2,利用原創(chuàng)微博識(shí)別號(hào)MID字段Mid2檢索并獲取該單條轉(zhuǎn)發(fā)微博的原創(chuàng)微博信息;
[0062]步驟二、根據(jù)單條原創(chuàng)微博信息,獲取該單條原創(chuàng)微博在某時(shí)間段內(nèi)的所有轉(zhuǎn)發(fā)微博信息。
[0063]根據(jù)步驟一得到的原創(chuàng)微博字段Mid2和給定時(shí)間段tl_t2,檢索單條原創(chuàng)微博的所有轉(zhuǎn)發(fā)微博信息,該轉(zhuǎn)發(fā)微博信息最新為10萬條;本實(shí)施例中選取100條轉(zhuǎn)發(fā)微博信息;tl-t2為用戶給定的起始到結(jié)束時(shí)間。
[0064]步驟三、構(gòu)建轉(zhuǎn)發(fā)微博列表RL,并將步驟二中的轉(zhuǎn)發(fā)微博信息依次加入;
[0065]轉(zhuǎn)發(fā)微博列表RL,指對(duì)該單條原創(chuàng)微博的所有轉(zhuǎn)發(fā)微博信息按照其微博創(chuàng)建時(shí)間created_at字段進(jìn)行升序排列形成的列表;轉(zhuǎn)發(fā)微博列表RL的元素個(gè)數(shù)用RL_Len表示,初始值為O ;RL_Len大于等于O且為整數(shù);
[0066]步驟四、構(gòu)建樹型存儲(chǔ)空間Tree,并將步驟一中單條原創(chuàng)微博信息轉(zhuǎn)化成樹節(jié)點(diǎn)對(duì)象加入,用TNtl表示;<