Skip to content

Commit 1b8b2ae

Browse files
committed
Samvruthokaram pronunciations in numbers normalized to ് chandrakkala form
ഏഴു -> ഏഴ് മൂന്നു ദവസം -> മൂന്ന് ദിവസം
1 parent 4323f98 commit 1b8b2ae

2 files changed

Lines changed: 27 additions & 2 deletions

File tree

libindic/normalizer/rules/normalizer.ml.yaml

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,12 @@ normalize_vowelsigns:
2424
normalize_alternateforms:
2525
"ൻ്റ": "ന്റ"
2626
"ൎയ്യ": "ര്യ"
27-
"അധ്യാപ": "അദ്ധ്യാപ"
27+
"ദ്ധ്യ" : "ധ്യ" # മാധ്യമം, സാധ്യം, അധ്യാപനം, സാധ്യത, മധ്യം, മധ്യസ്ഥത, അധ്യായം
28+
"വിദ്യാർത്ഥി": "വിദ്യാർഥി"
2829
"": ""
2930
"ു്": ""
3031

32+
3133
common_mistakes: # Regex patterns for common mistakes in Malayalam raw corpus, ASR/OCR outputs
3234
'(“|”)': '"' # Replace Unicode left/right double quotes with ASCII double quotes
3335
"(‘|’)": "'" # Replace Unicode left/right single quotes with ASCII single quotes/apostraphe
@@ -67,4 +69,19 @@ common_mistakes: # Regex patterns for common mistakes in Malayalam raw corpus, A
6769
'ൻറും' : 'ന്റും'
6870
'ൻറ്': 'ന്റ്'
6971
'ുൻപോൾ' : 'ുമ്പോൾ'
70-
'ംഗ്([{PUNCTUATION}\s]|$)': 'ങ്ങ്\1' # ബീഗിംഗ് -> ബീജിങ്ങ്; കമ്പ്യൂട്ടിംഗ് -> കമ്പ്യൂട്ടിങ്ങ്. Work only if it is at string end or followed by space
72+
'ുൻപോൾ' : 'ുമ്പോൾ'
73+
'(ഒ|അ)മ്പത' : '\1ൻപത'
74+
'ംഗ്([{PUNCTUATION}\s]|$)': 'ങ്ങ്\1' # ബീഗിംഗ് -> ബീജിങ്ങ്; കമ്പ്യൂട്ടിംഗ് -> കമ്പ്യൂട്ടിങ്ങ്. Work only if it is at string end or followed by space or punctuation
75+
# Samvruthokaram in script as ു and ് -> ്
76+
'(എ|െ|ഒ|മൂ)ന്നു([{PUNCTUATION}\s]|$)': '\1ന്ന്\2' # എന്നു -> എന്ന്; െന്നു -> െന്ന് ; ഒന്നു -> ഒന്ന്
77+
'രണ്ടു([{PUNCTUATION}\s]|$)': 'രണ്ട്\1'
78+
'നാലു([{PUNCTUATION}\s]|$)': 'നാല്\1'
79+
'അഞ്ചു([{PUNCTUATION}\s]|$)': 'അഞ്ച്\1'
80+
'ആറു([{PUNCTUATION}\s]|$)' : 'ആറ്\1'
81+
'ഏഴു([{PUNCTUATION}\s]|$)' : 'ഏഴ്\1'
82+
'എട്ടു([{PUNCTUATION}\s]|$)' : 'എട്ട്\1'
83+
'(ഒ|അ)ൻപതു([{PUNCTUATION}\s]|$)' : '\1ൻപത്\2'
84+
'പത്തു([{PUNCTUATION}\s]|$)' : 'പത്ത്\1'
85+
'എൺപതു([{PUNCTUATION}\s]|$)' : 'എൺപത്\1'
86+
'നൂറു([{PUNCTUATION}\s]|$)' : 'നൂറ്\1'
87+
'തൊണ്ണൂറു([{PUNCTUATION}\s]|$)' : 'തൊണ്ണൂറ്\1'

libindic/normalizer/tests/test_normalizer.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,14 @@ def test_normalize(self):
7777
self.assertEqual(normalize('പിംഗ് '), "പിങ്ങ് ")
7878
self.assertEqual(normalize('ദി കിംഗ്.', remove_punctuations=False), "ദി കിങ്ങ്.")
7979
self.assertEqual(normalize('ദി കിംഗ്!', remove_punctuations=True), "ദി കിങ്ങ്")
80+
self.assertEqual(normalize('വന്നു എന്നു പറഞ്ഞു', remove_punctuations=True), "വന്നു എന്ന് പറഞ്ഞു")
81+
self.assertEqual(normalize('വന്നിട്ടില്ലെന്നു പറഞ്ഞു', remove_punctuations=True), "വന്നിട്ടില്ലെന്ന് പറഞ്ഞു")
82+
self.assertEqual(normalize('ഒന്നു പോലെ', remove_punctuations=True), "ഒന്ന് പോലെ")
83+
self.assertEqual(normalize('മൂന്നു', remove_punctuations=False), "മൂന്ന്")
84+
self.assertEqual(normalize('ഒന്നു-രണ്ടു', remove_punctuations=False), "ഒന്ന്-രണ്ട്")
85+
self.assertEqual(normalize('ഒമ്പതു ഒമ്പതാമത്തെ', remove_punctuations=False), "ഒൻപത് ഒൻപതാമത്തെ")
86+
self.assertEqual(normalize('ഏഴു സ്വരങ്ങളും', remove_punctuations=False), "ഏഴ് സ്വരങ്ങളും")
87+
8088

8189
def test_multiline_string(self):
8290
expected = """കുഞ്ചൻ നമ്പ്യാർ

0 commit comments

Comments
 (0)