私はJungのPagerankアルゴリズムをテストしようとしていますが、問題が発生しているようです。 私は、コードのこの部分で重み付けし、間接的なグラフを作成しました:jungのPageRankアルゴリズムをテストする方法は?
double[][] adjacencyMatrixForPageRank =FileHelper.calculateSimilaritySentences("E:\\my workspace\\TweetsAnalyser2\\outputFiles\\splittedStemmeredFile-1.txt","");
Graph<String,Integer> g2=FileHelper.createGraphForPageRank("MyGraphForPageRank",adjacencyMatrixForPageRank);
PageRank<String,Integer> pagerank= new PageRank<String,Integer>(g2,alpha1);
pagerank.initialize();
pagerank.setTolerance(0.000001);
pagerank.setMaxIterations(200);
pagerank.evaluate();
が、日食が発生:
private static String getId(int nodeId)
{
return "Node " + nodeId;
}
private static String getId(int nodeId, int neighborId)
{
return "Edge " + nodeId + " -> " + neighborId;
}
public static Graph<String, Integer> createGraphForPageRank(String graphId, double[][] adjacencyMatrix)
{
Graph<String,Integer> g = new UndirectedSparseGraph <String,Integer>();
for (int nodeId = 0; nodeId < adjacencyMatrix.length; nodeId++)
g.addVertex(getId(nodeId));
for (int nodeId = 0; nodeId < adjacencyMatrix.length; nodeId++)
for (int neighborId = 0; neighborId < adjacencyMatrix[nodeId].length; neighborId++)
if (adjacencyMatrix[nodeId][neighborId]>0)
g.addEdge(neighborId,getId(nodeId),getId(neighborId));
return(g);
}
そして、メインクラスでは、私は私のグラフ上のPageRankをテストするには、このコードを使用しましたこのエラー: スレッド "main"の例外java.lang.IllegalArgumentException:端点を持つこのグラフにはすでにエッジ4が存在し、エンドポイントとともに追加することはできません edu.uci.ics.jung.graph.AbstractGraph.getValidatedEndpoints(AbstractGraph.java :93) at edu.uci.ics.jung.graph。 (AbstractGraph.addEdge(AbstractGraph.java:60) ) Javaの:55) com.tweets.helpers.FileHelper.createGraphForPageRank com.tweets.test.Main.mainで(FileHelper.java:1496) (Main.java:105)
で私がそこにあることを知っていますグラフ作成の問題ですが、私はそれを解決する方法を知らない! 誰かが私を助けてくれますか?
あなたの答えをありがとうが、それは動作しません! – Amira
Amira、@amitの提案はうまくいかないのですか?彼はあなたのコードの両方の問題に指をかけています。 –