Hindi_ASR / replaceWords.py
cdactvm's picture
Update replaceWords.py
af7ecee verified
raw
history blame
9.04 kB
import re
def replace_words(sentence):
# Define a dictionary mapping a single word to a list of words or phrases
replacement_map = {
# Multiples of ten
'twenty': ['ट्वेंटी', 'बीस'],
'thirty': ['थर्टी', 'तीस'],
'forty': ['फोर्टी', 'चालीस'],
'fifty': ['फिफ्टी', 'पचास'],
'sixty': ['सिक्स्टी', 'साठ'],
'seventy': ['सेवंटी', 'सत्तर','सेवनटी','सेवेनटी','सेवांटी'],
'eighty': ['एटी', 'अस्सी'],
'ninety': ['नाइंटी', 'नब्बे'],
# Numbers from 11 to 19
'eleven': ['इलेवन', 'ग्यारह','इगारा'],
'twelve': ['ट्वेल्व', 'बारह'],
'thirteen': ['थर्टीन', 'तेरह','तेरा'],
'fourteen': ['फोर्टीन', 'चौदह'],
'fifteen': ['फिफ्टीन', 'पंद्रह','पंद्रा'],
'sixteen': ['सिक्स्टीन', 'सोलह','सोल्ला'],
'seventeen': ['सेवंटीन', 'सत्रह''सतरा'],
'eighteen': ['एटीन', 'अठारह''अठारा'],
'nineteen': ['नाइनटीन', 'उन्नीस','उन्नईस','उनाइस'],
# Numbers from 21 to 29
'twenty one': ['ट्वेंटी वन', 'इक्कीस'],
'twenty two': ['ट्वेंटी टू', 'बाईस'],
'twenty three': ['ट्वेंटी थ्री', 'तेईस'],
'twenty four': ['ट्वेंटी फोर', 'चौबीस'],
'twenty five': ['ट्वेंटी फाइव', 'पच्चीस'],
'twenty six': ['ट्वेंटी सिक्स', 'छब्बीस'],
'twenty seven': ['ट्वेंटी सेवन', 'सत्ताईस','सताईस'],
'twenty eight': ['ट्वेंटी एट', 'अट्ठाईस','अठ्ठाइस','अठ्ठाईस'],
'twenty nine': ['ट्वेंटी नाइन', 'उनतीस'],
# Numbers from 31 to 39
'thirty one': ['थर्टी वन', 'इकतीस','इक्तीस'],
'thirty two': ['थर्टी टू', 'बत्तीस'],
'thirty three': ['थर्टी थ्री', 'तेतीस','तैतीस'],
'thirty four': ['थर्टी फोर', 'चौंतीस','चौतीस'],
'thirty five': ['थर्टी फाइव', 'पैंतीस','पैतीस'],
'thirty six': ['थर्टी सिक्स', 'छत्तीस'],
'thirty seven': ['थर्टी सेवन', 'सैंतीस'],
'thirty eight': ['थर्टी एट', 'अड़तीस'],
'thirty nine': ['थर्टी नाइन', 'उनतालीस'],
# Numbers from 41 to 49
'forty one': ['फोर्टी वन', 'इकतालीस'],
'forty two': ['फोर्टी टू', 'बयालीस'],
'forty three': ['फोर्टी थ्री', 'तैंतालीस'],
'forty four': ['फोर्टी फोर', 'चौंतालीस'],
'forty five': ['फोर्टी फाइव', 'पैंतालीस'],
'forty six': ['फोर्टी सिक्स', 'छयालिस'],
'forty seven': ['फोर्टी सेवन', 'सैंतालीस'],
'forty eight': ['फोर्टी एट', 'अड़तालीस'],
'forty nine': ['फोर्टी नाइन', 'उनचास'],
# Numbers from 51 to 59
'fifty one': ['फिफ्टी वन', 'इक्यावन'],
'fifty two': ['फिफ्टी टू', 'बावन'],
'fifty three': ['फिफ्टी थ्री', 'तिरेपन','तिरपन','तीरपन'],
'fifty four': ['फिफ्टी फोर', 'चौवन'],
'fifty five': ['फिफ्टी फाइव', 'पचपन'],
'fifty six': ['फिफ्टी सिक्स', 'छप्पन','छपपन'],
'fifty seven': ['फिफ्टी सेवन', 'सत्तावन','संताबन','संतावन'],
'fifty eight': ['फिफ्टी एट', 'अट्ठावन','अंठावन'],
'fifty nine': ['फिफ्टी नाइन', 'उनसठ','उंसट','उंसठ'],
# Numbers from 61 to 69
'sixty one': ['सिक्स्टी वन', 'इकसठ'],
'sixty two': ['सिक्स्टी टू', 'बासठ'],
'sixty three': ['सिक्स्टी थ्री', 'तिरसठ'],
'sixty four': ['सिक्स्टी फोर', 'चौंसठ'],
'sixty five': ['सिक्स्टी फाइव', 'पैंसठ'],
'sixty six': ['सिक्स्टी सिक्स', 'छियासठ'],
'sixty seven': ['सिक्स्टी सेवन', 'सड़सठ'],
'sixty eight': ['सिक्स्टी एट', 'अड़सठ'],
'sixty nine': ['सिक्स्टी नाइन', 'उनहत्तर'],
# Numbers from 71 to 79
'seventy one': ['सेवंटी वन', 'इकहत्तर','इखत्तर','इकत्तर'],
'seventy two': ['सेवंटी टू', 'बहत्तर'],
'seventy three': ['सेवंटी थ्री', 'तिहत्तर','तियत्र','तियत्तर','तीहत्तर','तिहत्थर'],
'seventy four': ['सेवंटी फोर', 'चौहत्तर',],
'seventy five': ['सेवंटी फाइव', 'पचहत्तर','पछत्तर','पिछत्तर','पचहत्तर','पचत्तर'],
'seventy six': ['सेवंटी सिक्स', 'छिहत्तर','छीहत्तर'],
'seventy seven': ['सेवंटी सेवन', 'सतहत्तर','सतात्तर','सतत्तर','सतहत्थर'],
'seventy eight': ['सेवंटी एट', 'अठहत्तर','अठत्तर'],
'seventy nine': ['सेवंटी नाइन', 'उन्यासी','उनासी'],
# Numbers from 81 to 89
'eighty one': ['एटी वन', 'इक्यासी'],
'eighty two': ['एटी टू', 'बयासी'],
'eighty three': ['एटी थ्री', 'तिरासी'],
'eighty four': ['एटी फोर', 'चौरासी'],
'eighty five': ['एटी फाइव', 'पचासी','पिचासी'],
'eighty six': ['एटी सिक्स', 'छियासी'],
'eighty seven': ['एटी सेवन', 'सतासी'],
'eighty eight': ['एटी एट', 'अठासी'],
'eighty nine': ['एटी नाइन', 'नवासी'],
# Numbers from 91 to 99
'ninety one': ['नाइंटी वन', 'इक्यानवे'],
'ninety two': ['नाइंटी टू', 'बानवे','बानबे'],
'ninety three': ['नाइंटी थ्री', 'तिरानवे'],
'ninety four': ['नाइंटी फोर', 'चौरानवे'],
'ninety five': ['नाइंटी फाइव', 'पचानवे'],
'ninety six': ['नाइंटी सिक्स', 'छियानवे'],
'ninety seven': ['नाइंटी सेवन', 'सतानवे'],
'ninety eight': ['नाइंटी एट', 'अठानवे'],
'ninety nine': ['नाइंटी नाइन', 'निन्यानवे'],
# Numbers from one to ten
'seven': ['सेवन', 'सात'],
'zero': ['शून्य', 'जेरो', 'शुन्ना', 'जीरो'],
'one': ['वन', 'एंक', 'इक', 'एक'],
'two': ['टू', 'दो'],
'three': ['थ्री', 'तीना', 'तीन', 'त्री'],
'four': ['फोर','फ़ोर', 'फॉर', 'च्यार', 'चार'],
'five': ['फाइव', 'पाँच', 'पांच'],
'six': ['सिक्स', 'चह', 'छौ', 'छै', 'छह', 'छे'],
'eight': ['एट', 'अट', 'आठ'],
'nine': ['नाइन', 'नौ'],
'ten': ['टेन', 'दस'],
# Hundred
'hundred': ['हंड्रेड', 'सौ','सो','साव'],
# Thousand
'thousand' : ['हजार','थौजनड','थाउजंड','हज़ार'],
# Lakhs
'lac' : ['लाख'],
}
words = sentence.split() # Split the sentence by spaces
# Replace words using the mapping
for i, word in enumerate(words):
for replacement, patterns in replacement_map.items():
if word in patterns:
words[i] = replacement # Replace the word if it's fully matched
# Join the processed words back into a sentence
return ' '.join(words)