3


C++ プログラムで ICU4C を使用して ICU 変換を実装し始めたところです。私は特に中国語への、または中国語からの音訳に注目しています。

このドキュメントによると、パッケージは「Han-Latin」と「Latin-Han」の両方の変換をサポートしています。ラテン語から漢語への変換は、高度な統計技術なしでは特に難しいため、中国語の学生としては、これは驚くべきことのように思えます (私が見た中で最も近いのは Google Transliterate で、ユーザー入力がなくても実際にこれで素晴らしい仕事をします.しかし、これは現在のプロジェクトでは実現不可能です)、声調記号なしの変換はなおさらです。比尔·莫瑞のような事実上の外国の名前の借用文字に頼ることなく、これが可能であることに私は懐疑的です. この論文(PDF)でわかるように、これは Google マップが国際的なドメインで採用しているアプローチです。

とにかく、私は信じられないことを喜んで保留し、ドキュメントとチュートリアルを参照した後、2 つの Transliterator オブジェクト (to と from) を構築し、それらを使用して簡単な音訳を実行することができました。

Han-Latin はまずまずに機能しましたが (単純なデータで約 80% の精度)、Latin-Han はまったく機能していないようで、入力されたものと同じ「ラテン」文字列を返しました。これは、オンライン変換を使用して得た結果と一致しています。サンプルであり、私が中国語について知っていることと一致しています。ここでわかるように、私はこのテーブルを見つけることができました。これは両方のソースに使用されていると思います:

{ "Latin-Han", "file", "t_Hani_Latn", "REVERSE" },
{ "Han-Latin", "file", "t_Hani_Latn", "FORWARD" },

これは、ピンイン文字列を指定すると、元の文字列を再現できる可能性があることを意味していると思いますが、そうではないようです。

私の一般的な質問は次のとおりだと思います。この種の変換は、ICU や Google Transliterate 以外でも可能ですか? 期待される出力は何ですか?関連して、ICUが実際にサポートしているスクリプト ペアのリストがどこかにありますか (これが本当に可能でない場合)。

お時間をいただきありがとうございます

4

1 に答える 1

3

データは CLDR プロジェクトhttp://cldr.unicode.orgからのものであることに注意してください。ICU がサポートするスクリプトのペアは多数あります。ICU はピボット スクリプト (Han to Latin to Russian など) の使用を試みます。そのため、"Any-Latin" などの音訳文字を作成できます。ICU と CLDR のデータ セットを参照してみてください。Han-Latin ファイルの上部にある注記には、往復しないことが示されています。

于 2011-04-29T23:27:05.277 に答える