コード例 #1
0
    }
    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))
コード例 #2
0
            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))
コード例 #3
0
            # 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 '-----------------------------------------'