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)