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)