Example #1
0
def main(args):
    with open(args.pk_file1, 'rb') as fin:
        hyps1 = pickle.load(fin)
        refs = pickle.load(fin)
        pickle.load(fin)  # hypscores
        pickle.load(fin)  # refscores
        numphones = pickle.load(fin)
    with open(args.pk_file2, 'rb') as fin:
        hyps2 = pickle.load(fin)
    assert len(hyps1) == len(hyps2), 'hyps have different lengths'

    differ = difflib.Differ()

    num_diff = 0
    hyp1_better = 0
    hyp2_better = 0
    for (hyp1, hyp2, ref) in zip(hyps1, hyps2, refs):
        if hyp1 == hyp2:
            continue
        num_diff += 1

        label1 = 'hyp1:'
        label2 = 'hyp2:'

        if args.score:
            dist1, _, _, _, _ = ed.edit_distance(ref, hyp1)
            dist2, _, _, _, _ = ed.edit_distance(ref, hyp2)
            if dist1 < dist2:
                hyp1_better += 1
                label1 = blue(label1)
                label2 = red(label2)
            else:
                hyp2_better += 1
                label1 = red(label1)
                label2 = blue(label2)

        print label1, collapse_seq(hyp1)
        print label2, collapse_seq(hyp2)
        pprint(list(differ.compare([collapse_seq(hyp1)],
                                   [collapse_seq(hyp2)])))
        print green(' ref:'), collapse_seq(ref)
        print '-' * 80

    if args.score:
        print 'hyp1 better: %d' % hyp1_better
        print 'hyp2 better: %d' % hyp2_better
    print 'Differ on %d/%d utts' % (num_diff, len(refs))
Example #2
0
def main(args):
    with open(args.pk_file1, 'rb') as fin:
        hyps1 = pickle.load(fin)
        refs = pickle.load(fin)
        pickle.load(fin)  # hypscores
        pickle.load(fin)  # refscores
        numphones = pickle.load(fin)
    with open(args.pk_file2, 'rb') as fin:
        hyps2 = pickle.load(fin)
    assert len(hyps1) == len(hyps2), 'hyps have different lengths'

    differ = difflib.Differ()

    num_diff = 0
    hyp1_better = 0
    hyp2_better = 0
    for (hyp1, hyp2, ref) in zip(hyps1, hyps2, refs):
        if hyp1 == hyp2:
            continue
        num_diff += 1

        label1 = 'hyp1:'
        label2 = 'hyp2:'

        if args.score:
            dist1, _, _, _, _ = ed.edit_distance(ref, hyp1)
            dist2, _, _, _, _ = ed.edit_distance(ref, hyp2)
            if dist1 < dist2:
                hyp1_better += 1
                label1 = blue(label1)
                label2 = red(label2)
            else:
                hyp2_better += 1
                label1 = red(label1)
                label2 = blue(label2)

        print label1, collapse_seq(hyp1)
        print label2, collapse_seq(hyp2)
        pprint(list(differ.compare([collapse_seq(hyp1)], [collapse_seq(hyp2)])))
        print green(' ref:'), collapse_seq(ref)
        print '-' * 80

    if args.score:
        print 'hyp1 better: %d' % hyp1_better
        print 'hyp2 better: %d' % hyp2_better
    print 'Differ on %d/%d utts' % (num_diff, len(refs))
Example #3
0
import numpy as np
from decoder_utils import load_data, load_nnet, decode, int_to_char,\
        collapse_seq, load_char_map

if __name__ == '__main__':
    print 'Loading data'
    fnum = 1
    data_dict, alis, keys = load_data(fnum)
    print 'Loading neural net'
    rnn = load_nnet()

    data, labels = data_dict[keys[0]], np.array(alis[keys[0]], dtype=np.int32)

    probs = rnn.costAndGrad(data, labels)
    probs = np.log(probs.astype(np.float64) + 1e-30)

    hyp, hypScore, refScore = decode(probs,
                                     alpha=1.0,
                                     beta=0.0,
                                     beam=200,
                                     method='bg')

    char_map = load_char_map()
    if labels is not None:
        print '  labels:', collapse_seq(int_to_char(labels, char_map))
    print ' top hyp:', collapse_seq(int_to_char(hyp, char_map))
    print 'score:', hypScore
    #print 'ref score:', refScore
Example #4
0
import numpy as np
from decoder_utils import load_data, load_nnet, decode, int_to_char, collapse_seq, load_char_map

if __name__ == "__main__":
    print "Loading data"
    fnum = 1
    data_dict, alis, keys = load_data(fnum)
    print "Loading neural net"
    rnn = load_nnet()

    data, labels = data_dict[keys[0]], np.array(alis[keys[0]], dtype=np.int32)

    probs = rnn.costAndGrad(data, labels)
    probs = np.log(probs.astype(np.float64) + 1e-30)

    hyp, hypScore, refScore = decode(probs, alpha=1.0, beta=0.0, beam=200, method="bg")

    char_map = load_char_map()
    if labels is not None:
        print "  labels:", collapse_seq(int_to_char(labels, char_map))
    print " top hyp:", collapse_seq(int_to_char(hyp, char_map))
    print "score:", hypScore
    # print 'ref score:', refScore
Example #5
0
import numpy as np
from decoder_utils import load_data, load_nnet, int_to_char,\
        collapse_seq, decode, load_char_map

if __name__ == '__main__':
    print 'Loading data'
    fnum = 1
    data_dict, alis, keys = load_data(fnum)
    print 'Loading neural net'
    rnn = load_nnet()

    for k in range(0, 10):
        data, labels = data_dict[keys[k]], np.array(alis[keys[k]],
                dtype=np.int32)

        probs = rnn.costAndGrad(data, labels)
        probs = np.log(probs.astype(np.float64) + 1e-30)

        hyp, hypScore, refscore = decode(probs,
                alpha=0.0, beta=0.0, beam=40, method='clm2')
        hyp_pmax, _, _ = decode(probs,
                alpha=1.0, beta=0.0, method='pmax')

        char_map = load_char_map()
        if labels is not None:
            print '  labels:', collapse_seq(int_to_char(labels, char_map))
        print ' top hyp:', collapse_seq(int_to_char(hyp, char_map))
        print 'pmax hyp:', collapse_seq(int_to_char(hyp_pmax, char_map))
        print 'score:', hypScore
        #print 'ref score:', refScore