Example #1
0
def fake_state():
    user_action = {"inform": [["pricerange", "moderate"]]}
    from tatk.util.camrest.state import default_state
    init_belief_state = default_state()
    kb_results = [None, None]
    kb_results[0] = {
        'name': 'xxx_train',
        'day': 'tuesday',
        'dest': 'cam',
        'phone': '123-3333',
        'area': 'south'
    }
    kb_results[1] = {
        'name': 'xxx_train',
        'day': 'tuesday',
        'dest': 'cam',
        'phone': '123-3333',
        'area': 'north'
    }
    state = {
        'user_action': user_action,
        'belief_state': init_belief_state,
        'kb_results_dict': kb_results
    }
    '''
    state = {'user_action': dict(),
             'belief_state: dict(),
             'kb_results_dict': kb_results
    }
    '''
    return state
Example #2
0
    def _build_data(self, root_dir, processed_dir):  # TODO
        raw_data = {}
        for part in ['train', 'val', 'test']:
            archive = zipfile.ZipFile(
                os.path.join(root_dir,
                             'data/camrest/{}.json.zip'.format(part)), 'r')
            with archive.open('{}.json'.format(part), 'r') as f:
                raw_data[part] = json.load(f)

        self.data = {}
        for part in ['train', 'val', 'test']:
            self.data[part] = []

            for key in raw_data[part]:
                sess = key['dial']
                state = default_state()
                action = {}
                for i, turn in enumerate(sess):
                    state['user_action'] = turn['usr']['dialog_act']
                    if i + 1 == len(sess):
                        state['terminated'] = True
                    for da in turn['usr']['slu']:
                        if da['slots'][0][0] != 'slot':
                            state['belief_state'][da['slots'][0]
                                                  [0]] = da['slots'][0][1]
                    action = turn['sys']['dialog_act']
                    self.data[part].append([
                        self.vector.state_vectorize(state),
                        self.vector.action_vectorize(action)
                    ])
                    state['system_action'] = turn['sys']['dialog_act']

        os.makedirs(processed_dir)
        for part in ['train', 'val', 'test']:
            with open(os.path.join(processed_dir, '{}.pkl'.format(part)),
                      'wb') as f:
                pickle.dump(self.data[part], f)
Example #3
0
 def init_session(self):
     """Initialize ``self.state`` with a default state, which ``tatk.util.camrest.state.default_state`` returns."""
     self.state = default_state()
Example #4
0
 def __init__(self):
     super().__init__()
     self.state = default_state()