INNER CODE UNIT · Python
get_geometric_data
IBM/transition-amr-parser · src/ibm_neural_aligner/main.py:488
def get_geometric_data(self, amr):
if args.add_edges:
return self.get_geometric_data_add_edges(amr)
return self.get_geometric_data_standard(amr)
def get_geometric_data_add_edges(self, amr):
vocab = self.amr_tokenizer.vocab
node_ids = get_node_ids(amr)
d_node_idx = {k: i for i, k in enumerate(node_ids)}
edge_index = []
for label_idx, (src, label, tgt) in enumerate(amr.edges):
label_idx = len(node_ids) + label_idx
src_idx = d_node_idx[src]
tgt_idx = d_node_idx[tgt]
edge_index.append([src_idx, label_idx])
edge_index.append([label_idx, tgt_idx])