test_error_rate.py 1.9 KB
Newer Older
Y
yangyaming 已提交
1
# -*- coding: utf-8 -*-
Y
yangyaming 已提交
2 3 4 5 6
"""Test error rate."""
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

Y
yangyaming 已提交
7 8 9 10 11
import unittest
import error_rate


class TestParse(unittest.TestCase):
Y
yangyaming 已提交
12
    def test_wer_1(self):
Y
yangyaming 已提交
13 14 15 16 17
        ref = 'i UM the PHONE IS i LEFT THE portable PHONE UPSTAIRS last night'
        hyp = 'i GOT IT TO the FULLEST i LOVE TO portable FROM OF STORES last night'
        word_error_rate = error_rate.wer(ref, hyp)
        self.assertTrue(abs(word_error_rate - 0.769230769231) < 1e-6)

Y
yangyaming 已提交
18 19 20 21 22 23 24 25 26 27 28 29 30 31
    def test_wer_2(self):
        ref = 'i UM the PHONE IS i LEFT THE portable PHONE UPSTAIRS last night'
        word_error_rate = error_rate.wer(ref, ref)
        self.assertEqual(word_error_rate, 0.0)

    def test_wer_3(self):
        ref = ' '
        hyp = 'Hypothesis sentence'
        try:
            word_error_rate = error_rate.wer(ref, hyp)
        except Exception as e:
            self.assertTrue(isinstance(e, ValueError))

    def test_cer_1(self):
Y
yangyaming 已提交
32 33 34 35 36
        ref = 'werewolf'
        hyp = 'weae  wolf'
        char_error_rate = error_rate.cer(ref, hyp)
        self.assertTrue(abs(char_error_rate - 0.25) < 1e-6)

Y
yangyaming 已提交
37 38 39 40 41 42
    def test_cer_2(self):
        ref = 'werewolf'
        char_error_rate = error_rate.cer(ref, ref)
        self.assertEqual(char_error_rate, 0.0)

    def test_cer_3(self):
Y
yangyaming 已提交
43 44 45 46 47
        ref = u'我是中国人'
        hyp = u'我是 美洲人'
        char_error_rate = error_rate.cer(ref, hyp)
        self.assertTrue(abs(char_error_rate - 0.6) < 1e-6)

Y
yangyaming 已提交
48 49 50 51 52 53 54 55 56 57 58 59 60
    def test_cer_4(self):
        ref = u'我是中国人'
        char_error_rate = error_rate.cer(ref, ref)
        self.assertFalse(char_error_rate, 0.0)

    def test_cer_5(self):
        ref = ''
        hyp = 'Hypothesis'
        try:
            char_error_rate = error_rate.cer(ref, hyp)
        except Exception as e:
            self.assertTrue(isinstance(e, ValueError))

Y
yangyaming 已提交
61 62 63

if __name__ == '__main__':
    unittest.main()