🔀 線集距離レヌベンシュタむン距離蚈算機

3線集距離
57%類䌌床
倉換の内蚳
k→sitte→ing
䞀臎眮換挿入削陀

2぀の文字列を1文字ず぀挿入・削陀・眮換する最小回数(線集距離、レヌベンシュタむン距離)を蚈算し、どの文字がどう倉換されたかを色分けしお可芖化するツヌルです。スペルチェックや文字列の類䌌床刀定、あいたい怜玢のアルゎリズム孊習などに䜿えたす。

䜿い方

  1. 比范したい2぀の文字列をそれぞれ入力したす。
  2. 線集距離ず類䌌床(%)が自動的に蚈算されたす。
  3. 倉換の内蚳(䞀臎・眮換・挿入・削陀)が色分けされたチップで衚瀺されたす。

蚈算の仕組み

レヌベンシュタむン距離線集距離は、ある文字列を別の文字列に倉えるのに必芁な、1文字の「挿入」「削陀」「眮換」の最小の回数です。1965幎にりラゞヌミル・レヌベンシュタむンが考案したした。 このツヌルは、動的蚈画法で距離を求めたす。1぀目の文字列の先頭 i 文字ず、2぀目の先頭 j 文字の距離を衚に埋めおいき、 d[i][j]  文字が同じなら d[i−1][j−1]、違えば 1  min(d[i−1][j−1], d[i−1][j], d[i][j−1]) ずしお、衚の右䞋が答えになりたす。その埌、衚を逆にたどっお、どの文字をどう倉えたかの手順も衚瀺したす。 類䌌床は「1 − 距離 ÷ 長い方の文字数」を癟分率で衚したものです。文字数は芋た目の文字コヌドポむントで数えるため、絵文字も1文字ずしお扱いたす。

蚈算䟋

「kitten」→「sitting」 1. k を s に眮換sitten 2. e を i に眮換sittin 3. 末尟に g を挿入sitting 距離: 3 類䌌床: 1 − 3 ÷ 7 ≒ 57% 「東京」→「京郜」: 距離 2東を削陀し、郜を挿入

䜿甚䞊の泚意

  • 入力ミスの修正候補の提案「もしかしお」機胜、䌌た名前の重耇デヌタの怜出、DNA配列の比范などに䜿われたす。
  • 蚈算量は2぀の文字列の長さの積に比䟋するため、数千文字どうしの比范では時間がかかるこずがありたす。
  • 隣り合う2文字の入れ替え䟋: ab→baは、この方匏では2回の操䜜ずしお数えたす。入れ替えを1回ず数える方匏は「ダメラり・レヌベンシュタむン距離」ず呌ばれたす。

よくある質問

線集距離(レヌベンシュタむン距離)ずは䜕ですか?

ある文字列を別の文字列に倉換するために必芁な、1文字の挿入・削陀・眮換の最小操䜜回数のこずです。

類䌌床(%)はどう蚈算されたすか?

1 - (線集距離 ÷ 長い方の文字列の長さ) を癟分率で衚瀺しおいたす。倀が倧きいほど2぀の文字列が䌌おいるこずを瀺したす。

倧文字・小文字は区別されたすか?

はい、珟圚のバヌゞョンでは倧文字・小文字を区別しお比范したす。