1

スペルチェッカーアルゴリズムを実装しています。Trieすばやく検索できるように単語を保存する を作成しました。

与えられた入力文字列が渡されたとき、私がやりたいことは、編集距離 1 でその文字列の潜在的な削除、挿入、置換、および転置を生成することです。このスーパー セットを使用して、自分の単語を見つけてTrie、ユーザーに提供することができます。 "もしかして?" 結果を入力します。

私はオンラインで調べましたが、ほとんどのソリューションはレーベンスタイン距離の計算に言及しています。これは、2 つの文字列が既にわかっていて、2 つの間の編集距離を知りたい場合にのみ機能します。

提案?

4

1 に答える 1

2

2 パス アルゴリズムを使用します。

パス 1

スペルチェックする単語と同じ文字で始まるすべての単語の距離を調べて計算します。これは速いでしょう。文字数がスペルの単語の長さ + 2 より大きい場合、深さ検索を停止できます (これは明らかに別の単語です) pass1 の
結果を表示します。たとえば、単語に赤い下線を付けます。

パス 2

すべての単語を検索し、長さ + 3 または 4 で停止 パス 1 で見つかった結果を更新

于 2012-12-03T01:39:16.023 に答える