專利名稱:微博搜索排名方法及微博搜索引擎的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及短文本搜索,尤其涉及微博環(huán)境下的搜索排名方法。
背景技術(shù):
微博是當(dāng)前十分流行的一種社交網(wǎng)絡(luò)交互系統(tǒng),截至2011年5月TwitteH國(guó)外著名的微博網(wǎng)站)擁有超過1億的每天登陸的活躍用戶。在國(guó)內(nèi),騰訊微博擁有超過3億的用戶,新浪微博也擁有超過兩億的用戶。微博用戶往往通過短小精悍的文本(一般不超過140個(gè)字)描述新聞、事件及表達(dá)自己的觀點(diǎn)。微博龐大的用戶量以及較高的用戶活躍度,使得微博系統(tǒng)每天都產(chǎn)生大量的有價(jià)值的消息,據(jù)統(tǒng)計(jì)2011年3月11日Twitter上一天產(chǎn)生的微博數(shù)量為177000000 條。數(shù)量龐大的微博客使得微博成為像傳統(tǒng)web網(wǎng)頁(yè)一樣豐富的資源庫(kù),微博成為搜索引擎檢索的對(duì)象。不同于傳統(tǒng)的web搜索,微博搜索排名算法存在以下兩個(gè)方面的問題第一,傳統(tǒng)的web搜索引擎不關(guān)注搜索結(jié)果的實(shí)時(shí)性——搜索結(jié)果網(wǎng)頁(yè)的產(chǎn)生時(shí)間對(duì)搜索結(jié)果排名沒有影響或者影響很小。然而,微博是由微博用戶動(dòng)態(tài)生成的,其內(nèi)容往往涉及到新聞以及新聞評(píng)論,具有很強(qiáng)的實(shí)時(shí)性,因此微博搜索的排名必須要考慮搜索結(jié)果的實(shí)時(shí)性,搜索結(jié)果的產(chǎn)生時(shí)間必須作為排名的依據(jù)。。第二,微博非常短小,只有不超過140個(gè)字,一般不包含相互之間的引用鏈接關(guān)系,因此傳統(tǒng)的基于鏈接引用分析的算法,如I^geRank以及HITS等排名算法不再適用于微博搜索結(jié)果的排名。由于微博的短小,傳統(tǒng)web搜索重要的參數(shù)TF (Term Frequency,詞頻) 已經(jīng)沒有意義,因此TF-IDF統(tǒng)計(jì)值也不能作為微博搜索排名的依據(jù)?,F(xiàn)有的專門針對(duì)微博進(jìn)行檢索的搜索引擎(以下稱為微博搜索引擎),如Twitter 本身提供的搜索服務(wù),通常只是簡(jiǎn)單的將搜索結(jié)果按消息產(chǎn)生的時(shí)間的先后進(jìn)行簡(jiǎn)單的排序,使得最相關(guān)的消息往往不能排在最前面。
發(fā)明內(nèi)容
因此,本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)的缺陷,提供一種微博搜索排名方法, 提高了當(dāng)前微博檢索結(jié)果的精確度。本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的一方面,本發(fā)明提供了一種微博搜索排名方法,該方法包括步驟1),對(duì)經(jīng)搜索后得到的微博消息集合中的每條消息執(zhí)行如下操作步驟1-1)基于該消息產(chǎn)生的時(shí)間,計(jì)算消息的實(shí)時(shí)性權(quán)值r ;步驟1-2)計(jì)算發(fā)布該消息的用戶的影響力權(quán)值ο ;步驟2),基于消息的實(shí)時(shí)性權(quán)值r和發(fā)布該消息的影響力權(quán)值0,計(jì)算每條消息的排名分值rank ;步驟幻根據(jù)步驟2~)所計(jì)算的排名分值,對(duì)所述微博消息集合中的所有消息進(jìn)行排序。
上述方法中,在步驟1-1),可以采用如下公式計(jì)算r:r= (1_、)2,其中〖為消息產(chǎn)生的時(shí)間戳,t0是為所有消息設(shè)定的標(biāo)準(zhǔn)時(shí)間戳。上述方法中,在步驟1-1),可以采用如下公式計(jì)算r :r = t*log(t)。上述方法中,在步驟2),可以采用如下公式來計(jì)算消息的排名分值
rο
「00181 rank = (1-a)*--l·a*-
L JR + S MAX+MIN其中,0 ^ α ^ 1, R和S分別為步驟1)中所計(jì)算的實(shí)時(shí)性權(quán)值中的最大值和最小值,MAX和MIN分別為步驟1)中所計(jì)算的影響力權(quán)值中的最大值和最小值;上述方法中,發(fā)布該消息的用戶的影響力權(quán)值ο可以是通過如下步驟計(jì)算得到的步驟a)獲取所有微博用戶信息,每條用戶信息包括用戶ID、用戶名、好友ID、粉絲 ID、發(fā)帖數(shù);步驟b)基于所獲得的用戶信息構(gòu)建用戶關(guān)系矩陣A,矩陣A中Au = 1表示用戶j 是用戶i的粉絲,Aij = 0表示用戶j不是i的粉絲;步驟C)計(jì)算Y = Α* λ,用γ代替λ,重復(fù)該步驟直到I λ - Υ I小于預(yù)定閾值q 為止,其中,λ = (A1, λ2,..., λη)τ,其中Xi為用戶i當(dāng)前的影響力權(quán)值,其初始值為該用戶的發(fā)貼數(shù),η為微博用戶的數(shù)量;步驟d)基于經(jīng)步驟C)得到的最終的λ,將其中λ i作為用戶i影響力權(quán)值ο的
最終值。上述方法中,預(yù)定閾值q可以為I λ | + | y I的0.01%。又一方面,本發(fā)明提供了一種微博搜索排名裝置,該裝置包括用于對(duì)經(jīng)搜索后得到的微博消息集合中的每條消息執(zhí)行如下操作的部件(1)基于該消息產(chǎn)生的時(shí)間,計(jì)算消息的實(shí)時(shí)性權(quán)值r ;(2)計(jì)算發(fā)布該消息的用戶的影響力權(quán)值ο ;用于對(duì)基于消息的實(shí)時(shí)性權(quán)值r和發(fā)布該消息的影響力權(quán)值O,計(jì)算每條消息的排名分值rank的部件;用于根據(jù)所計(jì)算的排名分值,對(duì)所述微博消息集合中的所有消息進(jìn)行排序的部件。又一方面,本發(fā)明提供了一種微博搜索引擎,該引擎包括上述微博搜索排名裝置, 其用于對(duì)經(jīng)搜索得到的微博消息集合中的消息進(jìn)行排序,以便將排序后的微博消息列表提供給檢索用戶。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于通過將微博作者權(quán)威性和消息實(shí)時(shí)性相結(jié)合來進(jìn)行排名,提高了當(dāng)前微博檢索結(jié)果的精確度。而且計(jì)算微博作者的影響力計(jì)算的方法簡(jiǎn)單高效,還適用于對(duì)微博系統(tǒng)中的用戶進(jìn)行權(quán)威性或者影響力排名
以下參照附圖對(duì)本發(fā)明實(shí)施例作進(jìn)一步說明,其中圖1為根據(jù)本發(fā)明實(shí)施例的微博搜索排名方法的流程圖;圖2為根據(jù)本發(fā)明實(shí)施例的微博用戶關(guān)系示意圖3為根據(jù)本發(fā)明實(shí)施例的計(jì)算發(fā)布消息的用戶的影響力權(quán)值的流程圖;圖4為根據(jù)本發(fā)明一個(gè)實(shí)施例的微博搜索引擎示意圖。
具體實(shí)施例方式為了使本發(fā)明的目的,技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖通過具體實(shí)施例對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明, 并不用于限定本發(fā)明。 為了更好地理解本發(fā)明,首先對(duì)微博進(jìn)行簡(jiǎn)單介紹。微博,即微博客,是一種基于用戶關(guān)系的信息分享、傳播以及獲取平臺(tái)。微博的消息非常短,不超過140字。微博發(fā)展了一種稱為“追隨”(follow)的社交關(guān)系,微博用戶可以任意關(guān)注感興趣的用戶而不需要獲得對(duì)方的許可。微博用戶發(fā)布的所有消息都會(huì)廣播給他所有的“粉絲”(follower)。最早也是最著名的微博系統(tǒng)是美國(guó)的Twitter,根據(jù)公開的數(shù)據(jù)目前Twitter有超過2億的活躍用戶;在國(guó)內(nèi),新浪微博和騰訊微博是最熱門的微博系統(tǒng),目前據(jù)公開數(shù)據(jù),新浪有超過2億的注冊(cè)用戶,騰訊微博有超過3億的注冊(cè)用戶。微博的盛行,給互聯(lián)網(wǎng)帶來更豐富的信息資源,微博不僅是社交網(wǎng)絡(luò),更成為一種傳播媒體。對(duì)微博提供檢索,已經(jīng)在商業(yè)、政治等領(lǐng)域具有重要意義。圖1給出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的微博搜索排名方法。該方法結(jié)合消息的實(shí)時(shí)性和消息作者的權(quán)威性來對(duì)搜索結(jié)果進(jìn)行排名。其中,搜索結(jié)果是根據(jù)檢索用戶輸入的關(guān)鍵詞對(duì)微博進(jìn)行檢索后得到的消息的集合(也可簡(jiǎn)稱為結(jié)果消息集合或消息集合)。需要說明的是,檢索用戶特指使用本發(fā)明的方法的用戶,而微博用戶指為使用微博系統(tǒng)的用戶,消息作者指的是發(fā)布微博消息的微博用戶。在本申請(qǐng)中,除了特指的檢索用戶之外,用戶指的是微博系統(tǒng)的用戶,消息指的是微博消息。該方法首先為結(jié)果消息集合中的每條消息計(jì)算該消息的實(shí)時(shí)性權(quán)值與發(fā)布該消息的用戶的影響力權(quán)值(也可簡(jiǎn)稱為消息作者影響力權(quán)值)的加權(quán)平均值,并以此作為該消息的排名分值;然后,根據(jù)計(jì)算所得的排名分值對(duì)結(jié)果消息集合中的消息進(jìn)行排序??梢栽谂磐晷虻慕Y(jié)果消息集合中選取合適數(shù)量的結(jié)果消息作為查詢結(jié)果返回給檢索用戶。其中,消息的實(shí)時(shí)性權(quán)值是評(píng)估消息產(chǎn)生的時(shí)間的先后的分值;消息的實(shí)時(shí)性權(quán)值越小,表明該消息是較早以其產(chǎn)生的;而消息的實(shí)時(shí)性權(quán)值越大,表明該消息是最近產(chǎn)生的。消息作者影響力權(quán)值是評(píng)估發(fā)布該消息的用戶的影響力(權(quán)威性或受關(guān)注程度或重要程度)的分值;其值越小,表明該用戶的影響力越??;其值越大,表明該用戶的影響力越大。參考圖1,更具體地,該方法首先對(duì)于結(jié)果消息集合中的每條消息執(zhí)行如下步驟步驟1)基于消息產(chǎn)生的時(shí)間,計(jì)算消息的實(shí)時(shí)性權(quán)值(SlOl)。在一個(gè)實(shí)施例中,可以簡(jiǎn)單地根據(jù)消息產(chǎn)生的時(shí)間的先后順序設(shè)置該消息的實(shí)時(shí)性權(quán)值,消息產(chǎn)生的時(shí)間較早的,為該消息設(shè)置較小的實(shí)時(shí)性權(quán)值;消息產(chǎn)生的時(shí)間較早的,為該消息設(shè)置較大的實(shí)時(shí)性權(quán)值。例如,消息的實(shí)時(shí)性權(quán)值r = t或r = t-、,其中t 為該消息產(chǎn)生的時(shí)間戳,、是為所有消息設(shè)定的標(biāo)準(zhǔn)時(shí)間戳,例如2006年1月1日0點(diǎn)0 分0秒。在又一個(gè)實(shí)施例中,為了使最新的消息具有較高的實(shí)時(shí)性權(quán)值,可以采用如下公式來計(jì)算消息的實(shí)時(shí)性權(quán)值r = (t-、)2,或者,r = t*log(t)等。在其他實(shí)施例中,也可以采用其他的函數(shù)表達(dá)式,只要r是t的遞增函數(shù)即可,不局限于線性遞增方式。消息的實(shí)時(shí)性權(quán)值是隨消息產(chǎn)生的時(shí)間的遞增而遞增,這樣,最近產(chǎn)生的消息具有較高的權(quán)值。步驟2)計(jì)算消息作者影響力權(quán)值(S102)。由于消息作者的影響力權(quán)值體現(xiàn)了發(fā)布該消息的用戶的影響力(權(quán)威性或受關(guān)注程度或重要程度)的大小。因此,在一個(gè)實(shí)施例中,可以基于用戶的粉絲數(shù)量來設(shè)置該用戶的影響力權(quán)值。用戶的粉絲數(shù)量越多表明該用戶的影響力越大,該用戶的影響力權(quán)值越高。在又一個(gè)實(shí)施例中,可以基于用戶的發(fā)貼數(shù)來設(shè)置該用戶的影響力權(quán)值。用戶的發(fā)貼數(shù)越多,表明該用戶越活躍,該用戶的影響力權(quán)值越高。具體的計(jì)算方式可以參考實(shí)時(shí)性權(quán)值的計(jì)算方法,只要符合遞增函數(shù)的性質(zhì)就可以了。例如,可以采用線性遞增的方式,可以直接將用戶的粉絲數(shù)量或用戶的發(fā)帖數(shù)作為該用戶的影響力權(quán)值。當(dāng)然也可以采用其他的遞增函數(shù)表達(dá)式。在又一個(gè)實(shí)施例中,為了從更全面的角度計(jì)算消息作者影響力權(quán)值,采用了如下方法來計(jì)算消息作者影響力權(quán)值。 首先,獲取微博客系統(tǒng)中的所有用戶的信息(例如,η個(gè)用戶),以用戶信息來構(gòu)造用戶關(guān)系矩陣;用戶信息格式如表1所示,每條用戶消息包含用戶ID、用戶名稱、好友ID、 粉絲ID、影響力權(quán)值和發(fā)帖數(shù)六個(gè)部分。表 權(quán)利要求
1.一種微博搜索排名方法,該方法包括步驟1),對(duì)經(jīng)搜索后得到的微博消息集合中的每條消息執(zhí)行如下操作 步驟1-1)基于該消息產(chǎn)生的時(shí)間,計(jì)算消息的實(shí)時(shí)性權(quán)值r ; 步驟1-2)計(jì)算發(fā)布該消息的用戶的影響力權(quán)值ο ;步驟2),基于消息的實(shí)時(shí)性權(quán)值r和發(fā)布該消息的影響力權(quán)值0,計(jì)算每條消息的排名分值rank ;步驟幻根據(jù)步驟幻所計(jì)算的排名分值,對(duì)所述微博消息集合中的所有消息進(jìn)行排序。
2.根據(jù)權(quán)利要求1所述的方法,在步驟1-1)中,r= (t-、)2,其中t為消息產(chǎn)生的時(shí)間戳,t0是為所有消息設(shè)定的標(biāo)準(zhǔn)時(shí)間戳。
3.根據(jù)權(quán)利要求1所述的方法,在步驟1-1)中,r= t*log(t)。
4.根據(jù)權(quán)利要求1所述的方法,在步驟2)中,采用如下公式來計(jì)算消息的排名分值r rank = (1-a)*--ι-α*-R + S MAX+MIN其中,a < 1,R和S分別為步驟1)中所計(jì)算的實(shí)時(shí)性權(quán)值中的最大值和最小值, MAX和MIN分別為步驟1)中所計(jì)算的影響力權(quán)值中的最大值和最小值;
5.根據(jù)上述任一權(quán)利要求所述的方法,其中發(fā)布該消息的用戶的影響力權(quán)值ο是通過如下步驟計(jì)算得到的步驟a)獲取所有微博用戶信息,每條用戶信息包括用戶ID、用戶名、好友ID、粉絲ID、 發(fā)帖數(shù);步驟b)基于所獲得的用戶信息構(gòu)建用戶關(guān)系矩陣A,矩陣A中Au = 1表示用戶j是用戶i的粉絲,Aij = 0表示用戶j不是i的粉絲;步驟c)計(jì)算Y =々*入,用Y代替λ,重復(fù)該步驟直到I λ-Υ I小于預(yù)定閾值q為止, 其中,λ = (A1, λ2,...,λη)τ,其中Xi為用戶i當(dāng)前的影響力權(quán)值,其初始值為該用戶的發(fā)貼數(shù),η為微博用戶的數(shù)量;步驟d)基于經(jīng)步驟c)得到的最終的λ,將其中λ i作為用戶i影響力權(quán)值ο的最終值。
6.根據(jù)權(quán)利要求5所述的方法,其中預(yù)定閾值q為Iλ | + | y I的0.01%。
7.一種微博搜索排名裝置,該裝置包括用于對(duì)經(jīng)搜索后得到的微博消息集合中的每條消息執(zhí)行如下操作的部件(1)基于該消息產(chǎn)生的時(shí)間,計(jì)算消息的實(shí)時(shí)性權(quán)值r;(2)計(jì)算發(fā)布該消息的用戶的影響力權(quán)值ο;用于對(duì)基于消息的實(shí)時(shí)性權(quán)值r和發(fā)布該消息的影響力權(quán)值0,計(jì)算每條消息的排名分值rank的部件;用于根據(jù)所計(jì)算的排名分值,對(duì)所述微博消息集合中的所有消息進(jìn)行排序的部件。
8.一種微博搜索引擎,該引擎包括如權(quán)利要求7所述的微博搜索排名裝置,其用于對(duì)經(jīng)搜索得到的微博消息集合中的消息進(jìn)行排序,以便將排序后的微博消息列表提供給檢索用戶。
全文摘要
本發(fā)明提供一種微博排名方法,該方法首先計(jì)算消息的實(shí)時(shí)性權(quán)值和消息作者影響力權(quán)值,然后將二者的加權(quán)平均值作為該消息的排名值,并基于所計(jì)算的排名值對(duì)消息進(jìn)行排序。該方法通過將微博作者權(quán)威性和消息實(shí)時(shí)性相結(jié)合來進(jìn)行排名,提高了當(dāng)前微博檢索結(jié)果的精確度。而且計(jì)算微博作者的影響力計(jì)算的方法簡(jiǎn)單高效,還適用于對(duì)微博系統(tǒng)中得用戶進(jìn)行權(quán)威性或者影響力排名。
文檔編號(hào)G06F17/30GK102426610SQ20121001031
公開日2012年4月25日 申請(qǐng)日期2012年1月13日 優(yōu)先權(quán)日2012年1月13日
發(fā)明者方濱興, 李靜遠(yuǎn), 王元卓, 程學(xué)旗, 邢國(guó)亮, 陳根寶 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所