def levenshtein_distance(self, other_word: str) -> int: """ Basic use of Levenshtein distance function :param other_word: :return: """ return Levenshtein.Levenshtein_Distance(self.word, other_word)
def test_levenshtein_distance(self): """Test for Levenshtein Distance between two words""" l = Levenshtein() dist = l.Levenshtein_Distance( "now grete glorious god through grace of himselven", "and the precious prayer of his pris moder") self.assertEqual(dist, 36)
def compute_distance_matrix(proper_nouns: List[str]): """ Distance matrix with Levenshtein distance. :param proper_nouns: Items of proper_nouns must be unique :return: """ levenshtein = Levenshtein() # We try to keep regroup different forms of a lemma distance_matrix = np.zeros((len(proper_nouns), len(proper_nouns))) for i in range(len(proper_nouns)): for j in range(len(proper_nouns)): distance_matrix[i, j] = levenshtein.Levenshtein_Distance(proper_nouns[i], proper_nouns[j]) return distance_matrix