<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def make_ttv_yaml(corpora, path_to_ttv_file, ttv_ratio=DEFAULT_TTV_RATIO, deterministic=False):
 """ Create a test, train, validation from the corpora given and saves it as a YAML filename. Each set will be subject independent, meaning that no one subject can have data in more than one set # Arguments; corpora: a list of the paths to corpora used (these have to be formatted accoring to notes.md) path_to_ttv_file: the path to where the YAML file be be saved ttv_ratio: a tuple (e.g. (1,4,4) of the relative sizoe of each set) deterministic: whether or not to shuffle the resources around when making the set. """

    dataset = get_dataset(corpora)
    data_sets = make_ttv(dataset, ttv_ratio=ttv_ratio, deterministic=deterministic)

    def get_for_ttv(key):
        return (
            data_sets['test'][key],
            data_sets['train'][key],
            data_sets['validation'][key]
        )

    test, train, validation = get_for_ttv('paths')

    number_of_files_for_each_set = list(get_for_ttv('number_of_files'))

    number_of_subjects_for_each_set = [len(x) for x in get_for_ttv('subjects')]

    dict_for_yaml = {
        'split': number_of_files_for_each_set,
        'subject_split': number_of_subjects_for_each_set,
        "test": test,
        "train": train,
        "validation": validation
    }

    with open(path_to_ttv_file, 'w') as f:
        yaml.dump(dict_for_yaml, f, default_flow_style=False)