Exemple #1
0
    def predict_question(input_question):
        '''
        Runs through variable extraction and the question classifier to
        predict the intended question.

        Args: input_question (string) - user input question to answer

        Return: return_tuple (tuple) - contains the user's input question,
                                       the variable extracted input question,
                                       the entity extracted, and the predicted
                                       answer

        '''

        variable_extraction = Variable_Extraction()
        entity, normalized_sentence = variable_extraction.\
                                        extract_variables(input_question)

        classifier = QuestionClassifier()
        classifier.load_latest_classifier()
        answer = classifier.classify_question(normalized_sentence)

        return_tuple = (input_question, normalized_sentence,
                        entity, answer)

        return return_tuple
def eval_model_accuracy():
    question_generator = Generate_Data.Gen_Data()
    generated_data, _ = question_generator.generate()

    classifier = QuestionClassifier('question_set_clean.csv', use_new=True)

    total = 0
    samples = 0
    for data in generated_data:
        expect_question = data[0]
        for i in range(1, len(data)):
            samples += 1
            test = data[i]
            classified_question = classifier.classify_question(test)
            if classified_question != expect_question:
                print("--------")
                print("Question: {}".format(test))
                print(
                    "Expected to be classified as: {}".format(expect_question))
                print("Got classification: {}".format(classified_question))
                print("-------")
            else:
                total += 1

    print("Accuracy: {}".format(float(total) / samples))
    print(generated_data)