Calculate sentence-level WER score. :param list seqs_hat: prediction :param list seqs_true: reference :return: average sentence-level WER score :rtype float
(self, seqs_hat, seqs_true)
| 226 | return float(sum(char_eds)) / sum(char_ref_lens) |
| 227 | |
| 228 | def calculate_wer(self, seqs_hat, seqs_true): |
| 229 | """Calculate sentence-level WER score. |
| 230 | |
| 231 | :param list seqs_hat: prediction |
| 232 | :param list seqs_true: reference |
| 233 | :return: average sentence-level WER score |
| 234 | :rtype float |
| 235 | """ |
| 236 | import editdistance |
| 237 | |
| 238 | word_eds, word_ref_lens = [], [] |
| 239 | for i, seq_hat_text in enumerate(seqs_hat): |
| 240 | seq_true_text = seqs_true[i] |
| 241 | hyp_words = seq_hat_text.split() |
| 242 | ref_words = seq_true_text.split() |
| 243 | word_eds.append(editdistance.eval(hyp_words, ref_words)) |
| 244 | word_ref_lens.append(len(ref_words)) |
| 245 | return float(sum(word_eds)) / sum(word_ref_lens) |