樸素simRank

'''

@author: Administrator
'''

def inNodes(node,edges):
    ins=[]
    for edge in edges:
        if edge[1]==node:
            ins.append(edge[0])
    return ins

def update_simRank(node1,node2,edges,simRank):
    if node1==node2:
        simRank[(node1,node2)]=1
        simRank[(node2,node1)]=1
        return simRank
    ins_1=inNodes(node1,edges)
    ins_2=inNodes(node2,edges)
    if len(ins_1)==0 or len(ins_2)==0:
        simRank[(node1,node2)]=0
        simRank[(node2,node1)]=0
        return simRank
    sum_sim=0
    for i in ins_1:
        for j in ins_2:
            if (i,j) in simRank:
                sum_sim+=simRank[(i,j)]
            elif i==j:
                sum_sim+=1
            else:
                sum_sim+=0
    C=0.8
    sim_ab=C*sum_sim/(len(ins_1)*len(ins_2))
    simRank[(node1,node2)]=sim_ab
    simRank[(node2,node1)]=sim_ab
    return simRank

if __name__ == '__main__':
    nodes=["Univ","ProfA","StudentA","ProfB","StudentB"]
    edges=[];
    edges.append(["Univ","ProfA"])
    edges.append(["Univ","ProfB"])
    edges.append(["ProfA","StudentA"])
    edges.append(["StudentA","Univ"])
    edges.append(["ProfB","StudentB"])
    edges.append(["StudentB","ProfB"])
    simRank={}
    i_total=20
    for i in range(i_total):
        for node1 in range(len(nodes)):
            for node2 in range(node1,len(nodes)):
                simRank=update_simRank(nodes[node1],nodes[node2],edges,simRank)
        print(simRank)

結(jié)果是:

{('Univ', 'Univ'): 1, ('Univ', 'ProfA'): 0.0, ('ProfA', 'Univ'): 0.0, ('Univ', 'StudentA'): 0.0, ('StudentA', 'Univ'): 0.0, ('Univ', 'ProfB'): 0.0, ('ProfB', 'Univ'): 0.0, ('Univ', 'StudentB'): 0.0, ('StudentB', 'Univ'): 0.0, ('ProfA', 'ProfA'): 1, ('ProfA', 'StudentA'): 0.0, ('StudentA', 'ProfA'): 0.0, ('ProfA', 'ProfB'): 0.4, ('ProfB', 'ProfA'): 0.4, ('ProfA', 'StudentB'): 0.0, ('StudentB', 'ProfA'): 0.0, ('StudentA', 'StudentA'): 1, ('StudentA', 'ProfB'): 0.0, ('ProfB', 'StudentA'): 0.0, ('StudentA', 'StudentB'): 0.32000000000000006, ('StudentB', 'StudentA'): 0.32000000000000006, ('ProfB', 'ProfB'): 1, ('ProfB', 'StudentB'): 0.0, ('StudentB', 'ProfB'): 0.0, ('StudentB', 'StudentB'): 1}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末擎浴,一起剝皮案震驚了整個(gè)濱河市急黎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌乍恐,老刑警劉巖衙猪,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件洪碳,死亡現(xiàn)場(chǎng)離奇詭異架诞,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門弹澎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來朴下,“玉大人,你說我怎么就攤上這事苦蒿∨闺剩” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵佩迟,是天一觀的道長(zhǎng)溃肪。 經(jīng)常有香客問我,道長(zhǎng)音五,這世上最難降的妖魔是什么惫撰? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮躺涝,結(jié)果婚禮上厨钻,老公的妹妹穿的比我還像新娘。我一直安慰自己坚嗜,他們只是感情好夯膀,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著苍蔬,像睡著了一般诱建。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上碟绑,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天俺猿,我揣著相機(jī)與錄音,去河邊找鬼格仲。 笑死押袍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的凯肋。 我是一名探鬼主播谊惭,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼侮东!你這毒婦竟也來了圈盔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤悄雅,失蹤者是張志新(化名)和其女友劉穎驱敲,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體煤伟,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡癌佩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年木缝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了便锨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片围辙。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖放案,靈堂內(nèi)的尸體忽然破棺而出姚建,到底是詐尸還是另有隱情,我是刑警寧澤吱殉,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布掸冤,位于F島的核電站,受9級(jí)特大地震影響友雳,放射性物質(zhì)發(fā)生泄漏稿湿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一押赊、第九天 我趴在偏房一處隱蔽的房頂上張望饺藤。 院中可真熱鬧,春花似錦流礁、人聲如沸涕俗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽再姑。三九已至,卻和暖如春找御,著一層夾襖步出監(jiān)牢的瞬間元镀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工霎桅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留凹联,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓哆档,卻偏偏與公主長(zhǎng)得像蔽挠,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子瓜浸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345