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))
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
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
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