def main(train_loc, model_loc, train_oracle="static", n_iter=15, beam_width=1, feat_thresh=10, allow_reattach=False, allow_reduce=False, unlabelled=False, n_sents=0, seed=0): random.seed(seed) if beam_width >= 2: parser = BeamParser(model_loc, clean=True, train_alg=train_oracle, feat_thresh=feat_thresh, allow_reduce=allow_reduce, allow_reattach=allow_reattach, beam_width=beam_width) else: parser = GreedyParser(model_loc, clean=True, train_alg=train_oracle, feat_thresh=feat_thresh, allow_reduce=allow_reduce, allow_reattach=allow_reattach) train_str = get_train_str(train_loc, n_sents) train_data = redshift.io_parse.read_conll(train_str, unlabelled=unlabelled) parser.train(train_data, n_iter=n_iter) parser.save()
def wrapped(l1): parser = redshift.parser.Parser(parser_dir, solver_type=solver_type, clean=True, C=l1) dev_gold = redshift.io_parse.read_conll(dev_loc.open().read()) train = redshift.io_parse.read_conll(train_loc.open().read()) parser.train(train) dev = redshift.io_parse.read_pos(get_pos(dev_loc.open().read())) acc = parser.add_parses(dev, gold=dev_gold) * 100 wrapped.models[l1] = acc return acc