print "external_embedding", d["external_embedding"] stored_opt = Namespace(**d) print "Running model with this configuration", stored_opt parser = lysfastparse.bcovington.covington.CovingtonBILSTM( words, lemmas, cpos, pos, feats, rels, w2i, l2i, stored_opt, None) parser.Load(path_model) with codecs.open(f_temp.name) as f_temp: lookup_conll_data = lysfastparse.utils.lookup_conll_extra_data(f_temp) testpath = f_temp.name ts = time.time() pred = list(parser.Predict(testpath)) te = time.time() print "Took " + str(te - ts) + " seconds" lysfastparse.bcovington.utils_bcovington.write_conll(testpath, pred) lysfastparse.utils.dump_lookup_extra_into_conll( testpath, lookup_conll_data) lysfastparse.utils.transform_to_single_root(testpath) with codecs.open(path_outfile, "w") as f_out: with codecs.open(f_temp.name) as f_out_aux: f_out.write(f_out_aux.read()) os.unlink(f_temp.name)
words, w2i, c2i, pos, rels, stored_opt = pickle.load(paramsfp) stored_opt.external_embedding = None print('Loading pre-trained model') parser = oldslavdep.OldSlavDep(words, pos, rels, w2i, c2i, stored_opt) parser.Load(args.model) testoutpath = os.path.join(args.output, args.conll_test_output) print('Predicting POS tags and parsing dependencies') # ts = time.time() # test_pred = list(parser.Predict(options.conll_test)) # te = time.time() # print 'Finished in', te-ts, 'seconds.' # utils.write_conll(testoutpath, test_pred) with open(testoutpath, 'w') as fh: for sentence in parser.Predict(args.conll_test): for entry in sentence[1:]: fh.write(str(entry) + '\n') fh.write('\n') else: print("Training file: " + args.conll_train) if args.conll_dev != "N/A": print("Development file: " + args.conll_dev) highestScore = 0.0 eId = 0 if os.path.isfile(os.path.join(args.output, args.params)) and \ os.path.isfile(os.path.join(args.output, os.path.basename(args.model))) :
if path_tmp_file_oov is not None: os.unlink(path_tmp_file_oov) with codecs.open(args.conll_dev) as f_conll_dev: lookup_conll_data = lysfastparse.utils.lookup_conll_extra_data(f_conll_dev) log_results_file = codecs.open(os.path.join(args.output.rsplit("/",1)[0], args.output.rsplit("/",1)[1]+'.dev_results'),"a") for epoch in xrange(args.epochs): print 'Starting epoch', epoch parser.Train(args.conll_train) devpath = os.path.join(args.output, 'dev_epoch_' + str(epoch+1) + '.conll') lysfastparse.bcovington.utils_bcovington.write_conll(devpath, parser.Predict(args.conll_dev)) lysfastparse.utils.dump_lookup_extra_into_conll(devpath, lookup_conll_data) lysfastparse.utils.transform_to_single_root(devpath) print 'Executing conll17_eval' os.system('python '+config[YAML_CONLL17_EVAL]+' '+args.conll_dev + ' '+devpath+ ' > ' + devpath + '.txt ') with codecs.open(devpath+".txt") as f_devpath: content = f_devpath.readlines() las_lines = [l for l in content if l.startswith("LAS F1 Score")] if len(las_lines) != 1: warnings.warn("Cannot determine LAS F1 Score from file") else: las = float(las_lines[0].split(":")[1])