def clean(self,s): s = s.replace('<go> ', '').replace(' SLOT', '_SLOT') s = '<GO> ' + s + ' </s>' for item in self.entity_dict: # s = s.replace(item, 'VALUE_{}'.format(self.entity_dict[item])) s = clean_replace(s, item, '{}_SLOT'.format(self.entity_dict[item])) return s
def clean_multiwoz(self, s): s = s.replace('<go> ', '') s = '<GO> ' + s + ' </s>' for item in self.entity_dict: entity = " ".join(item.split(" ")[1:]) # s = s.replace(item, 'VALUE_{}'.format(self.entity_dict[item])) tp = " ".join(self.entity_dict[item].split(" ")[1:]) slot = "[value_" + tp + "]" s = clean_replace(s, entity, slot) return s
def clean_by_intent(self, s, i): s = s.replace('<go> ', '').replace(' SLOT', '_SLOT') s = '<GO> ' + s + ' </s>' intent = self.raw_data[i]['scenario']['task']['intent'] slot = { 'weather': ['weather_attribute', 'location', 'weekly_time'], 'navigate': ['poi', 'poi_type', 'distance', 'traffic', 'address'], 'schedule': ['event', 'date', 'time', 'party', 'room', 'agenda'] } for item in self.entity_dict: if self.entity_dict[item] in slot[intent]: s = clean_replace(s, item, '{}_SLOT'.format(self.entity_dict[item])) return s
def clean(self, s, ifreader=False): from reader import clean_replace s = s.replace('<go> ', '').replace(' SLOT', '_SLOT') if ifreader: pass else: s = '<GO> ' + s + ' </s>' slot_list = [] assert (len(self.entity_dict) > 0) for item in self.entity_dict: # s = s.replace(item, 'VALUE_{}'.format(self.entity_dict[item])) s1 = clean_replace(s, item, '{}_SLOT'.format(self.entity_dict[item])) if s1 != s: slot_list.append(item) #print("slot_list", slot_list) s = s1 return s, slot_list