forked from smc/mlmorph
-
Notifications
You must be signed in to change notification settings - Fork 0
/
num.fst
112 lines (94 loc) · 5.71 KB
/
num.fst
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#include "symbols.fst"
% Numbers represented in text format has limited vocabulary because of obvious reason
% The lexicon for that is given below.
$half$ = അര <half>
$n1$ = ഒന്ന് | ഒന്നു്
% Using ഒര് here so that it becomes ഒരു after phonology treatment. Using ഒരു will cause gemination like
% ഒരുക്കോടി
$n1-compound$ = {ഒന്ന്}: {ഒര്}
$n0$ = പൂജ്യം <zero>
$n2-9$ = (രണ്ട്|രണ്ടു്|മൂന്ന്|മൂന്നു്|നാല്|നാലു്|അഞ്ച്|അഞ്ചു്|ആറ്|ആറു്|ഏഴ്|ഏഴു്|എട്ട്|എട്ടു്|ഒമ്പത്|ഒമ്പതു്)
% ones
$N1$ = ( $n1$ | $n2-9$ ) <ones>
$N1-compound$ = ( $n1-compound$ | $n2-9$ ) <ones>
$n10-90$ = {ഒന്ന് }: {പത്ത്} | {ഒന്ന് }: {പത്തു്} | \
{രണ്ട് } : {ഇരുപത്} |\
{മൂന്ന് } : {മുപ്പത്} |\
{നാല് } : {നാല്പത്} |\
{അഞ്ച് } : {അമ്പത്} |\
{ആറ് } : {അറുപത്} |\
{ഏഴ് } : {എഴുപത്} |\
{എട്ട് } : {എൺപത്} |\
{ഒമ്പത് } : {തൊണ്ണൂറ്}
$n11-19$ = { ഒന്ന് <tens> ഒന്ന്} : {പതിനൊന്ന്} |\
{ ഒന്ന് <tens> രണ്ട്} : {പന്ത്രണ്ട്} |\
{ ഒന്ന് <tens> മൂന്ന്} : {പതിമൂന്ന്} |\
{ ഒന്ന് <tens> നാല്} : {പതിനാല്} |\
{ ഒന്ന് <tens> അഞ്ച്} : {പതിനഞ്ച്} |\
{ ഒന്ന് <tens> ആറ്} : {പതിനാറ്} |\
{ ഒന്ന് <tens> ഏഴ്} : {പതിനേഴ്} |\
{ ഒന്ന് <tens> എട്ട്} : {പതിനെട്ട്} |\
{ ഒന്ന് <tens> ഒമ്പത്} : {പത്തൊമ്പത്}
$n20-90-compound$ = {രണ്ട് } : {ഇരുപത്ത[ി്]} |\
{മൂന്ന്} : {മുപ്പത്ത[ി്]} |\
{നാല്} : {നാല്പത്ത[ി്]} |\
{നാല്} : {നാൽപത്ത[ി്]} |\
{അഞ്ച്} : {അമ്പത്ത[ി്]} |\
{അഞ്ച്} : {അൻപത്ത[ി്]} |\
{ആറ്} : {അറുപത്ത[ി്]} |\
{ഏഴ്} : {എഴുപത്ത[ി്]} |\
{എട്ട്} : {എൺപത്ത[ി്]} |\
{എട്ട്} : {എമ്പത്ത[ി്]} |\
{ഒമ്പത്} : {തൊണ്ണൂറ്റ[ി്]}
% FIXME: The above rule can create നാല്പത്ത്മൂന്ന് നാല്പത്ത്നാല് for 3 and 4. Rest is fine.
% tens
$N10$ = ( $n10-90$ <tens> ) | \
( ( $n11-19$ <ones> ) | ( $n20-90-compound$ <tens> ) $N1$ )
% hundreds
$n100-900$ = {ഒന്ന്} : {നൂറ്} | {ഒന്ന്} : {നൂറു്} |\
{രണ്ട്} : {ഇരുനൂറ്} | {രണ്ട്} : {ഇരുനൂറു്} |\
{മൂന്ന്} : {മുന്നൂറ്} | {മൂന്ന്} : {മുന്നൂറു്} |\
{നാല്} : {നാനൂറ്} | {നാല്} : {നാനൂറു്} |\
{അഞ്ച്} : {അഞ്ഞൂറ്} | {അഞ്ച്} : {അഞ്ഞൂറു്} |\
{ആറ്} : {അറുനൂറ്} | {ആറ്} : {അറുനൂറു്} |\
{ഏഴ്} : {എഴുനൂറ്} | {ഏഴ്} : {എഴുനൂറു്} |\
{എട്ട്} : {എണ്ണൂറ്} | {എട്ട്} : {എണ്ണൂറു്} | \
{ഒമ്പത്} : {തൊള്ളായിരം}
$n100-900-compound$ = {ഒന്ന്} : {നൂറ്റ[ി്]} |\
{ഒന്ന്} : {ഒരുനൂറ്റ[ി്]} |\
{രണ്ട്} : {ഇരുനൂറ്റ[ി്]} |\
{മൂന്ന്} : {മുന്നൂറ്റ[ി്]} |\
{നാല്} : {നാനൂറ്റ[ി്]} |\
{അഞ്ച്} : {അഞ്ഞൂറ്റ[ി്]} |\
{ആറ്} : {അറുനൂറ്റ[ി്]} |\
{ഏഴ്} : {എഴുനൂറ്റ[ി്]} |\
{എട്ട്} : {എണ്ണൂറ്റ[ി്]} |\
{ഒമ്പത്} : {തൊള്ളായിരത്ത[ി്]}
$N100$ = ( $n100-900$ <hundreds> ) |\
( $n100-900-compound$ <hundreds> ($N10$|$N1$) )
% thousands
$n1k$ = {} : {ആയിര} |\
{ ഒന്ന് } : {ഒരായിര} |\
{ മൂന്ന് } : {മുവ്വായിര} |\
{ അഞ്ച്} : {അയ്യായിര} |\
{ എട്ട് } : {എണ്ണായിര} |\
{ ഒന്ന് <tens>} : {പതിനായിര} |\
{ രണ്ട് <tens>} : {ഇരുപതിനായിര} |\
{ മൂന്ന് <tens>} : {മുപ്പതിനായിര} |\
{ നാല് <tens>} : {നാല്പതിനായിര} |\
{ അഞ്ച് <tens>} : {അമ്പതിനായിര} |\
{ ആറ് <tens>} : {അറുപതിനായിര} |\
{ ഏഴ് <tens>} : {എഴുപതിനായിര} |\
{ എട്ട് <tens>} : {എൺപതിനായിര}
$N1K$ = ( ( $N10$|$N1$ )? $n1k$ <>:ം ) <thousands>
$n1k-compound$ = $n1k$ (<>:{ത്തി} | <>:{ത്ത്} )
$N1K-ones-tens-hundreds$ = ( $N10$|$N1$ )? $n1k-compound$ <thousands> ($N100$|$N10$|$N1$)
$N1K$ = $N1K$ | $N1K-ones-tens-hundreds$
$n1l$ = {} : {ലക്ഷം}
$n1l-compound$ = {} : {ലക്ഷത്ത[ി്]}
$N1L$ = (( $N1-compound$|$N10$|$N100$|$N1K$ )? $n1l$ <lakhs>) |\
(( $N1-compound$|$N10$|$N100$|$N1K$)? $n1l-compound$ <lakhs> ($N1K$|$N100$|$N10$|$N1$))
$n1c$ = {}:{കോടി}
$N1C$ = ( $N1-compound$|$N10$|$N100$|$N1K$|$N1L$ )? $n1c$ <crores> ($N1L$|$N1K$|$N100$|$N10$|$N1$)?
$numbers$ = ( $n0$ | $N1$ | $N10$ | $N100$ | $N1K$ | $N1L$ | $N1C$ ) $half$?
<LB> $numbers$ <cardinal><RB>