示例#1
0
import time
from load_data_ESA import load_emotion_and_labelnames
from ESA import load_ESA_sparse_matrix, divide_sparseMatrix_by_list_row_wise, multiply_sparseMatrix_by_list_row_wise
from sklearn.metrics.pairwise import cosine_similarity
from sklearn.metrics.pairwise import euclidean_distances
from scipy.sparse import vstack
import numpy as np
from operator import itemgetter
from scipy.special import softmax
from preprocess_emotion import emotion_f1_given_goldlist_and_predlist

all_texts, all_labels, all_word2DF, labelnames = load_emotion_and_labelnames()
ESA_sparse_matrix = load_ESA_sparse_matrix().tocsr()
# ESA_sparse_matrix_2_dict = {}
#
# def ESA_sparse_matrix_into_dict():
#     global ESA_sparse_matrix_2_dict
#     for i in range(ESA_sparse_matrix.shape[0]):
#         ESA_sparse_matrix_2_dict[i] = ESA_sparse_matrix.getrow(i)
#     print('ESA_sparse_matrix_into_dict succeed')


def text_idlist_2_ESAVector(idlist, text_bool):
    # sub_matrix = ESA_sparse_matrix[idlist,:]
    # return  sub_matrix.mean(axis=0)
    # matrix_list = []
    # for id in idlist:
    #     matrix_list.append(ESA_sparse_matrix_2_dict.get(id))
    # stack_matrix = vstack(matrix_list)
    # return  stack_matrix.mean(axis=0)
    # print('idlist:', idlist)
parser = argparse.ArgumentParser()
parser.add_argument("--ZEROSHOT_MODELS",
                            default=None,
                            type=str,
                            help="dir to save pretrained models")
parser.add_argument("--ZEROSHOT_RESOURCES",
                            default=None,
                            type=str,
                            help="dir to save ESA files")
args = parser.parse_args()
global cache
cache = load_model_to_mem(args.ZEROSHOT_MODELS)
bart_cache = loading_bart_fever_rte_model(args.ZEROSHOT_MODELS)
bart_model, bart_tokenizer = loading_bart_model()
print("Load models succeed")
ESA_sparse_matrix = load_ESA_sparse_matrix(args.ZEROSHOT_RESOURCES).tocsr()
ESA_word2id = load_ESA_word2id(args.ZEROSHOT_RESOURCES)


class StringPredicter(object):
    @cherrypy.expose
    def index(self):
        return open('public/0shot.html')

    @cherrypy.expose
    @cherrypy.tools.json_out()
    @cherrypy.tools.json_in()
    def info(self, **params):
        return {"status":"online"}

    @cherrypy.expose