ICU中的拉丁语< - > Han转换?

时间:2011-04-29 23:09:48

标签: unicode cjk icu transliteration


我刚刚开始在C ++程序中使用ICU4C实现ICU转换。我特别关注中文的音译。

根据this document,该套餐支持“Han-Latin”和“Latin-Han”转换。作为一名中国学生,这对我来说似乎很令人惊讶,因为如果没有高度先进的统计技术,拉丁语 - 汉语的转换尤为困难(我最接近的就是Google Transliterate,即使没有用户输入,它实际上做得很好,但这对于本项目来说是不可行的),更不用说没有音调标记的转换。我怀疑这甚至是可能的,而不是诉诸比尔·莫瑞等事实上的外国名字借用人物。这是Google地图在其国际域中采用的方法,我们可以在本文中看到(PDF)

无论如何,我愿意暂时不相信,在咨询了文档和教程后,我能够构建两个Transliterator对象(往返)并使用它们执行简单的音译。

虽然汉语 - 拉丁语非常难以理解(简单数据的准确率约为80%),拉丁语汉语似乎根本不起作用,返回相同的“拉丁”字符串输入,这与我使用的结果一致online transform sample,与我对中文的了解一致。我设法找到了this表格,我认为这是两个来源的用途,我们可以看到here

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

我认为这意味着给定一个拼音字符串它可能会重现原作,但似乎并非如此。

我想我的一般问题是:这种转换甚至可能与ICU或Google Transliterate之外的任何其他转换?什么是预期的输出?相关地,ICU 实际支持的脚本对中是否有列表,如果这不可能?

感谢您的时间

1 个答案:

答案 0 :(得分:3)

请注意,数据来自CLDR项目http://cldr.unicode.org。 ICU支持的脚本对很多,ICU将尝试使用枢轴脚本(例如Han到Latin to Russian),这就是为什么你可以创建音译器,如“Any-Latin”。您可以尝试浏览ICU和CLDR数据集。 Han-Latin文件顶部的注释表示它不会往返。