ChatGPTにレーベンシュタイン距離を調べるPythonコードを書いてもらった

ChatGPTにレーベンシュタイン距離を調べるPythonコードを書いてもらいました。レーベンシュタイン距離というのは、2つの文字列がどの程度異なっているかを示すものです。例えば、「カナダ」と「サナダ」と一文字違いなので、レーベンシュタイン距離は1となります。

指示文(プロンプト):

指定した単語間のレーベンシュタイン距離を表示するPythonスクリプトを書いてください。指定する単語は標準入力できるようにしてください。

回答:

以下は、指定した単語間のレーベンシュタイン距離を計算して表示するPythonスクリプトです。


def levenshtein_distance(word1, word2):
    """
    2つの単語のレーベンシュタイン距離を計算する関数
    """
    m = len(word1)
    n = len(word2)

    # 2次元のDPテーブルを初期化
    dp = [[0] * (n + 1) for _ in range(m + 1)]

    # DPテーブルを更新してレーベンシュタイン距離を計算
    for i in range(m + 1):
        for j in range(n + 1):
            if i == 0:
                dp[i][j] = j
            elif j == 0:
                dp[i][j] = i
            elif word1[i - 1] == word2[j - 1]:
                dp[i][j] = dp[i - 1][j - 1]
            else:
                dp[i][j] = 1 + min(dp[i - 1][j], dp[i][j - 1], dp[i - 1][j - 1])

    return dp[m][n]


# 標準入力から単語を取得
word1 = input("単語1を入力してください: ")
word2 = input("単語2を入力してください: ")

# レーベンシュタイン距離を計算
distance = levenshtein_distance(word1, word2)

# 結果を表示
print(f"単語1: {word1}")
print(f"単語2: {word2}")
print(f"レーベンシュタイン距離: {distance}")

    

このスクリプトは、標準入力から2つの単語を取得し、levenshtein_distance()関数を使用してレーベンシュタイン距離を計算し、結果を表示します。

結果:

以下のように成功しました。