import json import sys import random if len(sys.argv) != 5: print('usage: %s <output-stem> <n-folds> <test-percent> <valid-percent>' % sys.argv[0]) sys.exit(1) output_stem = sys.argv[1] num_folds = int(sys.argv[2]) items = json.loads(sys.stdin.read()) num_test = int(float(sys.argv[3]) * len(items)) num_valid = int(float(sys.argv[4]) * len(items)) random.seed(12345) for n in range(num_folds): random.shuffle(items) with open(output_stem + '-%d.test' % n, 'w') as fp: fp.write(json.dumps(items[:num_test])) with open(output_stem + '-%d.valid' % n, 'w') as fp: fp.write(json.dumps(items[num_test: num_test + num_valid])) with open(output_stem + '-%d.train' % n, 'w') as fp: fp.write(json.dumps(items[num_test + num_valid:]))