INNER CODE UNIT · Python
get_geometric_data_add_edges
IBM/transition-amr-parser · src/ibm_neural_aligner/main.py:493
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])
edge_index.append([tgt_idx, label_idx])
edge_index.append([label_idx, src_idx])
node_labels = [amr.nodes[k] for k in node_ids]