Пример #1
0
 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
Пример #2
0
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'))