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()関数を使用してレーベンシュタイン距離を計算し、結果を表示します。
結果:
以下のように成功しました。