-1

ウィキペディアのダンプから構築した DirectedSparseGraph で PageRank と Hits アルゴリズムを使用しようとしています。グラフは明らかに巨大で、ノードは文字列ですが、エッジは整数です。問題は、このコードを実行すると次のようになることです。

PageRank<String,Integer> pageRank = new PageRank<String,Integer>(w, alpha);
pageRank.initialize();  
pageRank.setTolerance(0.000001);
pageRank.setMaxIterations(200);
pageRank.evaluate();

HITS<String, Integer> hits = new HITS<String, Integer>(w,alpha);
hits.initialize();
hits.setTolerance(0.000001);
hits.setMaxIterations(200);
hits.evaluate();
for(String s: w.getVertices()){
    writer.write(s + "\th:" + hits.getVertexScore(s).hub + "\ta:" + hits.getVertexScore(s).authority + "\tpagerank:" + pageRank.getVertexScore(s));
    writer.newLine();
}

ファイルtxtに書いている結果は、各ノードで常に同じです。メソッドに渡すパラメーターを間違えているのかもしれません。知らない。

4

1 に答える 1

0

グラフの大きさは?実際に何回の繰り返しが実行されていますか?

値が単純に 1/n (n は頂点の数) の場合、おそらくここで起こっていることは、すぐに終了することです (確認できます)。

もう 1 つの明らかな可能性は、グラフの作成を間違えて対称にしたため、スコアがすべて同じになった可能性があります。これもかなり簡単に確認できるはずです。

于 2013-08-12T01:16:32.407 に答える