2つの文字列を入力するだけで編集距離を即時計算。挿入・削除・置換の操作手順をステップごとに表示し、DPテーブルの可視化やバッチ比較にも対応。すべてブラウザ内で完結します。
バッチ比較
1行に1ペア、カンマ区切りで入力してください:文字列1,文字列2
レーベンシュタイン距離とは?
レーベンシュタイン距離(編集距離)とは、ある文字列を別の文字列に変換するために必要な挿入・削除・置換の最小操作回数です。1965年にロシアの数学者ウラジーミル・レーベンシュタインが考案しました。
有名な例:“kitten” を “sitting” に変換するには3回の操作が必要 → 編集距離 3
| 操作 | 例 | コスト |
|---|---|---|
| 置換 | k → s(kitten → sitten) | 1 |
| 置換 | e → i(sitten → sittin) | 1 |
| 挿入 | sittin → sitting | 1 |
類似度(%) は (1 − 距離 / max(len_A, len_B)) × 100 で計算します。
動的計画法による計算の仕組み
サイズ (m+1) × (n+1) の行列を構築します(m, n は各文字列の長さ)。各セル dp[i][j] は「文字列Aの最初のi文字」と「文字列Bの最初のj文字」の間の最小編集距離を保持します。
漸化式:
A[i] == B[j]の場合:dp[i][j] = dp[i-1][j-1](コストなし)- それ以外:
dp[i][j] = 1 + min(dp[i-1][j-1], dp[i-1][j], dp[i][j-1])(置換・削除・挿入)
dp[m][n] からトレースバックすることで、具体的な操作手順を復元します。
主な活用例
| 分野 | 活用方法 |
|---|---|
| スペルチェッカー | 辞書内の最近傍単語を特定 |
| DNA配列解析 | 遺伝子配列の類似度を計測 |
| あいまい検索 | 検索結果を類似度でランク付け |
| 盗用検出 | ほぼ同一の文章を発見 |
| データ統合 | 重複レコードの名寄せ |
| 自動補正 | ユーザーの意図した単語を推定 |
| 自然言語処理 | テキスト類似度の特徴量として利用 |
使い方・ヒント
- 大文字/小文字の区別 — デフォルトは区別なし。コード識別子やパスワード比較時は有効化してください。
- DPテーブル表示 — 「DPテーブルを表示」を有効にすると、動的計画法の行列と最適経路(ハイライト)を確認できます。20文字以内の文字列のみ対応。
- バッチ比較 —
文字列1,文字列2の形式で複数ペアをまとめて比較できます。しきい値の検証などに便利です。 - 入れ替え — AとBを一発で入れ替えます。レーベンシュタイン距離は対称なので
d(A,B) == d(B,A)です。 - 日本語対応 — ひらがな・カタカナ・漢字も1文字単位で計算します。
テキストを行単位で比較する → テキスト差分比較ツール
文字数・単語数をカウントする → 文字数カウンター
確定申告・会計をもっとラクに? freee会計 なら、フリーランスの経費管理もクラウドで簡単。まずは無料で試してみましょう。
