예제 #1
0
    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
예제 #2
0
 def convert_relation(self, r: str):
     return "_".join(tokenize(readable_edge(r)))
예제 #3
0
 def tokenize_delex(self):
     self.data = [
         d.set_delex(" ".join(tokenize(d.delex))) for d in self.data
     ]
     return self
예제 #4
0
 def tokenize_plans(self):
     self.data = [d.set_plan(" ".join(tokenize(d.plan))) for d in self.data]
     return self