def evalModel(self, k=None, beta=None): """ Fontions qui nous permet d'evaluer le modèle self, un IRModel :type k: float :param k: parametre k pour les evaluations :type beta: float :param beta: parametre beta pour les FMesureAtK """ if k is not None: self.k = k if beta is not None: self.beta = beta evaluation = [ Eval.PrecisionAtK(self.k), Eval.RappelAtK(self.k), Eval.FMesureAtK(self.k, self.beta), Eval.AvgP(), Eval.reciprocalRank(), Eval.Ndcg() ] resultat = [[] for _ in range(len(evaluation))] for query in self.collectionQry: self.print_verbose('query =', self.collectionQry[query].getTexte()) liste = [ resultat[0] for resultat in self.model.getRanking( self.collectionQry[query].getTexte()) ] self.print_verbose(liste) for i in range(len(evaluation)): resultat[i].append(evaluation[i].evalQuery( liste, self.collectionQry[query])) self.print_verbose(resultat) return [(np.mean(l), np.std(l)) for l in resultat]