Ich versuche, Pagerank Algorithmus für jung zu testen, aber es scheint, dass ich ein Problem dabei habe. Ich habe gewichtet und indirekte Graph mit diesem Teil des Codes erstellt:wie man PageRank Algorithmus für jung testen?
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);
}
dann, in der Hauptklasse, habe ich diesen Code pagerank auf meinem Diagramm zu testen:
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();
aber Eclipse erzeugt Dieser Fehler: Ausnahme im Thread "Haupt" java.lang.IllegalArgumentException: Kante 4 ist bereits in diesem Diagramm mit Endpunkten vorhanden und kann nicht mit Endpunkten bei edu.uci.ics.jung.graph.AbstractGraph.getValidatedEndpoints (AbstractGraph.java : 93) bei edu.uci.ics.jung.graph. UndirectedSparseGraph.addEdge (UndirectedSparseGraph.java:64) bei edu.uci.ics.jung.graph.AbstractGraph.addEdge (AbstractGraph.java:60) bei edu.uci.ics.jung.graph.AbstractGraph.addEdge (AbstractGraph. java: 55) bei com.tweets.helpers.FileHelper.createGraphForPageRank (FileHelper.java:1496) bei com.tweets.test.Main.main (Main.java:105)
ich weiß, dass es eine Problem mit der Graphenerstellung, aber ich weiß nicht, wie ich das lösen soll !!!! Kann mir bitte jemand helfen.
danke für deine antwort, aber es funktioniert nicht !!! – Amira
Amira, in welcher Weise funktioniert der Vorschlag @amit nicht funktioniert? Er hat sich mit beiden Problemen in Ihrem Code beschäftigt. –