非常に単純なスペル チェッカーを書きたいと思います。スペル チェッカーは、入力された単語を辞書にある同等の単語と照合しようとします。
それらの「同等の単語」を見つけるにはどうすればよいでしょうか? 2 つの単語が同等であることを示すには、どのような分析を行うことができますか?
非常に単純なスペル チェッカーを書きたいと思います。スペル チェッカーは、入力された単語を辞書にある同等の単語と照合しようとします。
それらの「同等の単語」を見つけるにはどうすればよいでしょうか? 2 つの単語が同等であることを示すには、どのような分析を行うことができますか?
ユースケースに大きく依存します。例えば:
スペルチェッカーの実装を終えたばかりで、次の組み合わせを使用して「推奨される」単語のリストを取得しました
基本的に、主に編集距離と共通性に基づいて、各潜在的な単語に重みを付けました。たとえば、単語の確率がパーセンテージの場合、
weight = edit-distance * 100 / probability
(重量は低い方が良い)
ただし、既知の一般的なスペルミスのある結果も上書きします (つまり、これらは常に提案された結果の一番上に表示されます)。
もっと良い方法があるかもしれませんが、これはかなりうまくいきました。
また、すべて大文字の単語やイニシャルなどを無視したい場合もあるため、無視するものを選択することも検討する必要があります.
Edit Distanceは、スペル チェッカーを作成するために必要な理論です。辞書も必要です。ほとんどの UNIX システムには、使用しているロケール用の辞書が既にインストールされています。
linux / unixの下には、ispellがあります。なぜ地獄を再発明するのか。