1)なぜこれらの行に1を追加するのですか?Levenshtein distanceに関する質問
d[i-1, j] + 1, // deletion
d[i, j-1] + 1, // insertion
if s[i] = t[j] then cost := 0
else cost := 1
は下位ワード長/削除を考慮すべきである、または私は何かが足りないのですライン?
2)コメントは、削除と挿入を示します。より低い値が削除された文字を表すため、両方の単語(削除された文字の長さを表す整数j/i)で削除された文字をチェックしていると思うのは間違いありません。
使用されるコードはここにあるは(それは擬似コードであると私は、言語固有の問題を持っていないので、このスレッドは、任意の言語のカテゴリではありません):
http://www.iterasi.net/openviewer.aspx?sqrlitid=z0cloj7xhk-ce0f72v4cjq
ええ、私は実際にそのリンクを読んでいました。いい答えだ。 ただし、最後のもの: 最小限の機能では、セルに+1、セルに+コストがあります。確かに1とコストは同じ値(1)であり、if文が実行される結果(コスト== 0の場合など)はコストが1より大きく決して0ではないためです。私はこの論理を理解していないのですか? – dotnetdev
いいえ。コストは必ずしも1ではありません。隣接する文字が一致しない場合は、1よりもずっと大きくなります。あなたが最初に始めるとき、あなたはn文字の単語の最後の文字がn個の挿入の結果であると仮定します。コストは、最初は比較して、実際に一致した文字があるため、比較が少なくなるまで表示されます。 –