def write_represents_to_txt(path, output_path, name='train'):
    data = Data(ori_texts=[], labels=[], if_train=False)
    with open(path, 'rb') as rbf:
        data.char_alphabet.instance2index = pickle.load(rbf)
        data.word_alphabet.instance2index = pickle.load(rbf)
        data.label_alphabet.instance2index = pickle.load(rbf)
        data.char_alphabet_size = pickle.load(rbf)
        data.word_alphabet_size = pickle.load(rbf)
        data.label_alphabet_size = pickle.load(rbf)
        data.label_alphabet.instances = pickle.load(rbf)
        data.train_texts = pickle.load(rbf)
        data.train_ids = pickle.load(rbf)
    data.fix_alphabet()
    model = TextMatchModel(data)
    model.load_state_dict(
        torch.load(model_dir, map_location=model.configs['map_location']))
    model.eval()
    model.to(model.configs['device'])
    data.no_train_texts, data.no_train_ids = data.read_no_train(no_train_path)
    train_texts, train_represents, train_label_ids = get_represents(
        data, model, name, model.configs)
    if not os.path.exists(output_path + '/train_texts.txt'):
        with open(output_path + '/train_texts.txt', 'w') as wf:
            for item in train_texts:
                wf.write('%s\n' % item)
        with open(output_path + '/train_represents.txt', 'w') as wf:
            for item in train_represents:
                wf.write('%s\n' % item)
        with open(output_path + '/train_label_ids.txt', 'w') as wf:
            for item in train_label_ids:
                wf.write('%s\n' % item)
def write_represents_to_pkl(path, output_path, name='train'):
    data = Data(ori_texts=[], labels=[], if_train=False)
    with open(path, 'rb') as rbf:
        data.char_alphabet.instance2index = pickle.load(rbf)
        data.word_alphabet.instance2index = pickle.load(rbf)
        data.label_alphabet.instance2index = pickle.load(rbf)
        data.char_alphabet_size = pickle.load(rbf)
        data.word_alphabet_size = pickle.load(rbf)
        data.label_alphabet_size = pickle.load(rbf)
        data.label_alphabet.instances = pickle.load(rbf)
        data.train_texts = pickle.load(rbf)
        data.train_ids = pickle.load(rbf)
    data.fix_alphabet()
    model = TextMatchModel(data)
    model.load_state_dict(
        torch.load(model_dir, map_location=model.configs['map_location']))
    model.eval()
    model.to(model.configs['device'])
    train_texts, train_represents, train_label_ids = get_represents(
        data, model, name, model.configs)
    # 写入
    # with open(path, 'ab') as abf:
    # 	pickle.dump(train_texts, abf)
    # 	pickle.dump(train_represents, abf)
    # 	pickle.dump(train_label_ids, abf)
    with open(output_path, 'wb') as wbf:
        pickle.dump(train_represents, wbf)