| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- # -*- coding: utf-8 -*-
- """
- Unit tests for nltk.metrics.aline
- """
- import unittest
- from nltk.metrics import aline
- class TestAline(unittest.TestCase):
- """
- Test Aline algorithm for aligning phonetic sequences
- """
- def test_aline(self):
- result = aline.align('θin', 'tenwis')
- expected = [
- [('θ', 't'), ('i', 'e'), ('n', 'n'), ('-', 'w'), ('-', 'i'), ('-', 's')]
- ]
- self.assertEqual(result, expected)
- result = aline.align('jo', 'ʒə')
- expected = [[('j', 'ʒ'), ('o', 'ə')]]
- self.assertEqual(result, expected)
- result = aline.align('pematesiweni', 'pematesewen')
- expected = [
- [
- ('p', 'p'),
- ('e', 'e'),
- ('m', 'm'),
- ('a', 'a'),
- ('t', 't'),
- ('e', 'e'),
- ('s', 's'),
- ('i', 'e'),
- ('w', 'w'),
- ('e', 'e'),
- ('n', 'n'),
- ('i', '-'),
- ]
- ]
- self.assertEqual(result, expected)
- result = aline.align('tuwθ', 'dentis')
- expected = [
- [
- ('t', 'd'),
- ('u', 'e'),
- ('w', '-'),
- ('-', 'n'),
- ('-', 't'),
- ('-', 'i'),
- ('θ', 's'),
- ]
- ]
- self.assertEqual(result, expected)
- def test_aline_delta(self):
- """
- Test aline for computing the difference between two segments
- """
- result = aline.delta('p', 'q')
- expected = 20.0
- self.assertEqual(result, expected)
- result = aline.delta('a', 'A')
- expected = 0.0
- self.assertEqual(result, expected)
|