Латиница <-> ханьский перевод в реанимацию? - PullRequest
3 голосов
/ 30 апреля 2011


Я только начинаю реализацию преобразований ICU с использованием ICU4C в программе на C ++. Особенно я смотрю на транслитерацию на и с китайского.

Согласно этого документа пакет поддерживает преобразование "Han-Latin" и "Latin-Han". Мне, студенту, изучающему китайский язык, это кажется удивительным, поскольку преобразование латино-ханьского языка особенно трудно обойтись без высокоразвитых статистических методов (наиболее близким мне был Google Transliterate, который на самом деле отлично справляется с этим даже без участия пользователя, но это невыполнимо для настоящего проекта), намного меньше преобразования без тональных меток. Я скептически отношусь к тому, что это даже возможно, не прибегая к де-факто символам заимствования иностранных имен, таким как 比尔 · 莫瑞. Такой подход используется в Картах Google в их международных доменах, как мы можем видеть в этой статье (PDF)

Во всяком случае, я был готов приостановить неверие, и после ознакомления с документацией и учебными пособиями я смог построить два объекта Транслитератора (туда и обратно) и выполнить простую транслитерацию, используя их.

Хотя Han-Latin работал довольно сносно (точность около 80% для простых данных), Latin-Han, похоже, не работал вообще, возвращая ту же самую «латинскую» строку, которая была введена, что согласуется с результатами, которые я получаю, используя образец онлайн-преобразования , и соответствует тому, что я знаю о китайском. Мне удалось найти эту таблицу, которая, как мне кажется, используется для обоих источников, как мы можем видеть здесь :

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

Я бы предположил, что это означало, что при наличии строки пиньинь он мог бы потенциально воспроизвести оригинал, но, похоже, это не так.

Полагаю, мой общий вопрос таков: возможно ли такое преобразование даже с помощью ICU или чего-то еще, кроме Google Transliterate? Каков ожидаемый результат? Кроме того, есть ли где-нибудь список пар сценариев, которые фактически поддерживает ICU , если это действительно невозможно?

Спасибо за ваше время

1 Ответ

3 голосов
/ 30 апреля 2011

Обратите внимание, что данные из проекта CLDR, http://cldr.unicode.org. Пары сценариев, которые поддерживает ICU, многочисленны, ICU попытается использовать сводный сценарий (например, от Han к латинскому к русскому), поэтому вы можете создавать транслитераторы, такие как «Any-Latin». Вы можете попробовать просмотреть набор данных ICU и CLDR. В примечании вверху ханьско-латинского файла говорится, что оно не туда и обратно.

...