human
I wrote the below code

    path = get_dataset_file(path, 'imdb.pkl', 'http://www.iro.umontreal.ca/~lisa/deep/data/imdb.pkl')
    if path.endswith('.gz'):
        f = gzip.open(path, 'rb')
    else:
        f = open(path, 'rb')
    train_set = pickle.load(f)
    test_set = pickle.load(f)
    f.close()
    if maxlen:
        new_train_set_x = []
        new_train_set_y = []
        for (x, y) in zip(train_set[0], train_set[1]):
            if (len(x) < maxlen):
                new_train_set_x.append(x)
                new_train_set_y.append(y)
        train_set = (new_train_set_x, new_train_set_y)
        del new_train_set_x, new_train_set_y
    (train_set_x, train_set_y) = train_set
    n_samples = len(train_set_x)
    sidx = numpy.random.permutation(n_samples)
    n_train = int(numpy.round((n_samples * (1.0 - valid_portion))))
    valid_set_x = [train_set_x[s] for s in sidx[n_train:]]
    valid_set_y = [train_set_y[s] for s in sidx[n_train:]]
    train_set_x = [train_set_x[s] for s in sidx[:n_train]]
    train_set_y = [train_set_y[s] for s in sidx[:n_train]]
    train_set = (train_set_x, train_set_y)
    valid_set = (valid_set_x, valid_set_y)
    def remove_unk(x):
        return [[(1 if (w >= n_words) else w) for w in sen] for sen in x]
    (test_set_x, test_set_y) = test_set
    (valid_set_x, valid_set_y) = valid_set
    (train_set_x, train_set_y) = train_set
    train_set_x = remove_unk(train_set_x)
    valid_set_x = remove_unk(valid_set_x)
    test_set_x = remove_unk(test_set_x)
    def len_argsort(seq):
        return sorted(range(len(seq)), key=(lambda x: len(seq[x])))
    if sort_by_len:
        sorted_index = len_argsort(test_set_x)
        test_set_x = [test_set_x[i] for i in sorted_index]
        test_set_y = [test_set_y[i] for i in sorted_index]
        sorted_index = len_argsort(valid_set_x)
        valid_set_x = [valid_set_x[i] for i in sorted_index]
        valid_set_y = [valid_set_y[i] for i in sorted_index]
        sorted_index = len_argsort(train_set_x)
        train_set_x = [train_set_x[i] for i in sorted_index]
 ...

What's a good function header?
 ... Here's a good function header?
assistant
#Here's a good function header.

def load_data(path='imdb.pkl', n_words=100000, valid_portion=0.1, maxlen=None, sort_by_len=True):