def for_translation(self): plan_sentences = defaultdict(list) for d in self.data: meta = self.get_meta(d) plan = d.plan.replace(concat_entity(meta["name"]), concat_entity("name")) delex = d.delex if delex: ents = [meta["name"] ] + [o for s, r, o in d.rdfs if r not in DONT_DELEX] delex = self.delex_single(d.text, ents, d) delex = delex.replace(concat_entity(meta["name"]), concat_entity("name")) delex = " ".join(tokenize(delex)) if meta["near"]: near_val = concat_entity(meta["near"]) near_placeholder = concat_entity("near") plan = plan.replace(near_val, near_placeholder) delex = delex.replace(near_val, near_placeholder) plan_sentences[plan].append(delex) return plan_sentences
def convert_relation(self, r: str): return "_".join(tokenize(readable_edge(r)))
def tokenize_delex(self): self.data = [ d.set_delex(" ".join(tokenize(d.delex))) for d in self.data ] return self
def tokenize_plans(self): self.data = [d.set_plan(" ".join(tokenize(d.plan))) for d in self.data] return self