def partition_train_validation_test(data):
    """
    Partition a dataset into a training set, a validation set and a testing set
    :param data: input dataset
    :return: training, validation and testing set
    """
    # 60% : modulus is 0, 1, 2, 3, 4, or 5
    data_train = [item for item in data if item['hash'] % 10 <= 5]
    # 20% : modulus is 6 or 7
    data_valid = [item for item in data if item['hash'] % 10 in [6, 7]]
    # 20% : modulus is 8 or 9
    data_test = [item for item in data if item['hash'] % 10 in [8, 9]]
    return data_train, data_valid, data_test