Exemplo n.º 1
0
     else:
         auxiliary_data = None
     inflector.train(data, dev_data=dev_data, augmented_data=auxiliary_data, save_file=save_file)
 if use_paradigms:
     paradigm_checker = ParadigmChecker().train(data)
 if to_rerank_with_lm:
     forward_save_file = "language_models/{}-{}.json".format(language, mode)
     forward_lm = load_lm(forward_save_file) if os.path.exists(forward_save_file) else None
     reverse_save_file = "language_models/reverse-{}-{}.json".format(language, mode)
     reverse_lm = load_lm(reverse_save_file) if os.path.exists(reverse_save_file) else None
     lm_ranker = LmRanker(forward_lm, reverse_lm, to_rerank=(to_rerank_with_lm == "rerank"))
 if to_test:
     alignment_data = [elem[:2] for elem in data]
     # inflector.evaluate(test_data[:20], alignment_data=alignment_data)
     # sys.exit()
     answer = inflector.predict(test_data, **params["predict"])
     # if use_paradigms:
     #     data_to_filter = [(elem[0], elem[2]) for elem in test_data]
     #     words_in_answer  = [[x[0] for x in elem] for elem in answer]
     #     probs_in_answer = [[x[1:] for x in elem]for elem in answer]
     #     answer = paradigm_checker.filter(data_to_filter, words_in_answer, probs_in_answer)
     # outfile = os.path.join(analysis_dir, filename) if analysis_dir is not None else None
     # if outfile is not None:-
     #     with open(outfile, "w", encoding="utf8") as fout:
     #         for source, predictions in zip(test_data, answer):
     #             word, descr = source[0], source[2]
     #             for prediction in predictions:
     #                 fout.write("{}\t{}\t{}\t{:.2f}\n".format(
     #                     word, ";".join(descr), prediction[0], 100 * prediction[2]))
     if to_rerank_with_lm:
         answer = lm_ranker.rerank_with_lm(answer, test_data)