def _override_act_descriptions(self, new_des, original_des): '''Merge and override properties of two dicts. Args: new_des: A dict presenting new properties for overriding origianl_des: A dict which will be intergrated and overridden Returns: A dict of combining properties from two dict. ''' original_des = deep_copy(original_des) if new_des is None: return original_des for key in new_des.keys(): original_des[key] = new_des[key] return original_des
def da_out(self): '''Answer unprocessed system dialogue act so far. Returns: A list of DialogueAct presents answers of user ''' das = [] turn = {'sys_da': deep_copy(self.unprocessed_da_queue)} while(len(self.unprocessed_da_queue)>0): da = self.unprocessed_da_queue.pop(0) #das.append(self._get_answer_da(da)) da_ret = self._get_answer_da(da) if len(da_ret)>0: das.append(da_ret) if len(das)==0: print '!!!!!!!!!!!!!!!!Empty acts return?????? change to default fixed slots value act!!!!' das = self._zero_act_return() #if len(das)==1: # das = das[0] #print das[0] #post process user acts goal_des = self.metadata['goals'][self.goal_id] if 'act_post_process_fun' in goal_des and goal_des['act_post_process_fun'] is not None: das = goal_des['act_post_process_fun'](das) turn['user_da']= das self.turns.append(turn) self.last_user_da = das[0].dais das_str = '' #for da in das: #das_str += str(da) #self.system_logger.info('SimpleUserSimulator:da_out: %s'%das_str) return das