Skip to content

Commit

Permalink
Samvruthokaram pronunciations in numbers normalized to ് chandrakkala…
Browse files Browse the repository at this point in the history
… form

ഏഴു -> ഏഴ്
മൂന്നു ദവസം -> മൂന്ന് ദിവസം
  • Loading branch information
kavyamanohar committed Oct 19, 2024
1 parent 4323f98 commit 1b8b2ae
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 2 deletions.
21 changes: 19 additions & 2 deletions libindic/normalizer/rules/normalizer.ml.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,12 @@ normalize_vowelsigns:
normalize_alternateforms:
"ൻ്റ": "ന്റ"
"ൎയ്യ": "ര്യ"
"അധ്യാപ": "അദ്ധ്യാപ"
"ദ്ധ്യ" : "ധ്യ" # മാധ്യമം, സാധ്യം, അധ്യാപനം, സാധ്യത, മധ്യം, മധ്യസ്ഥത, അധ്യായം
"വിദ്യാർത്ഥി": "വിദ്യാർഥി"
"": ""
"ു്": ""


common_mistakes: # Regex patterns for common mistakes in Malayalam raw corpus, ASR/OCR outputs
'(“|”)': '"' # Replace Unicode left/right double quotes with ASCII double quotes
"(‘|’)": "'" # Replace Unicode left/right single quotes with ASCII single quotes/apostraphe
Expand Down Expand Up @@ -67,4 +69,19 @@ common_mistakes: # Regex patterns for common mistakes in Malayalam raw corpus, A
'ൻറും' : 'ന്റും'
'ൻറ്': 'ന്റ്'
'ുൻപോൾ' : 'ുമ്പോൾ'
'ംഗ്([{PUNCTUATION}\s]|$)': 'ങ്ങ്\1' # ബീഗിംഗ് -> ബീജിങ്ങ്; കമ്പ്യൂട്ടിംഗ് -> കമ്പ്യൂട്ടിങ്ങ്. Work only if it is at string end or followed by space
'ുൻപോൾ' : 'ുമ്പോൾ'
'(ഒ|അ)മ്പത' : '\1ൻപത'
'ംഗ്([{PUNCTUATION}\s]|$)': 'ങ്ങ്\1' # ബീഗിംഗ് -> ബീജിങ്ങ്; കമ്പ്യൂട്ടിംഗ് -> കമ്പ്യൂട്ടിങ്ങ്. Work only if it is at string end or followed by space or punctuation
# Samvruthokaram in script as ു and ് -> ്
'(എ|െ|ഒ|മൂ)ന്നു([{PUNCTUATION}\s]|$)': '\1ന്ന്\2' # എന്നു -> എന്ന്; െന്നു -> െന്ന് ; ഒന്നു -> ഒന്ന്
'രണ്ടു([{PUNCTUATION}\s]|$)': 'രണ്ട്\1'
'നാലു([{PUNCTUATION}\s]|$)': 'നാല്\1'
'അഞ്ചു([{PUNCTUATION}\s]|$)': 'അഞ്ച്\1'
'ആറു([{PUNCTUATION}\s]|$)' : 'ആറ്\1'
'ഏഴു([{PUNCTUATION}\s]|$)' : 'ഏഴ്\1'
'എട്ടു([{PUNCTUATION}\s]|$)' : 'എട്ട്\1'
'(ഒ|അ)ൻപതു([{PUNCTUATION}\s]|$)' : '\1ൻപത്\2'
'പത്തു([{PUNCTUATION}\s]|$)' : 'പത്ത്\1'
'എൺപതു([{PUNCTUATION}\s]|$)' : 'എൺപത്\1'
'നൂറു([{PUNCTUATION}\s]|$)' : 'നൂറ്\1'
'തൊണ്ണൂറു([{PUNCTUATION}\s]|$)' : 'തൊണ്ണൂറ്\1'
8 changes: 8 additions & 0 deletions libindic/normalizer/tests/test_normalizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,14 @@ def test_normalize(self):
self.assertEqual(normalize('പിംഗ് '), "പിങ്ങ് ")
self.assertEqual(normalize('ദി കിംഗ്.', remove_punctuations=False), "ദി കിങ്ങ്.")
self.assertEqual(normalize('ദി കിംഗ്!', remove_punctuations=True), "ദി കിങ്ങ്")
self.assertEqual(normalize('വന്നു എന്നു പറഞ്ഞു', remove_punctuations=True), "വന്നു എന്ന് പറഞ്ഞു")
self.assertEqual(normalize('വന്നിട്ടില്ലെന്നു പറഞ്ഞു', remove_punctuations=True), "വന്നിട്ടില്ലെന്ന് പറഞ്ഞു")
self.assertEqual(normalize('ഒന്നു പോലെ', remove_punctuations=True), "ഒന്ന് പോലെ")
self.assertEqual(normalize('മൂന്നു', remove_punctuations=False), "മൂന്ന്")
self.assertEqual(normalize('ഒന്നു-രണ്ടു', remove_punctuations=False), "ഒന്ന്-രണ്ട്")
self.assertEqual(normalize('ഒമ്പതു ഒമ്പതാമത്തെ', remove_punctuations=False), "ഒൻപത് ഒൻപതാമത്തെ")
self.assertEqual(normalize('ഏഴു സ്വരങ്ങളും', remove_punctuations=False), "ഏഴ് സ്വരങ്ങളും")


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

0 comments on commit 1b8b2ae

Please sign in to comment.