def submit_text(request): if request.method == 'POST': try: text = request.POST['input_text'] filename_names = os.path.join(CLASSIFIER_ROOT, "names.pkl") with open(filename_names, "rb") as f: names_loaded = pickle.load(f) text_classifier = TextClassifier() text_classifier.load(os.path.join(CLASSIFIER_ROOT, "class.pkl")) predicted = text_classifier.predict([text]) offset = 0 mask = text_classifier.get_support() tags = [] for i in range(len(predicted[0])): while not mask[offset]: offset += 1 if predicted[0][i] != 0: tags.append(names_loaded[offset]) offset += 1 return HttpResponse(', '.join(tags)) except Exception as e: return HttpResponse(e.message)
def test_advanced_quality(self): sgdc = SGDClassifier(alpha=0.0001, class_weight=None, epsilon=0.1, eta0=0.0, fit_intercept=True, l1_ratio=0.15, learning_rate='optimal', loss='log', n_iter=5, n_jobs=1, penalty='l2', power_t=0.5, random_state=None, shuffle=True, verbose=0, warm_start=False) textClassifier = TextClassifier(base_classifiers =[sgdc, LinearSVC()]) #, multilabel = False) # textClassifier.fit(self.X_train, self.Y_train) textClassifier.fit(self.X_train, self.Y_train, multilabel=False) predicted = textClassifier.predict(self.X_test) advanced_quality = 0.8 self.assertGreaterEqual(metrics.precision_score(self.Y_test, predicted, average = 'micro'), advanced_quality)