Is there a way to cluster words based on how similarly they sound?
I haven't tried it myself, but you could try the IPA (International Phonetic Alphabet) version of your words and then calculate the Levenshtein distance.

There is a Python library called panphon. I have no affiliate with it. Just found it with Google Search. 

import panphon.distance
dst = panphon.distance.Distance()
dst.dogol_prime_distance(u'pops', u'bobz')
&gt;&gt; 0
dst.dogol_prime_distance(u'father', u'mother')
&gt;&gt; 1
dst.dogol_prime_distance(u'school', u'fool')
&gt;&gt; 3