def __init__(self, g, e2l, all_nodes): self.g = g # edge to label self.e2l = e2l # source node + edge label => target node self.nl2n = {} for (s, e), l in self.e2l.items(): self.nl2n[(s, l)] = e self.n2nl = {} for (s, e), l in self.e2l.items(): self.n2nl[s] = (e, l) self.all_nodes = all_nodes self.nodes = all_nodes self.wp2node = {(convert_bracket_for_token(n.token), n.index): n for n in all_nodes}
def tokens(self): tokens = [convert_bracket_for_token(n.token) for n in self.all_nodes] if tokens[0] == "ROOT": return tokens[1:] else: return tokens