# encoding: utf-8 import editdistance import argparse import re def compute_wer_txt(hypo_f, ref_f): f = open(hypo_f) hypos = f.readlines() f.close() f = open(ref_f) refs = f.readlines() f.close() err,cnt = 0,0 print("Start Computing WER") for i in range(len(hypos)): hypo = hypos[i].strip().split()[:-1] ref = refs[i].strip().split()[:-1] e = editdistance.eval(ref, hypo) #print(ref_token,predict_token,e/float(len(ref_token)+0.001)) err += e cnt += len(ref) print(err,cnt,float(float(err+0.0) / float(cnt+0.01)*100)) if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--hypo', '--h', type=str, required=True, help='Input file path') parser.add_argument('--ref', '--r', type=str, required=True) args = parser.parse_args() compute_wer_txt(args.hypo, args.ref)