Ejemplo n.º 1
0
    def p_can_see_tag(self, tag, vtags, itags):
        """
        Find the subset of vtags that maximizes the p(x|subset_vtags)
        and use that for the value. 
        """

        if tag in vtags:
            return 1 - 1e-8
        elif tag in itags:
            return 1e-8

        l = [
            [
                subset_vtags,
                learned_landmark.model.p_can_see_tag(self, tag, subset_vtags,
                                                     itags)
            ] for subset_vtags in math2d.powerset(vtags)
            #]
            if len(subset_vtags) <= 3
        ]
        l = na.array(l)
        best = na.argmax(l[:, 1])
        best_subset = l[best][0]
        O_mat_entry = l[best][1]
        if O_mat_entry < 0 or O_mat_entry > 1:
            raise ValueError("Bad omat:  " + ` O_mat_entry `)
        return O_mat_entry
Ejemplo n.º 2
0
def main():
    docs = list(
        math2d.powerset([
            "window", "door", "microwave", "refrigerator", "desk", "table",
            "chair", "elevator", "clock", "urinal", "sink", "nice", "view"
        ]))

    inference("data/flickrLda/input", docs)
Ejemplo n.º 3
0
def main():
    from sys import argv
    corpus_fname = argv[1]
    model_fname = argv[2]
    groundtruth_tag_fn = argv[3]
    map_fname = argv[4]

    evaluator = evaluate_model.Evaluator(corpus_fname,
                                         model_fname,
                                         groundtruth_tag_fn,
                                         map_fname,
                                         evaluation_mode="specialized")
    evaluate_model.evaluator = evaluator

    sr_classifier = evaluator.dg_model.sr_class
    engineMap = sr_classifier.engineMap
    out = []

    #for subset in [set(engineMap.keys()) - set(["through"])]:

    #for subset in [[x] for x in engineMap.keys()]:
    for subset in math2d.powerset(engineMap.keys()):
        if len(
                subset
        ) > 3 or "turnRight" in subset or "turnLeft" in subset or "straight" in subset:
            continue
        subset_engine_map = dict([(key, None) for key in engineMap.keys()])

        for key in subset:
            subset_engine_map[key] = engineMap[key]

        print "expect to call setter"
        print 'cls', sr_classifier
        print 'cls', sr_classifier.engineMap
        sr_classifier.set_engine_map(subset_engine_map)
        run_description = str(subset)

        evaluator.run_description = run_description

        print "starting", evaluator.run_description
        correct_count, out_fname = evaluator.evaluateParallel()
        out.append((run_description, correct_count, out_fname))
        break
    out.sort(key=lambda x: x[1], reverse=True)
    for x in out:
        print x
Ejemplo n.º 4
0
    def p_can_see_tag(self, tag, vtags, itags):
        """
        Find the subset of vtags that maximizes the p(x|subset_vtags)
        and use that for the value. 
        """

        if any([x in vtags for x in [tag, tag[0:-1], tag[0:-2]]]):
            return 1 - 1e-8
        elif any([x in itags for x in [tag, tag[0:-1], tag[0:-2]]]):        
            return 1e-8

            
        l = [[subset_vtags, naive_bayes.model.p_can_see_tag(self, tag, subset_vtags, itags)]
             for subset_vtags in math2d.powerset(vtags) 
             if 1 <= len(subset_vtags) <= 3]
        l = na.array(l)
        if len(l) == 0:
            return naive_bayes.model.p_can_see_tag(self, tag, [], itags)
        else:
            best = na.argmax(l[:, 1])
            O_mat_entry = l[best][1]
            assert 0 <= O_mat_entry <= 1, O_mat_entry
            return O_mat_entry