def compare_model(): index = Index() models = [Vectoriel(index, SimpleWeighter(index), normalized=True), Vectoriel(index, BasicWeighter(index), normalized=True), Vectoriel(index, ThirdWeighter(index), normalized=False), Vectoriel(index, FourthWeighter(index), normalized=False), Okapi(index), LanguageModel(index, .7), HITS(index, seeds=3, k=5), PageRank(index, seeds=3, k=5) ] names = ['Vectoriel1', 'Vectoriel2','Vectoriel3','Vectoriel4','Okapi', 'Language', 'HITS', 'PageRank'] models_scores = compare_models(names, models) fig = plt.figure(figsize=(10,8)) colors=iter(cm.hot(np.linspace(0,.7,len(names)))) x = [s['AveragePrecision']['mean'] for s in scores.values()] plt.xticks(x, scores.keys()) plt.bar(x, models_scores.values(), alpha=.4, color=c) # for n, s in models_scores.items(): # color = next(colors) # y = s['PrecisionRecall']['mean'] # x = list(range(len(y))) # plt.plot(x, y, color=color, label=n) # plt.legend() plt.savefig('plot/models_comparison_precision_eval.png')
class FeaturerVectoriel1(Featurer): def __init__(self, index): super(FeaturerVectoriel1, self).__init__(index) self.model = Vectoriel(index, SimpleWeighter(index), normalized=True) self.features = {} def get_query_scores(self, query): ranks = self.model.getRanking(query.getText()) return [(d, r / float(self.documents_count)) for (d, r) in ranks] def get_features(self, idDoc, query): queryId = query.getId() if queryId not in self.features.keys(): self.features[queryId] = self.get_query_scores(query) return [s for (d, s) in self.features[queryId] if d == idDoc][0]
def __init__(self, index): super(FeaturerVectoriel1, self).__init__(index) self.model = Vectoriel(index, SimpleWeighter(index), normalized=True) self.features = {}
def __init__(self, index): super(FeaturerVectoriel4, self).__init__(index) self.model = Vectoriel(index, FourthWeighter(index), normalized=False) self.features = {}