7

米国の都市のリストは既知のすべての英語の単語に比べて小さいため、この問題は通常のスペル チェッカーよりも簡単だと思います。

とにかく、ここに問題があります。都市名がいっぱい入ったテキスト ファイルがあります。正しく綴られているものとそうでないものがあります。

都市名のスペルミスをすべて修正するには、どのようなアルゴリズムを使用できますか?

4

6 に答える 6

8

スペルミスを実際に修正する必要がありますか、それとも通常のスペルチェッカーのようにフラグを立てるだけですか? 後者の場合は、正しいスペルのリストを取得し、各名前がリスト内の名前と同じであることを確認するだけで済みます。

実際にそれらを修正したい場合は、おそらく、編集距離の概念を使用して、スペルミスのある文字列と参照リスト内の文字列の類似性を比較することをお勧めします。次に、スペルミスの単語を最も近い一致に置き換えることができます。また、目的の都市がリストにない可能性を処理することもできます。

レーベンシュタイン距離のウィキペディアの記事は、もう 1 つの優れたリソースです。

于 2008-11-05T03:38:45.880 に答える
3

最初に正しい都市名を配列にロードしてから、ファイル内の都市名をループします。現在の都市名が正しい名前の配列にあるかどうかを調べて、スペルが正しいかどうかを確認します。配列にない場合は、スペルミスのある単語のSoundexまたはMetaphone値を正しい名前の配列内の単語と比較して、正しいスペルを見つけてください。

于 2008-11-05T03:43:27.573 に答える
2

秘訣は、名前が実際にどの都市を指しているか、その都市名がどのように正しく綴られているかを知ることです。英単語をチェックするだけではありません。

あなたが解決しようとしている本当の課題は何ですか?アドレスリストを処理していますか? そのための独自のツールを作成するべきではありません。この一見単純なタスクに専念している業界全体があります。:)

The Perl Reviewの購読リストに対してこれを行う必要があります。私は、世界中のさまざまな郵便局の Web サービスに精通しています。多くの場合、郵便サービスの Web サイトにアクセスして、正規の形式の住所を取得できます。同じデータを取得できるジオコーディング ツールがあります。

于 2008-11-05T04:36:23.130 に答える
0

私はこれをしました。距離の編集アプローチは私が行ったことであり、かなりうまく機能しますが、リアルタイムで行うには遅すぎます。

直面する課題の1つは、他の都市名から1編集距離離れた都市が多数あることです。あなたはテキストファイルの名前がどこから来たのかを言わなかった、そしてそれは大きな違いを生む。私の場合、検索のために都市名を入力しているのはランダムな人々であり、意図した都市のスペルを間違えることがありましたが、スペルミスは実際の都市名でした。この場合、ユーザーの意図について推測する必要があります。これを行う簡単な方法の1つは、提供されている場合は状態を検討することです。

于 2009-12-26T21:46:49.707 に答える
-1

Web 上には、スペルミスが多い都市名 (ピッツバーグhなど) のリストがあります。それ以外はジェレミーと一緒です。都市名のデータセットを見つけるだけで、USGS を試すことができます。Zillow には、使用できる可能性のある近隣データがあります。

于 2008-11-05T04:15:33.687 に答える
-3

ファイル内に同じ都市名が複数回出現する場合は、各都市名の出現回数を使用して、1 回だけ出現する都市にフラグを立てることができます。

于 2008-11-05T03:39:01.933 に答える