text-graph-generalization

Code for our paper Compositional Generalization with Grounded Language Models
git clone https://esimon.eu/repos/text-graph-generalization.git
Log | Files | Refs | README | LICENSE

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)