Проблема преобразования ханзи в пиньинь довольно сложна. Есть много символов ханзи, которые имеют множественные представления пиньинь, в зависимости от контекста. Сравните 长大 (pinyin: zhang da) с 长城 (пиньинь: чанг чэн). По этой причине односимвольное преобразование часто фактически бесполезно, если у вас нет системы, которая выводит несколько возможностей. Существует также проблема сегментации слов, которая также может повлиять на представление пиньинь. Хотя, возможно, вы уже это знали, я думал, что это важно.
При этом Adso Package содержит как сегмент, так и вероятностный аннотатор пиньинь, основанный на отличной библиотеке Adso. Требуется некоторое время, чтобы привыкнуть, хотя и может быть намного больше, чем вы ищете (я уже в прошлом считал, что это слишком громоздко для моих нужд). Кроме того, не существует публичного API в любом месте и его C++ ...
Для недавнего проекта, поскольку я работал с именами мест, я просто использовал API Google Translate (в частности, неофициальную java-версию порт, который, по крайней мере, для обычных существительных, как правило, делает хорошую работу по переводу на пиньинь. Проблема - это обычно используемые альтернативные системы транслитерации, такие как «Гонконг» для того, что должно быть «XiangGang». Учитывая все это, Google Translate довольно ограничен, но он предлагает начало. Раньше я не слышал о pinyin4j, но после игры с ним только сейчас я обнаружил, что он менее оптимален - пока он выводит список потенциальных кандидатов-пиньинь-романизаций, которые он делает нет попытки статистически определить их вероятность. Существует метод возврата одного представления, но он скоро будет постепенно отменен, поскольку в настоящее время он возвращает только первый romani не наиболее вероятным. Там, где программа, кажется, преуспевает, это преобразование между латинизациями и общей конфигурацией.
Короче говоря, ответ может быть любым из них, в зависимости от того, что вам нужно. Идиосинкразические собственные существительные?Гугл переводчик. Нужна статистика? Adso. Желаете принять списки кандидатов без контекстной информации? Pinyin4j.
Только с открытым исходным кодом или же за деньги? – bmargulies 2010-12-06 00:02:37
@bmargulies: Я предпочитаю открытый исходный код с закрытым исходным кодом, но я в порядке с обоими – bguiz 2010-12-06 04:33:49