def predict(self, query_text, predictor_list): preds = [] selected_models = [] print(predictor_list) for key in predictor_list: print(key) if key in self.__trained_models.keys(): tmp_model = self.__trained_models[key] selected_models.append(tmp_model) print(selected_models) for (tokenizer, model) in selected_models: print(tokenizer) print(model) query_vectorized = Utils.create_document_term_matrix(query_text, tokenizer) predictions = model.predict(query_vectorized) prediction_vectorized = np.argmax(predictions, axis=1) prediction_raw = Utils.devectorize_y(prediction_vectorized, self.__label_encoder) preds.append(prediction_raw) if len(preds) == 0: return 'xx' preds = zip(*preds) print('preds', preds) prediction = Utils.most_common(preds) return prediction
def predict_batch(self, X_test_raw, predictor_list): preds = [] if(len(predictor_list) > 1): selected_models = operator.itemgetter(*predictor_list)(self.__trained_models) else: selected_models = [self.__trained_models[0]] for (tokenizer, model) in selected_models: X_test_vectorized = Utils.create_document_term_matrix(X_test_raw, tokenizer) predictions = model.predict(X_test_vectorized) Y_test_predicted_vectorized = np.argmax(predictions, axis=1) Y_test_raw = Utils.devectorize_y(Y_test_predicted_vectorized, self.__label_encoder) preds.append(Y_test_raw) preds = zip(*preds) Y_test_predicted = map(lambda x: Utils.most_common(x), preds) return Y_test_predicted