文字列の類似度・編集距離計算
2つの文字列がどれだけ似ているかを、編集距離(レーベンシュタイン距離)と類似率で数値化し、どこを挿入・削除・置換すれば一致するかを表示します。行や文字の違いを見比べたいだけなら テキスト差分比較 も便利です。
🔒 ブラウザ内で完結・入力データはサーバーに送信されません
2つの文字列を入力すると結果が表示されます。
- 編集距離(レーベンシュタイン)
- 類似率
- 編集距離(隣接転置を1回と数える)
- Jaro-Winkler 類似度
- 長さ
- 内訳
AからBへの変更
削除挿入置換
操作の一覧
| 操作 | A | B |
|---|
注意点
- 編集距離は、挿入・削除・置換をそれぞれ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文字までです。計算量は文字数の積に比例するため、それを超えるとブラウザが固まるおそれがあり、制限しています。
このページをシェア
