Beispiel #1
0
class TestListwiseLearning(unittest.TestCase):
    def setUp(self):
        # initialize query
        self.test_num_features = 6
        test_query = """
        4 qid:1 1:2.6 2:1 3:2.1 4:0 5:2 6:1.4 # highly relevant
        1 qid:1 1:1.2 2:1 3:2.9 4:0 5:2 6:1.9 # bad
        0 qid:1 1:0.5 2:1 3:2.3 4:0 5:2 6:5.6 # not relevant
        0 qid:1 1:0.5 2:1 3:2.3 4:0 5:2 6:5.6 # not relevant
        """
        self.query_fh = cStringIO.StringIO(test_query)
        self.queries = query.Queries(self.query_fh, self.test_num_features)
        self.query = self.queries['1']
        # initialize listwise learner
        self.learner = ListwiseLearningSystem(self.test_num_features,
            "--init_weights 0,0,1,0,0,0 --delta 1.0 --alpha 0.01 --ranker "
            "ranker.ProbabilisticRankingFunction --ranker_args 3 --ranker_tie "
            "first --comparison comparison.ProbabilisticInterleaveWithHistory"
            " --comparison_args \"--history_length 10 --biased true\"")

    def testRanker(self):
        self.learner.get_ranked_list(self.query)