25

Unicode文字を任意の言語からアクセント付きラテン文字に音訳する方法を探しています。その目的は、外国人がラテン文字以外の文字で書かれた名前や単語の発音について洞察を得ることができるようにすることです。

例:

ギリシャ語:Romanize("Αλφαβητικός")戻り値"Alphabētikós"(または「Alfavi̱tikós」)

日本語:Romanize("しんばし")返品"shimbashi"(または「新橋」)

ロシア語:Romanize("яйца Фаберже")返品"yaytsa Faberzhe"(または「jajcaFaberže」)

理想的には、CJK、インド語、キリル文字、セム語、ギリシャ語のスクリプトの文字をサポートする必要があります。ユニコードコンソーシアム、米国、EU、または国連のいずれかからのデータを使用して、データ駆動型で拡張可能である必要があります。コードは、.NETまたはJavaで記述されたオープンソースである必要があります。

そのようなライブラリは存在しますか?

4

4 に答える 4

19

問題はあなたが思っているよりずっと複雑です。

ギリシャ文字、キリル文字、インド文字、グルジア語->些細なことですが、1時間でプログラムできます。
タイ語、日本語のかな->もう少し手間をかけ
て実行できます。日本の漢字、中国語->これらはアルファベット/音節文字ではないので、事実を音訳して、うまくいけば大きな辞書で各記号の発音を調べています(EDICTとCCDICTが機能するはずです)。特に日本語の
韓国語では、文脈も考慮しない限り、多くの場合、間違ってしまいます。->技術的にはアルファベットですが、コンピューターは合成文字しか処理できないため、別の大きなデータベースが必要です。私は何も知りません。
アラビア語、ヘブライ語->これらの言語は短い母音を書き留めないため、多くの場合、音訳は「bytlhm」(ベツレヘム)のように読めないものになります。アラビア語またはヘブライ語の単語を発音にマッピングする大規模なデータベースを私は知りません。

于 2012-03-24T10:44:58.487 に答える
10

Unidecode Sharpを使用できます :

[C#] Python Unidecodeからの移植であり、それ自体がPerlunidecodeからの移植です。(PHPRubyの実装も利用可能です)

使用法;

using BinaryAnalysis.UnidecodeSharp;

.......................................

string _Greek="Αλφαβητικός";
MessageBox.Show(_Greek.Unidecode());

string _Japan ="しんばし";
MessageBox.Show(_Japan.Unidecode());

string _Russian ="яйца Фаберже";
MessageBox.Show(_Russian.Unidecode());

よろしくお願いします。

于 2013-03-01T17:04:10.430 に答える
6

私はここでICU以外のオープンソースソリューションを知りません。ICUがあなたのために働くなら、素晴らしい。そうでない場合、私はこの目的のために、中国語の単語、日本語の複数の読み、アラビア語の不完全な正書法などの厄介なケースに対処できる商品を販売する会社のCTOであることに注意してください。

于 2012-03-23T16:26:35.387 に答える
5

Unicode Common Locale Data Repositoryには、使用できる音訳マッピングがいくつかあります。

于 2012-03-23T19:38:42.713 に答える