def rank_question(self, question_set): data_vector, _ = self.preprocess_data(question_set) predicted_scores = regr.predict(self.model, data_vector) score_list = [(question_set[i], predicted_scores[i]) for i in range(len(question_set))] ranked_scores = sorted(score_list, key=lambda x: x[1], reverse=True) ranked_question = [question for question, score in ranked_scores] return ranked_question, ranked_scores
def rank_choices(self, question, choices_list): choice_with_score = [] for choice in choices_list: if choice.word != question.answer.word: choice_features = self.get_data_feature(question, choice) choice_vector = self.vectorize(choice_features) predicted_scores = regr.predict(self.model, choice_vector) choice_with_score.append((choice, predicted_scores[0])) ranked_choices = sorted(choice_with_score, key=lambda x: x[1], reverse=True) return [choice for choice, score in ranked_choices], ranked_choices