Exemple #1
0
    def validate(model, iteration=None):

        def f1(data, name):
            print
            print 'Phrase-based F1:', name
            f1 = F1()
            for i, x in enumerate(iterview(data)):
                predict = extract_contiguous(model(x))
                truth = extract_contiguous(x.truth)
                # (i,begin,end) uniquely identifies the span
                for (label, begins, ends) in truth:
                    f1.add_relevant(label, (i, begins, ends))
                for (label, begins, ends) in predict:
                    f1.add_retrieved(label, (i, begins, ends))
            print
            return f1.scores(verbose=True)

        llh = sum(map(crf.likelihood, iterview(train, msg='llh'))) / len(train)

        with lineplot('llh') as d:
            d.append(llh)

        print
        print 'likelihood:', llh
        print
Exemple #2
0
    def validate(model, iteration=None):

        def f1(data, name):
            print
            print 'Phrase-based F1:', name
            f1 = F1()
            for i, x in enumerate(iterview(data)):
                predict = extract_contiguous(model(x))
                truth = extract_contiguous(x.truth)
                # (i,begin,end) uniquely identifies the span
                for (label, begins, ends) in truth:
                    f1.add_relevant(label, (i, begins, ends))
                for (label, begins, ends) in predict:
                    f1.add_retrieved(label, (i, begins, ends))
            print
            return f1.scores(verbose=True)

        llh = sum(map(crf.likelihood, iterview(train, msg='llh'))) / len(train)

        with lineplot('llh') as d:
            d.append(llh)

        print
        print 'likelihood:', llh
        print
Exemple #3
0
    def validate(model, iteration=None):

        def f1(data, name):
            print
            print 'Phrase-based F1:', name
            f1 = F1()
            for i, x in enumerate(iterview(data)):
                predict = extract_contiguous(model(x))
                truth = extract_contiguous(x.truth)
                # (i,begin,end) uniquely identifies the span
                for (label, begins, ends) in truth:
                    f1.add_relevant(label, (i, begins, ends))
                for (label, begins, ends) in predict:
                    f1.add_retrieved(label, (i, begins, ends))
            print
            return f1.scores(verbose=True)

        def weight_sparsity(W, t=0.0001):
            a = (np.abs(W) > t).sum()
            b = W.size
            print '%.2f (%s/%s) sparsity' % (a*100.0/b, a, b)

#        f1(train, name='TRAIN')
#        if test:
#            f1(test, name='TEST')

#        print
#        weight_sparsity(model.W)
        llh = sum(map(crf.likelihood, iterview(train, msg='llh'))) / len(train)

        from arsenal.viz.util import lineplot
        with lineplot('llh') as d:
            d.append(llh)

        print
        print 'likelihood:', llh
        print
        print