def min_edit_distance(s1, s2): ''' Computes Minimum edit distance for the two strings :param s1: first string :param s2: second string :return: minimum edit distance (lavenshtein value) ''' matrix = lavenshtein_matrix(s1, s2) print format_2d_array(matrix, '#' + s1, '#' + s2) return matrix[-1][-1] # the last cell has the value for two complete strings
def min_edit_distance(s1, s2): ''' Computes Minimum edit distance for the two strings :param s1: first string :param s2: second string :return: minimum edit distance (lavenshtein value) ''' matrix = lavenshtein_matrix(s1, s2) print format_2d_array(matrix, '#' + s1, '#' + s2) return matrix[-1][ -1] # the last cell has the value for two complete strings
diagonal_dist = matrix[i-1][j-1] + (0 if s1[i] == s2[j] else 2) if diagonal_dist < distance: distance = diagonal_dist matrix[i][j] = distance return matrix def min_edit_distance(s1, s2): ''' Computes Minimum edit distance for the two strings :param s1: first string :param s2: second string :return: minimum edit distance (lavenshtein value) ''' matrix = lavenshtein_matrix(s1, s2) print format_2d_array(matrix, '#' + s1, '#' + s2) return matrix[-1][-1] # the last cell has the value for two complete strings if __name__ == '__main__': s1 = 'abbaba'#'intention' s2 = 'aabbcva'#'executions' #distance = min_edit_distance(s1, s2) #print distance alignment, min_dist, matrix = align_strings(s1, s2, pad_char="-") print(format_2d_array(matrix, '\0' + s1, '\0' + s2)) print(alignment[0]) print(alignment[1]) print("\nMin Edit Distance = %d " % min_dist)
if diagonal_dist < distance: distance = diagonal_dist matrix[i][j] = distance return matrix def min_edit_distance(s1, s2): ''' Computes Minimum edit distance for the two strings :param s1: first string :param s2: second string :return: minimum edit distance (lavenshtein value) ''' matrix = lavenshtein_matrix(s1, s2) print format_2d_array(matrix, '#' + s1, '#' + s2) return matrix[-1][ -1] # the last cell has the value for two complete strings if __name__ == '__main__': s1 = 'abbaba' #'intention' s2 = 'aabbcva' #'executions' #distance = min_edit_distance(s1, s2) #print distance alignment, min_dist, matrix = align_strings(s1, s2, pad_char="-") print(format_2d_array(matrix, '\0' + s1, '\0' + s2)) print(alignment[0]) print(alignment[1]) print("\nMin Edit Distance = %d " % min_dist)