3

この質問は、インデックスにローカル名を格納するための国際文字の正規化に関するものです。この問題について一般的に議論したいと思います。また、Java で可能な既存の解決策 (クラス/ライブラリ) についても聞きたいと思います。


グローバル アプリケーションでは、ユーザーが自分の名前を入力すると、アプリケーションは各名前を検索インデックスに書き込みます。これにより、他のユーザーが名前を検索してユーザーを見つけることができます。英語では些細なことですが、他の多くの言語や世界規模ではそれほど些細なことではありません. たとえば、ドイツ語名の Häußler は、次のように書くことができます。

  • ホイスラー(ドイツ)
  • Haeussler (ドイツ、国際音訳)
  • ハウスラー (スイス)
  • Hausler (英語の音訳)

Javaには

    Normalizer.normalize(entry, Normalizer.Form.NFD) // NFC

クラスですが、これは多くの場合に機能しないようです、および/またはそれを適切に使用する方法がわかりません. http://en.wikipedia.org/wiki/Unicode_equivalenceもよく読んでいますが、このトピックに関する十分なバンドル情報が見つかりませんでした。

誰かがすでにその問題に取り組んでいる既存のオープンソース プロジェクトを知っている人はいますか? 使用できるライブラリはありますか? ウェブサイト?

日本人、中国人、アラブ人などはどのように言語を英語に音訳しますか? Facebook のような大規模なソーシャル ネットワークは、ユーザー名をどのように音訳して、国際的に見つけられるようにしているのでしょうか?

4

1 に答える 1

1

あなたは正しい道を進んでいます。追加したい検索用語の 1 つに「正規」があります。

ICUプロジェクトは、これを処理した最も堅牢なオープン ソース ソフトウェアだと思います。正規化コンポーネント、特に NFKC_Casefold の実装に特に関心を持ってください。これは、他の多くの例の中でドイツ語の ß の例を処理します。

于 2014-11-01T02:43:46.097 に答える