def buildAdjacencyMatrixWithShortestPaths(tokenElements, dependencyElements, entityElements, pairElement, directed = True, weight_by_distance = False): #Punctuation dependencies are mostly junk dependencyElements = removeDependencies(dependencyElements, ["punct"]) parseGraph = ParseGraph.ParseGraph(tokenElements, dependencyElements) parseGraph.markNamedEntities(entityElements) e1Id = pairElement.get("e1") e2Id = pairElement.get("e2") entity1TokenIds = parseGraph.getNamedEntityTokenIds( [e1Id] ) entity2TokenIds = parseGraph.getNamedEntityTokenIds( [e2Id] ) binaryPaths = parseGraph.buildBinaryPaths(entity1TokenIds, entity2TokenIds) shortestPaths = ParseGraph.getShortestPaths(binaryPaths) parseGraph.setAllDependencyWeights(0.3) parseGraph.setDependencyWeightsByPath(shortestPaths, 0.9) if weight_by_distance: parseGraph.reduceWeightByDistance(0.9, 0.5) parseGraph.setPPIPrefixForDependencies("sp", 0.9) # shortest path prefix parseGraph.maskNames(e1Id, e2Id) parseGraph.addPositionTags(entity1TokenIds, entity2TokenIds) if pairElement.get("interaction") == "True": output = 1. else: output = -1. adjMatrix, labels = parseGraph.buildAdjacencyMatrix(floattype) return adjMatrix, labels, output
def buildAdjacencyMatrixWithShortestPaths(tokenElements, dependencyElements, entityElements, pairElement, directed=True, weight_by_distance=False): #Punctuation dependencies are mostly junk dependencyElements = removeDependencies(dependencyElements, ["punct"]) parseGraph = ParseGraph.ParseGraph(tokenElements, dependencyElements) parseGraph.markNamedEntities(entityElements) e1Id = pairElement.get("e1") e2Id = pairElement.get("e2") entity1TokenIds = parseGraph.getNamedEntityTokenIds([e1Id]) entity2TokenIds = parseGraph.getNamedEntityTokenIds([e2Id]) binaryPaths = parseGraph.buildBinaryPaths(entity1TokenIds, entity2TokenIds) shortestPaths = ParseGraph.getShortestPaths(binaryPaths) parseGraph.setAllDependencyWeights(0.3) parseGraph.setDependencyWeightsByPath(shortestPaths, 0.9) if weight_by_distance: parseGraph.reduceWeightByDistance(0.9, 0.5) parseGraph.setPPIPrefixForDependencies("sp", 0.9) # shortest path prefix parseGraph.maskNames(e1Id, e2Id) parseGraph.addPositionTags(entity1TokenIds, entity2TokenIds) if pairElement.get("interaction") == "True": output = 1. else: output = -1. adjMatrix, labels = parseGraph.buildAdjacencyMatrix(floattype) return adjMatrix, labels, output