前置き SimRankはグラフにおけるノード間の類似度を(再帰的に)計算する手法 共通の隣接ノードをもっていなくても類似度を計算できるという特徴を持つ 論文 わかりやすい日本語の説明 Wikipedia(英語) ちなみに、SimRank論文の第二著者は超著名なDB研究者 import numpy as np def simrank(G,C,n,t=10): S = np.identity(n) I = np.identity(n) G = normalize(G) i = 1 while True: S = C * np.dot(np.dot(G.T,S),G) + (1-C) * I for j in range(n): S[j][j] = 1 if i >= t: break i += 1 return S def bipertite_simrank(G,C,n,m,diag_1=Tr