Penso che sfruttando un algoritmo standard di fonetica sarebbe una buona idea. Penso che Soundex potrebbe essere un po 'limitato, ma uno double metaphone sarebbe probabilmente una buona scelta.
Ottenere le rappresentazioni del metaphone delle parole in questione, rimuovere i primi caratteri e verificare se la parte restante della più breve delle due parole corrisponde alla fine del più lungo. Con il doppio metaphone, è molto simile, ma effettua quattro confronti, da primario a primario, da secondario a primario, da primario a secondario e da secondario a secondario.
Penso che sarebbe un buon punto di partenza.
Una nota su questo e molti altri algoritmi fonetici: non è progettato per fornire una definizione fonetica precisa. La pronuncia geografica varia, le errate pronunce comuni e le pronunce alternative rendono impossibile pronunciare una pronuncia corretta e veloce basata unicamente sulla parola. Il romanzo ortografico e l'utilizzo di lettere rendono difficile ottenere algoritmicamente una pronuncia stretta (prendersi cura di alcuni antipasti?). Inoltre, uno degli obiettivi principali di molti di questi algoritmi è quello di associare tra loro suoni o parole o nomi simili, quindi i risultati sono solitamente intesi come un po 'imprecisi (probabilmente è una buona cosa, anche per questo scopo).
Buona fortuna, infinitamente dura? – EricG
qual è la definizione di una rima? –
@AlexLynch http://en.wikipedia.org/wiki/Rhyme, non so se il tuo linguaggio li abbia definiti, ma nel mio nativo (polacco) classifichiamo anche le rime. ;-) –