ここに私が見るリストがあります:
- ジョン・スミス
- マーカス・ウルフ
- 精液スレパコフ
- ウィリアム・シェークスピア
- ゾロ
- アレクサンドル・プーシキン
- イワン・バルコフ
- ジェイコブ・ペレルマン
しかし、電話のロケールがロシア語であるかどうかを確認したいリストは次のとおりです。
- アレクサンドル・プーシキン(A)
- ウィリアム・シェークスピア(B)
- ジョン・スミス(D)
- ゾロ(Z)
- イワン・バルコフ(I)
- マーカス・ウルフ(M)
- 精液スレパコフ(C)
- ジェイコブ・ペレルマン(I)
リストは次のとおりです-ロケールが英語の場合:
- アレクサンドル・プーシキン(A)
- イワン・バルコフ(サウンドi:*)
- ジョン・スミス(J)
- マーカス・ウルフ(M)
- 精液スレパコフ(S)
- ウィリアム・シェークスピア(W)
- ジェイコブ・ペレルマン(YA **)
- ゾロ(Z)
アイデアは明確ですよね? ソートは表音規則に従って実行され、リストの各要素に、リスト内の要素の位置を決定する文字/音の値を括弧内に追加しました。
*)Ivanを英語のソートのどこに置くかは明確ではありません。 音[i:]-英語の文字Eのようにソートされていますが、それでも私のようにソートされていますか?
**)ジェイコブと同じ話。 使用する文字変換オプション-YAまたはJA
似たようなものが表示されます。 たとえば、Facebookでは、友達の検索フィールドにロシア語または英語で入力を開始でき、「すべてあります」
最も簡単な実装オプションは、音訳規則を使用することだと思います。 つまり リストのすべての要素は、ロケールに応じてキリル文字またはラテン語に翻訳され、その後のみソートされます。 しかし、上記のようないくつかの問題があります。 非常に多くの場合、文字単位の(音の深い)文字変換は、単語の発音をまったく反映していません。 en.wikipedia.org/wiki/International_Phonetic_Alphabetのようなものに基づくパスは有望に思えますが、このIPA自体に文字の順序があるという事実ではありません。
実際、質問は次のとおりです。
1.すでにライブラリ形式のこのようなアルゴリズムはありますか? ある場合は、リンクを投げてください(たとえば、Javaの場合)。
2.自分でやるなら、直面しなければならない問題のリストを投げてみましょう。 そして、好ましくは、これらの問題の解決策。