class TwitterHawk(object): def __init__(self, model_path): # Load model with open(model_path + '.model', 'rb') as fid: self.clf = pickle.load(fid) with open(model_path + '.dict', 'rb') as fid: self.vec = pickle.load(fid) self.feat_obj = FeaturesWrapper() def predict(self, X, predict_type='label'): # Data -> features #feat_obj = FeaturesWrapper() feats = self.feat_obj.extract_features(X) if predict_type == 'label': return self.predict_vectorized(feats) elif predict_type == 'probs': return self.predict_probs_vectorized(feats) def predict_probs_vectorized(self, feats): vectorized = self.vec.transform(feats) return self.clf.decision_function(vectorized) def predict_vectorized(self, feats): vectorized = self.vec.transform(feats) labels = self.clf.predict(vectorized) labels = [reverse_labels_map[y] for y in labels] return labels
def predict(X, clf, vec, feat_obj=None): # Data -> features if feat_obj == None: feat_obj = FeaturesWrapper() feats = feat_obj.extract_features(X) return predict_vectorized(feats, clf, vec)
class TwitterHawk(object): def __init__(self, model_path): # Load model with open(model_path+'.model', 'rb') as fid: self.clf = pickle.load(fid) with open(model_path+'.dict', 'rb') as fid: self.vec = pickle.load(fid) self.feat_obj = FeaturesWrapper() def predict(self, X, predict_type='label'): # Data -> features #feat_obj = FeaturesWrapper() feats = self.feat_obj.extract_features(X) if predict_type == 'label': return self.predict_vectorized(feats) elif predict_type == 'probs': return self.predict_probs_vectorized(feats) def predict_probs_vectorized(self, feats): vectorized = self.vec.transform(feats) return self.clf.decision_function(vectorized) def predict_vectorized(self, feats): vectorized = self.vec.transform(feats) labels = self.clf.predict(vectorized) labels = [ reverse_labels_map[y] for y in labels ] return labels
def predict(X, clf, vec, feat_obj=None, prob=False): # Data -> features if feat_obj == None: feat_obj = FeaturesWrapper() feats = feat_obj.extract_features(X) if prob: return predict_probs_vectorized(feats, clf, vec) else: return predict_vectorized(feats, clf, vec)
def extract_features(X, feat_obj=None): # Data -> features if feat_obj == None: feat_obj = FeaturesWrapper() feats = feat_obj.extract_features(X) return feats