yakutmorph 0.0.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
tests/__init__.py ADDED
File without changes
@@ -0,0 +1,62 @@
1
+ import unittest
2
+ from yakutmorph.tokenizers import YakutTokenizer
3
+
4
+
5
+ class TestYakutTokenizer(unittest.TestCase):
6
+
7
+ def setUp(self):
8
+ self.tokenizer = YakutTokenizer()
9
+
10
+ def test_phone(self):
11
+ text = 'Сиһилии билсиҥ: https://zhataytekh.ru саайтка, +7(4114)426407, +7(4113)427303 төлөпүөнүнэн.'
12
+ expected = [
13
+ ('Сиһилии', 'title'), ('билсиҥ', 'lowercase'), (':', 'colon'), ('https://zhataytekh.ru', 'uri'),
14
+ ('саайтка', 'lowercase'), (',', 'comma'), ('+7(4114)426407', 'phone'), (',', 'comma'),
15
+ ('+7(4113)427303', 'phone'), ('төлөпүөнүнэн', 'lowercase'), ('.', 'period')
16
+ ]
17
+ self.assertEqual(self.tokenizer.tokenize(text), expected)
18
+
19
+ def test_date(self):
20
+ text = 'дата 01/04/2024'
21
+ expected = [
22
+ ('дата', 'lowercase'), ('01/04/2024', 'date')
23
+ ]
24
+ self.assertEqual(self.tokenizer.tokenize(text), expected)
25
+
26
+ def test_number(self):
27
+ text = '1949 сыллаахха оруобуна ахсынньы 10 күнүгэр аан бастаан көрдөрүллүбүт эбит.'
28
+ expected = [
29
+ ('1949', 'number'), ('сыллаахха', 'lowercase'), ('оруобуна', 'lowercase'), ('ахсынньы', 'lowercase'),
30
+ ('10', 'number'), ('күнүгэр', 'lowercase'), ('аан', 'lowercase'), ('бастаан', 'lowercase'),
31
+ ('көрдөрүллүбүт', 'lowercase'), ('эбит', 'lowercase'), ('.', 'period')
32
+ ]
33
+ self.assertEqual(self.tokenizer.tokenize(text), expected)
34
+
35
+ def test_url(self):
36
+ text = 'Хаартыска https://www.trud.ru саайтан.'
37
+ expected = [
38
+ ('Хаартыска', 'title'), ('https://www.trud.ru', 'uri'), ('саайтан', 'lowercase'), ('.', 'period')
39
+ ]
40
+ self.assertEqual(self.tokenizer.tokenize(text), expected)
41
+
42
+ def test_email(self):
43
+ text = 'Кыттааччыларгыт тустарынан иһитиннэриини sleptsova191_@mail.ru ыытыҥ.'
44
+ expected = [
45
+ ('Кыттааччыларгыт', 'title'), ('тустарынан', 'lowercase'), ('иһитиннэриини', 'lowercase'),
46
+ ('sleptsova191_@mail.ru', 'email'), ('ыытыҥ', 'lowercase'), ('.', 'period')
47
+ ]
48
+ self.assertEqual(self.tokenizer.tokenize(text), expected)
49
+
50
+ def test_roman(self):
51
+ text = 'Ити саха хомустара бары XIX үйэ бүтүүтэ – XX үйэ бастакы аҥаарыгар оҥоһуллубуттар.'
52
+ expected = [
53
+ ('Ити', 'title'), ('саха', 'lowercase'), ('хомустара', 'lowercase'), ('бары', 'lowercase'),
54
+ ('XIX', 'roman'), ('үйэ', 'lowercase'), ('бүтүүтэ', 'lowercase'), ('–', 'dash'), ('XX', 'roman'),
55
+ ('үйэ', 'lowercase'), ('бастакы', 'lowercase'), ('аҥаарыгар', 'lowercase'),
56
+ ('оҥоһуллубуттар', 'lowercase'), ('.', 'period')
57
+ ]
58
+ self.assertEqual(self.tokenizer.tokenize(text), expected)
59
+
60
+
61
+ if __name__ == '__main__':
62
+ unittest.main()
@@ -0,0 +1,22 @@
1
+ import unittest
2
+ from yakutmorph.transducers import YakutTransducer
3
+
4
+
5
+ class TestYakutTransducer(unittest.TestCase):
6
+
7
+ def setUp(self):
8
+ self.transducer = YakutTransducer()
9
+
10
+ def test_analyse(self):
11
+ surface_form = 'дьоннор'
12
+ analysis_form = ['дьон^N+PL']
13
+ self.assertEqual(self.transducer.analyse(surface_form), analysis_form)
14
+
15
+ def test_generate(self):
16
+ analysis_form = 'дьон^N+PL'
17
+ surface_form = ['дьоннор']
18
+ self.assertEqual(self.transducer.generate(analysis_form), surface_form)
19
+
20
+
21
+ if __name__ == '__main__':
22
+ unittest.main()
yakutmorph/__init__.py ADDED
File without changes
File without changes
Binary file
Binary file
@@ -0,0 +1,87 @@
1
+ morph_mapping:
2
+ ^VRBLZ: ^V
3
+ ^NMLZ: ^N
4
+ ^ADJZ: ^Adj
5
+ ^ADVZ: ^Adv
6
+ +CONV_COND: +PART
7
+ +PART_PRES: +PART
8
+ +PART_PAST: +PART
9
+ +PART_FUT: +PART
10
+ ^POSS: ^Pron
11
+
12
+ token_type_mapping:
13
+ uri: ^PN
14
+ email: ^PN
15
+ phone: ^PN
16
+ date: ^Adv
17
+ number: ^Num
18
+ roman: ^Num
19
+ hyphen: <HYP>
20
+ comma: <COMMA>
21
+ colon: <COMMA>
22
+ period: <STOP>
23
+ ellipsis: <STOP>
24
+ question: <STOP>
25
+ exclamation: <STOP>
26
+ semicolon: <STOP>
27
+ quotation: <SYM>
28
+ bracket: <SYM>
29
+ dash: <SYM>
30
+ symbol: <SYM>
31
+ unknown: ^UNK
32
+
33
+ feature_morphs:
34
+ - ^Adv
35
+ - ^ADVZ
36
+ - ^Adj
37
+ - ^ADJZ
38
+ - ^aux
39
+ - ^CONJ
40
+ - ^DEF
41
+ - ^IMIT
42
+ - ^INJ
43
+ - ^N
44
+ - ^NMLZ
45
+ - ^Num
46
+ - ^PN
47
+ - ^MOD
48
+ - ^ORD
49
+ - ^Part
50
+ - ^POST
51
+ - ^POSS
52
+ - ^Pron
53
+ - ^UNK
54
+ - ^V
55
+ - ^VRBLZ
56
+ - +1SG
57
+ - +2SG
58
+ - +1PL
59
+ - +2PL
60
+ - +3SG
61
+ - +3PL
62
+ - +ABL
63
+ - +ACC
64
+ - +COMIT
65
+ - +COMP
66
+ - +CONV
67
+ - +DAT
68
+ - +INST
69
+ - +LOC
70
+ - +CONV_COND
71
+ - +PART_PAST
72
+ - +PART_PRES
73
+ - +PART_FUT
74
+ - +PL
75
+ - +POSS.1SG
76
+ - +POSS.2SG
77
+ - +POSS.3SG
78
+ - +POSS.1PL
79
+ - +POSS.2PL
80
+ - +POSS.3PL
81
+ - +PRTV
82
+ - +PST.1SG
83
+ - +PST.2SG
84
+ - +PST.3SG
85
+ - +PST.1PL
86
+ - +PST.2PL
87
+ - +PST.3PL