レーベンシュタイン距離計算機|編集距離を挿入・削除・置換の内訳付きで算出
2 つの文字列がどれだけ違うかを「最小編集回数(レーベンシュタイン距離)」で返す計算ツール。距離値だけでなく、類似度パーセント・0〜1 の正規化距離・挿入/削除/置換それぞれの回数まで分解して表示する。
💡 このツールについて
「kitten」を「sitting」に直すには何手かかるか。スペルチェッカーやファジー検索を実装するとき、この「1 文字ずつ直すなら最小で何回か」という距離が判定の土台になる。だが多くの計算ツールは距離の数字だけを返すため、その距離が「置換が多いのか、それとも挿入・削除が多いのか」までは分からない。
レーベンシュタイン距離は、挿入・削除・置換をそれぞれ 1 回ぶんのコストとして数え、ある文字列を別の文字列に変換する最小の手数を求める指標だ。このツールは動的計画法で距離を計算したうえで、最適な編集経路をたどり直して挿入・削除・置換の内訳を分離して見せる。閾値をいくつに設定すれば誤判定が減るかを、自分の手元の文字列で実際に試しながら決められる。最大 2000 文字まで 2 系統を同時に比較できる。
🧐 よくある質問
類似度パーセントはどう計算されますか?
(1 - 距離 / 長い方の文字数) × 100 で求めています。距離が 0 なら 100%、片方を完全に書き換えるほど距離が長い方の文字数に近づき 0% に近づきます。
正規化距離とは何ですか? 編集距離を「長い方の文字数」で割った 0〜1 の値です。文字列長が違うペアどうしを公平に比べたいときに使います。距離 3 でも、7 文字と 70 文字では意味が違うためです。
ジャロ・ウィンクラー距離とどう使い分けますか? レーベンシュタインは挿入・削除・置換の最小編集回数を数える指標で、住所や長い社名のように全文字が同じ重みを持つ照合に向きます。ジャロ・ウィンクラーは短い人名や先頭一致を重視する照合に向くため、データの性質で選び分けます。
ダメラウ・レーベンシュタインとの違いは? 標準のレーベンシュタインは隣り合う 2 文字の入れ替え(転置)を「2 回の編集」として数えます。「conversion」と「convresion」のような打ち間違いを 1 編集として扱いたいときは、転置を許容するダメラウ・レーベンシュタイン版を使います。
大文字小文字や絵文字はどう扱われますか? 「大文字小文字を区別」をオフにすると A と a を同一視します。比較は文字コード単位で行うため、サロゲートペアの絵文字は内部的に 2 単位として数えられる点に注意してください。
2000 文字を超えるとどうなりますか? 1 文字列あたり 2000 文字で入力が切り詰められます。距離計算は文字数の二乗に比例して重くなるため、ブラウザで実用的に動く範囲として上限を設けています。
📚 編集距離の豆知識
レーベンシュタイン距離は、1965 年にソ連の数学者ウラジーミル・レーベンシュタインが符号理論の文脈で定義した指標で、いまではスペル訂正・DNA 配列のアライメント・OCR の誤読補正・diff ツールの基礎として広く使われている。日本語のように 1 文字が大きな意味を持つテキストでは、1 編集の重みが英単語よりも大きく感じられるため、しきい値は英語データと別に決めるのが定石だ。距離そのものより「挿入・削除・置換のどれが支配的か」を見ると、ゆらぎの原因(変換ミスなのか、語尾の活用なのか)が読み取りやすくなる。