def METHOD_NAME(self, fold):
    """
    Parses into TodStructuredEpisode.
    """
    chunks, api_schema_raw = self._load_data(fold)
    api_schemas_machine = self._parse_to_api_schema(api_schema_raw)
    episodes = []
    for _, row in chunks.iterrows():
        utterances = row["utterances"][:]
        idx = 0
        rounds = []
        goal_calls = []
        if len(utterances) > 0 and utterances[0]["speaker"] == "assistant":
            (
                idx,
                sys_utt,
                api_call,
                api_resp,
            ) = self._get_utterance_and_apis_for_speaker(
                "assistant", utterances, idx
            )
            turns = self._get_turns_from_parsed(
                SILENCE_TOKEN, api_call, api_resp, sys_utt
            )
            for t in turns:
                rounds.append(t)
        while idx < len(utterances):
            (
                idx,
                user_utt,
                calls_user,
                responses_user,
            ) = self._get_utterance_and_apis_for_speaker("user", utterances, idx)
            (
                idx,
                sys_utt,
                calls_system,
                responses_system,
            ) = self._get_utterance_and_apis_for_speaker(
                "assistant", utterances, idx
            )
            api_calls = calls_user + calls_system
            api_resps = responses_user + responses_system
            goal_calls += api_calls
            turns = self._get_turns_from_parsed(
                user_utt, api_calls, api_resps, sys_utt
            )
            for t in turns:
                rounds.append(t)
        episode = tod.TodStructuredEpisode(
            api_schemas_machine=api_schemas_machine,
            goal_calls_machine=goal_calls,
            rounds=rounds,
            delex=self.opt.get("delex", False),
        )
        episodes.append(episode)
    return episodes