from py2neo import Graph as pGraph from igraph import Graph as iGraph graph = pGraph("http://localhost:7474/db/data/") print graph query = """ MATCH (n)-[r]->(m) WHERE r.prob>0.8 RETURN n.person_ID,m.person_ID,r.prob """ data = graph.cypher.execute(query) print data ig=iGraph.TupleList(data,weights=True) print ig
def build_graph(self, random=False): neo4j = pGraph() # actors - movies print "getting data from neo4j" query = """ MATCH (p1:Actor)-[:ACTS_IN]->(m:Movie) RETURN p1.name, m.title """ data = neo4j.cypher.execute(query) actors = list(set([datum[0] for datum in data])) movies = list(set([datum[1] for datum in data])) query = """ MATCH (p1:Director)-[:DIRECTED]->(m:Movie) RETURN p1.name, m.title """ data1 = neo4j.cypher.execute(query) directors = list(set([datum[0] for datum in data1])) movies1 = list(set([datum[1] for datum in data1])) print "building vertices" self.graph = igraph.Graph() self.graph.add_vertices(actors) self.graph.vs['actor'] = True self.graph.vs['movie'] = False self.graph.vs['director'] = False self.graph.add_vertices(list(set(movies+movies1))) for v in self.graph.vs: if not v['actor']: v['movie'] = True v['actor'] = False v['director'] = False for d in directors: try: v = self.graph.vs.find(name=d) v['director'] = True except: self.graph.add_vertex( name=d, **{ 'movie': False, 'actor': False, 'director': True } ) print "connecting vertices" if random: # todo make random network connections pass else: for datum in data: self.graph.add_edge( datum[0], datum[1], **{'label': 'acts_in'} ) for datum in data1: self.graph.add_edge( datum[0], datum[1], **{'label': 'directs'} )
# -*- coding: utf-8 -*- """ @author Hamsavardhini """ from py2neo import Graph as pGraph from igraph import Graph as iGraph import re neo4j = pGraph("http://localhost:7474/db/data/") query = "Match(n)-[r]->(c) return n,c" data = neo4j.cypher.execute(query) ig = iGraph.TupleList(data) new_dict = {} attributes = [] clusterID = [] class clustering(object): def walktrap(self): wcluster = ig.community_walktrap().as_clustering() self.modularity = wcluster.modularity self.membership = wcluster.membership self.num_of_clusters = max(wcluster.membership) + 1 # print self.num_of_clusters # print len(self.membership) # print self.modularity # ig.write_svg("walktrap.svg",layout=ig.layout_kamada_kawai()) def match_input(self): self.walktrap()
import scholarly import json import urllib from py2neo import Graph as pGraph, authenticate from py2neo.packages.httpstream import http from flask import Flask, render_template, url_for http.socket_timeout = 9999 app = Flask(__name__) authenticate("localhost:7474","neo4j", "BigData1") neo4j = pGraph() @app.route("/") def main(): return render_template("index.html") @app.route("/clustering") def clustering(): return render_template("cluster.html") @app.route("/analytics") def analytics(): return render_template("analytics.html") @app.route("/papers/cluster/<algorithm>/<int:limit>") @app.route("/papers/cluster/<algorithm>/<int:limit>/<keyword>") def paper_clusters(algorithm, limit, keyword=""):