def _get_edit_distance()

in vizseq/scorers/_ter.py [0:0]


def _get_edit_distance(s_str: str, t_str: str):
    s, t = s_str.split(), t_str.split()
    len_s, len_t = len(s), len(t)
    d = [[0 for _ in range(len_t + 1)] for _ in range(len_s + 1)]
    for i in range(1, len_s + 1):
        d[i][0] = i
    for j in range(1, len_t + 1):
        d[0][j] = j
    for i in range(1, len_s + 1):
        for j in range(1, len_t + 1):
            sub = int(s[i - 1] != t[j - 1])
            d[i][j] = min(
                d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + sub
            )
    return d[-1][-1]