} DELETE_STOP_WORDS = True DELETECHARS = ''.join([string.punctuation, string.whitespace, "\n", "\xa0", "—", "-"]) for i in range(len(data)): for iteration in range(args.num_sample): original = "" if args.use_file: original = data[i] else: original = str seed = Variable(t.randn([1, parameters.latent_variable_size])) seed = seed.cuda() results, scores = rvae.sampler(batch_loader, batch_loader_2, 50, seed, args.use_cuda, i, beam_size, n_best) best = " ".join([batch_loader_2.decode_word(x[0]) for x in results[0]]) if batch_loader.end_token in best: best = best[:best.index(batch_loader.end_token)] text_1_space = original text_2_space = best text_1_space_1 = get_lemmas_list(original) text_2_space_1 = get_lemmas_list(best) blue_1 = sentence_bleu([text_1_space_1.split(" ")], text_2_space_1.split(" "), weights=(1, 0, 0, 0)) rouge = Rouge() article_score = rouge.get_scores(text_1_space, text_2_space)[0] article_score_1 = rouge.get_scores(text_1_space_1, text_2_space_1)[0] scores["ROUGE 1"].append(round(article_score_1['rouge-1']['f'], 4)) scores["ROUGE 2"].append(round(article_score_1['rouge-2']['f'], 4)) scores["ROUGE L"].append(round(article_score_1['rouge-l']['f'], 4)) scores["BLEU 1"].append(round(blue_1, 4))
else: print("original sentence: " + text_input + "\n") for _ in range(args.num_sample): seed = Variable(t.randn([1, parameters.latent_variable_size])) seed = seed.cuda() results, scores = rvae.sampler( batch_loader, batch_loader_2, 50, seed, args.use_cuda, index, args.beam_size, args.beam_top ) for tt in results: for k in range(args.beam_top): sen = " ".join([batch_loader_2.decode_word(x[k]) for x in tt]) if batch_loader.end_token in sen: hyp = sen[: sen.index(batch_loader.end_token)] print("generate sentence: " + hyp) else: hyp = sen print("generate sentence: " + hyp) hyp_.append(hyp) iteration += 1 t.save(rvae.state_dict(), save_path + f"/trained_RVAE_{iteration}") np.save(save_path + f"/ce_result.npy".format(args.ce_result), np.array(ce_result)) np.save(save_path + f"/kld_result.npy".format(args.kld_result), np.array(kld_result))
# seed = seed*std + mu # print 'Multiplication done' # seed = seed.cuda() # print seed.size # print type(seed) # print seed # exit() results, scores = rvae.sampler(batch_loader, batch_loader_2, 50, seed, args.use_cuda, i, beam_size, n_best) # exit() # print(results) for tt in results: for k in range(n_best): sen = " ".join( [batch_loader_2.decode_word(x[k]) for x in tt]) # print sen if batch_loader.end_token in sen: print(sen[:sen.index(batch_loader.end_token)]) else: print(sen) # exit() print('\n') # print 'words_vocab_size BatchLoader ----------->' # print batch_loader.words_vocab_size # print '-----------------------------------------' # print 'words_vocab_size BatchLoader_2 ----------->' # print batch_loader_2.words_vocab_size # print '-----------------------------------------'