クラス間類似度群 = calc_class_sim(アプリ1の各クラス, アプリ2の各クラス) 類似クラス群 = filter(類似度 >= 閾値, クラス間類似度群) 差分クラス群 = filter(類似度 < 閾値 and not in 類似クラス群, クラス間類似度群)
入力アプリ = アプリ間類似度計算の中心にするアプリ
被検索対象アプリ群 = 入力アプリ以外のアプリ群
for 対象アプリ in 被検索対象アプリ群:
クラス間類似度群 = calc_class_sim(入力アプリの各クラス, 対象アプリの各クラス)
filter(入力側クラスが重複ならmax値のもの, クラス間類似度群)
filter(対象側クラスが重複ならmax値のもの, クラス間類似度群)
# ↓そこまで類似していないくせに中途半端に高い類似度などを無効にする
filter(類似度 >= 閾値, クラス間類似度群)
# ↓類似したクラス以外に関係ないクラスをたくさん持つアプリはスコアが減る
対象アプリのスコア = sum(クラス間類似度群) / 対象アプリの全クラス数
13:30〜16:30