2011-04-29 34 views
3


我剛剛開始在C++程序中使用ICU4C實現ICU轉換。我特別關注中國人和中國人的音譯。拉丁文<->漢族ICU轉換?

根據this document,該軟件包支持「Han-Latin」和「Latin-Han」轉換。作爲中國學生,這似乎令我感到驚訝,因爲如果沒有高度先進的統計技術,拉丁文 - 漢字轉換特別困難(最接近我看到的是Google Transliterate,即使沒有用戶輸入,它實際上也做得很好,但是對於目前的項目來說這是不可行的),沒有音調標記的轉換少得多。我懷疑這甚至是可能的,而不訴諸事實上的外國借用人物,如比爾·莫瑞。這是谷歌地圖在其國際領域採取的方法,正如我們在本白皮書中看到的那樣,(PDF)

無論如何,我願意暫停懷疑,並且在諮詢了文檔和教程後,我能夠構建兩個Transliterator對象來回)並使用它們執行簡單的音譯。

雖然Han-Latin的工作非常流暢(簡單數據的準確率約爲80%),但Latin-Han似乎根本不工作,返回輸入的相同「拉丁」字符串,這與我得到的結果一致使用online transform sample,並符合我對中文的瞭解。我設法找到this表,我認爲這是什麼用於兩個來源,我們可以看到here

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

我想這意味着,給定的拼音串它可能工作重現原作,但似乎並非如此。

我想我的一般問題是:這種轉換甚至可能與ICU,或者Google Transliterate之外的任何其他類型?什麼是預期的輸出?相關的,是否有一個腳本對ICU 實際上支持,如果這不是真的可能?

謝謝您的時間

回答

3

注意,數據是從CLDR項目,http://cldr.unicode.org。 ICU支持的腳本對有很多,ICU將嘗試使用樞軸腳本(例如漢語拉丁語到俄語),這就是爲什麼您可以創建音譯器(如「任意拉丁語」)的原因。您可以嘗試瀏覽ICU和CLDR數據集。漢拉丁文件頂部的註釋說它不會往返。

+0

你好,感謝你的快速(和權威!)迴應。瞭解數據的來源是很好的,我將會對CLDR進行更詳細的調查。儘管如此,一個更普遍的問題仍然存在,那就是你或者某個人能否提供一個能從拉丁文或拉丁文輸入中產生漢文的例子?我已經嘗試了在線演示中的無數組合,但沒有產生漢文本。我知道旋轉,但似乎我沒有發現任何樞軸線路來產生漢字,即使在往返環境之外。 – NatHillard 2011-04-29 23:35:11

+0

不客氣。我認爲你說這是一個困難的問題是正確的,它基本上是由輸入方法所面對,最終爲用戶提供不同的選擇。您可能會詢問CLDR用戶列表。 – 2011-04-29 23:48:07