def redo(self, id): if not c.user: return redirect(url(controller='login', action='signin', id=None, return_to=url.current())) c.feed = meta.find(model.Feed, id) query = meta.Session\ .query(model.Classification)\ .join(model.FeedEntry)\ .filter_by(feed_id=id) guesser = Guesser(c.feed, c.user, config) guesser.clear() cnt = 0 needles_cnt = 0 for entry in query: # h.flash("%s :%s" % (entry.pool, __relevant__(entry.entry))) # guesser.trainer.train(entry.pool, __relevant__(entry.entry)) if guesser.is_spam(entry.entry, use_classified=False) and (entry.pool == 'spam'): needles_cnt += 1 elif not guesser.is_spam(entry.entry, use_classified=False) and (entry.pool == 'ham'): needles_cnt += 1 self.__mark_as__(entry.entry, entry.pool, guesser, True) cnt+=1 guesser.save() log.debug("FOOOOOO") if needles_cnt > 0: h.flash("%d entries were needlessly trained (total: %s)" % (needles_cnt, cnt)) else: h.flash("learned %s entries" % cnt) return h.go_back()