Mercurial > hg > Members > nobuyasu > TPPageRank
diff src/pagerank/LinkToVertex.java @ 7:c7b139ff27e2 draft
compute PageRank. initial value is 1/ AllVertexNumber
author | one |
---|---|
date | Wed, 05 Sep 2012 16:34:47 +0900 |
parents | 140272228818 |
children | 4d1885a2fa36 |
line wrap: on
line diff
--- a/src/pagerank/LinkToVertex.java Wed Sep 05 15:39:26 2012 +0900 +++ b/src/pagerank/LinkToVertex.java Wed Sep 05 16:34:47 2012 +0900 @@ -14,8 +14,12 @@ Graph graph; public final static String PAGE_TITLE = "pageTitle"; public final static String PAGE_RANK = "pageRank"; + // pageIdTable + // key: pageTitle value: Vertex ID private HashMap<String, Object> pageIdTable = new HashMap<String, Object>(); + // wikiPageHash + // key: pageTitle value: wikiPage(class) private HashMap<String, WikiPage> wikiPageHash = new HashMap<String, WikiPage>(); private long AllVertexNumber; @@ -86,8 +90,8 @@ return graph.getVertex(id); } - Vertex getNode(String nodeId) { - return graph.getVertex(nodeId); + Vertex getVertexById(String id) { + return graph.getVertex(id); } Edge setRelationship(Vertex v1, Vertex v2, String label) { @@ -201,23 +205,23 @@ } public double computePageRank(Vertex v) { - double sum = 0; - double pageRank = 0; + double sum = 0.0; + double pageRank = 0.0; String title = getPageTitle(v); WikiPage wiki = wikiPageHash.get(title); for (Edge edge : v.getEdges(Direction.IN, HAS_LINK) ) { Vertex linkV = edge.getVertex(Direction.OUT); - sum += (double) ((Double) linkV.getProperty(PAGE_RANK)) / computeInHasLink(linkV) ; + if (computeInHasLink(linkV) == 0) { + sum += (Double) linkV.getProperty(PAGE_RANK); + } else { + sum += ((Double) linkV.getProperty(PAGE_RANK)) / computeInHasLink(linkV) ; + } } - - if (computeOutHasLink(v) == 0) { - pageRank = (double) sum * weight1 - + (double) ((double) 1 / AllVertexNumber * weight2); - } else { - pageRank = (double) ((double)sum / computeOutHasLink(v) * weight1) - + (double) ((double) 1 / AllVertexNumber * weight2); - } + + pageRank = (double) sum * weight1 + + (double) ((double) 1 / AllVertexNumber * weight2); + wiki.setRank(pageRank); v.setProperty(PAGE_RANK, pageRank); return pageRank;