A non ml way to approach this is to use phonetic distance, e.g. qanoon and kanun sound the same so they are close.
There is an algorithm called Soundex with python implementations you can try.
There is an algorithm called Soundex with python implementations you can try.
The fundamental difference between my problem and traditional spelling correction algos is that in the latter, there is a canonical correct spelling to be used as a reference. In my problem, there isn't. There are different approximate ways of spelling out most hindi words ... there is no one correct way. There are common patterns, sure, but it is too tedious to encode all the variations.