5

iOSアプリケーションを構築しようとしています。画面の 1 つで、ユーザーが検索バーに何かを入力すると、同じ単語の異なるスペルに対して同じアクションを実行する必要があります。

例:ユーザーは"elephant"または"alephant"または"elefant" と入力できます。この 3 つの単語すべてに対して同じアクションを実行する必要があります。

これらの単語を類似のものとして識別するライブラリはありますか? 英語以外の言語でもこれが必要なため、スペルチェッカーを使用できません..調査を行ったところ、サーバー側でこれを実現するための Text::soundex のような音声アルゴリズムがいくつかあることがわかりました。iOS用のライブラリがあるかどうか疑問に思っていますか?

前もって感謝します !!

4

2 に答える 2

2

Soundexのより良い代替手段は、Double Metaphone、さらにはMetaphone 3です。使用している言語はわかりませんが、これらのアルゴリズムは両方ともC ++、C#、およびJavaで使用できます。

于 2012-11-10T22:23:57.123 に答える
2

たとえばNSStringで使用できる soundex はありませんが、それが必要な場合は、実装がかなり簡単です。CocoaDev の <a href="http://cocoadev.com/wiki/NSStringSoundex" rel="nofollow">soundex NSString カテゴリは、恐ろしくフォーマットされていますが、次のとおりです。

また、Levenstein Distance アルゴリズムを使用して、単純なスペル ミスを検出することもできます。実装も簡単ですが (詳細についてはウィキペディアの記事を参照してください)、そのための NSString カテゴリを次に示します。

これらのアルゴリズムを使用する前に、入力を正規化してください。CFStringTransformCore Foundation には、さまざまな言語入力を正規化された形式に自動的に変換できる素晴らしいクラスがあります( NSHipster に関するこのすばらしい記事、特に正規化に関する最後の部分を参照してください)。

于 2012-11-04T00:46:21.147 に答える