本文へスキップ
にゃんこツール

文字列の類似度・編集距離計算

2つの文字列がどれだけ似ているかを、編集距離(レーベンシュタイン距離)と類似率で数値化し、どこを挿入・削除・置換すれば一致するかを表示します。行や文字の違いを見比べたいだけなら テキスト差分比較 も便利です。

🔒 ブラウザ内で完結・入力データはサーバーに送信されません

2つの文字列を入力すると結果が表示されます。

注意点

  • 編集距離は、挿入・削除・置換をそれぞれ1回と数えて、AをBに変えるのに必要な最小の操作回数です。
  • 類似率は 1 −(編集距離 ÷ 長い方の文字数)で求めます。両方が空なら 100% です。
  • 操作列は、最小回数になる組み合わせのうちの1つです。同じ回数でも別の組み合わせが存在することがあります。
  • 処理が重くなるのを防ぐため、各文字列は5000文字までです。
  • 「書記素(見た目の1文字)」を選ぶと、結合文字や絵文字の組み合わせを見た目の1文字として数えます。ブラウザが対応していない場合はコードポイント単位になります。
  • すべての処理はブラウザ内で完結しており、入力した文字列がサーバーに送信されることはありません。

よくある質問

編集距離(レーベンシュタイン距離)とは何ですか?

文字列Aを文字列Bに変えるのに必要な、1文字の挿入・削除・置換の最小回数です。例えば「kitten」と「sitting」は、2回の置換と1回の挿入で変わるため距離は3です。

類似率はどう計算されますか?

1 −(編集距離 ÷ 長い方の文字数)です。「kitten」と「sitting」なら 1 − 3/7 で約57.1%になります。両方が空の場合は100%、片方だけ空の場合は0%です。

絵文字や結合文字はどう数えますか?

初期設定のコードポイント単位では、絵文字などのサロゲートペアも1文字として数えます。「é」を「e」と結合文字で表した場合は2文字になるので、見た目どおりに数えたいときは「書記素(見た目の1文字)」を選んでください。

隣接転置を1回と数える距離とは何ですか?

「ab」を「ba」に変えるとき、通常のレーベンシュタイン距離は2ですが、隣り合う2文字の入れ替えを1回と数えると1になります。タイプミスの検出に向いた考え方です。

長い文字列は比較できますか?

各文字列5000文字までです。計算量は文字数の積に比例するため、それを超えるとブラウザが固まるおそれがあり、制限しています。

このページをシェア

↑↓ 選択 Enter 開く Esc 閉じる