def wrapped(l1): parser = linkshift.parser.Parser(parser_dir, solver_type=solver_type, clean=True, C=l1) dev_gold = linkshift.io_parse.read_conll(dev_loc.open().read()) train = linkshift.io_parse.read_conll(train_loc.open().read()) parser.train(train) dev = linkshift.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
def main(parser_dir, text_loc, out_dir, use_gold=False, profile=False, debug=False): if debug: linkshift.parser.set_debug(debug) if not os.path.exists(out_dir): os.mkdir(out_dir) yield "Loading parser" parser = linkshift.parser.load_parser(parser_dir) sentences = linkshift.io_parse.read_pos(open(text_loc).read()) #sentences.connect_sentences(1700) if profile: cProfile.runctx("parser.add_parses(sentences,gold=gold_sents)", globals(), locals(), "Profile.prof") s = pstats.Stats("Profile.prof") s.strip_dirs().sort_stats("time").print_stats() else: t1 = time.time() parser.add_parses(sentences) t2 = time.time() print '%d sents took %0.3f ms' % (sentences.length, (t2-t1)*1000.0) sentences.write_parses(open(os.path.join(out_dir, 'parses'), 'w'))