''' Created on Jul 4, 2017 @author: David ''' import cPickle as pickle import numpy as np #p = "swellex-bigram-mlp-1000-adaptive-subs.pickle" receptive_pickle = "siwoco/ml/svalex-r-mlp-100_0.001.pickle" productive_pickle = "siwoco/ml/swellex-r-mlp-50_10_0.001.pickle" #p1 = "swellex-logreg-a1c1.pickle" #p2 = "swellex-logreg-a2b2.pickle" classifier_receptive = pickle.load(open(receptive_pickle, "rb")) classifier_productive = pickle.load(open(productive_pickle, "rb")) #a1c1p = pickle.load(open(p1, "rb")) #a2b2p = pickle.load(open(p2, "rb")) def predict_adj(data, rop): p_pro = classifier_productive.predict(data)[0] p_rec = classifier_receptive.predict(data)[0] if p_rec > p_pro: # adjust productive level if necessary p_rec = p_pro if p_rec == "A1" and p_pro == "B2": # TODO evaluate this p_pro = "B1" if p_rec == "A2" and p_pro == "C1": p_pro = "B2" if rop == "both": return (p_rec,p_pro) if rop == "receptive": return p_rec return p_pro def predict(data, receptiveOrProductive): return predict_adj(data,receptiveOrProductive) # if receptiveOrProductive == "both": # return (classifier_receptive.predict(data)[0], classifier_productive.predict(data)[0]) # if receptiveOrProductive == "receptive": # return classifier_receptive.predict(data)[0] # else: # return classifier_productive.predict(data)[0] def predict_hybrid(data): a1c1 = a1c1p.predict(data) if a1c1[0] == "B1": a2b2 = a2b2p.predict(data) if a2b2[0] == "B2": return "B2" if a2b2[0] == "A2": return "A2" return "B1" return a1c1[0]