Skip to content
This repository has been archived by the owner on Apr 22, 2020. It is now read-only.

Commit

Permalink
duplicate degree functions
Browse files Browse the repository at this point in the history
  • Loading branch information
mneedham committed Feb 14, 2019
1 parent a336cb5 commit 4c7dbb0
Showing 1 changed file with 5 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public double adamicAdarSimilarity(@Name("node1") Node node1, @Name("node2") Nod
Direction direction = configuration.getDirection(Direction.BOTH);

Set<Node> neighbors = new NeighborsFinder(api).findCommonNeighbors(node1, node2, relationshipType, direction);
return neighbors.stream().mapToDouble(nb -> 1.0 / Math.log(degree(relationshipType, direction, nb))).sum();
return neighbors.stream().mapToDouble(nb -> 1.0 / Math.log(degree(nb, relationshipType, direction))).sum();
}

@UserFunction("algo.linkprediction.resourceAllocation")
Expand All @@ -70,7 +70,7 @@ public double resourceAllocationSimilarity(@Name("node1") Node node1, @Name("nod
Direction direction = configuration.getDirection(Direction.BOTH);

Set<Node> neighbors = new NeighborsFinder(api).findCommonNeighbors(node1, node2, relationshipType, direction);
return neighbors.stream().mapToDouble(nb -> 1.0 / degree(relationshipType, direction, nb)).sum();
return neighbors.stream().mapToDouble(nb -> 1.0 / degree(nb, relationshipType, direction)).sum();
}

@UserFunction("algo.linkprediction.commonNeighbors")
Expand Down Expand Up @@ -103,7 +103,7 @@ public double preferentialAttachment(@Name("node1") Node node1, @Name("node2") N
RelationshipType relationshipType = configuration.getRelationship();
Direction direction = configuration.getDirection(Direction.BOTH);

return getDegree(node1, relationshipType, direction) * getDegree(node2, relationshipType, direction);
return degree(node1, relationshipType, direction) * degree(node2, relationshipType, direction);
}

@UserFunction("algo.linkprediction.totalNeighbors")
Expand All @@ -116,19 +116,10 @@ public double totalNeighbors(@Name("node1") Node node1, @Name("node2") Node node
Direction direction = configuration.getDirection(Direction.BOTH);

NeighborsFinder neighborsFinder = new NeighborsFinder(api);

Set<Node> neighbors = neighborsFinder.findNeighbors(node1, relationshipType, direction);
neighbors.addAll(neighborsFinder.findNeighbors(node2, relationshipType, direction));

return neighbors.size();
return neighborsFinder.findNeighbors(node1, node2, relationshipType, direction).size();
}

private int getDegree(Node node, RelationshipType relationshipType, Direction direction) {
return relationshipType == null ? node.getDegree(direction) : node.getDegree(relationshipType, direction);
}


private int degree(RelationshipType relationshipType, Direction direction, Node node) {
private int degree(Node node, RelationshipType relationshipType, Direction direction) {
return relationshipType == null ? node.getDegree(direction) : node.getDegree(relationshipType, direction);
}

Expand Down

0 comments on commit 4c7dbb0

Please sign in to comment.