calculate_graph_statistics.py (1042B)
1 from graph_sampler import preprocess_graph 2 import json 3 from rdflib.extras.external_graph_libs import rdflib_to_networkx_multidigraph 4 from tqdm import tqdm 5 import networkx as nx 6 import numpy as np 7 import pathlib 8 import rdflib 9 10 11 if __name__ == '__main__': 12 raw_graphs = pathlib.Path("./raw_graphs/") 13 n_nodes = [] 14 n_edges = [] 15 16 for input_file in tqdm(raw_graphs.iterdir()): 17 rdf_graph = rdflib.Graph() 18 rdf_graph.parse(input_file) 19 original_graph: nx.MultiDiGraph = rdflib_to_networkx_multidigraph(rdf_graph) 20 filtered_graph, possible_relations = preprocess_graph(original_graph) 21 n_nodes.append(len(filtered_graph.nodes())) 22 n_edges.append(len(filtered_graph.edges())) 23 print(f"Mean nodes: {np.mean(n_nodes)}, std: {np.std(n_nodes)}") 24 print(f"Mean edges: {np.mean(n_edges)}, std: {np.std(n_edges)}") 25 26 stats = {"nodes":[np.mean(n_nodes), np.std(n_nodes)], "edges": [np.mean(n_edges), np.std(n_edges)]} 27 with open("./graph_stats.json", "w") as f: 28 json.dump(stats, f)