2010-12-05 4 views
6

Как конвертировать из китайских иероглифов к пиньиню?Преобразовать китайские символы пиньиньте

E.g.

你 -> nǐ

马 -> Mǎ


Дополнительная информация:

Либо акцентами или числовые формы пиньинь приемлемы, числовая форма является моим предпочтением.

Рекомендуется библиотека Java, однако библиотека на другом языке, которая может быть помещена в оболочку, также в порядке.

Я хотел бы всех, кто имеет лично использовал такую ​​библиотеку, прежде чем рекомендовать или прокомментировать его, с точки зрения его качества/reliabilitty.

+0

Только с открытым исходным кодом или же за деньги? – bmargulies 2010-12-06 00:02:37

+0

@bmargulies: Я предпочитаю открытый исходный код с закрытым исходным кодом, но я в порядке с обоими – bguiz 2010-12-06 04:33:49

ответ

5

Проблема преобразования ханзи в пиньинь довольно сложна. Есть много символов ханзи, которые имеют множественные представления пиньинь, в зависимости от контекста. Сравните 长大 (pinyin: zhang da) с 长城 (пиньинь: чанг чэн). По этой причине односимвольное преобразование часто фактически бесполезно, если у вас нет системы, которая выводит несколько возможностей. Существует также проблема сегментации слов, которая также может повлиять на представление пиньинь. Хотя, возможно, вы уже это знали, я думал, что это важно.

При этом Adso Package содержит как сегмент, так и вероятностный аннотатор пиньинь, основанный на отличной библиотеке Adso. Требуется некоторое время, чтобы привыкнуть, хотя и может быть намного больше, чем вы ищете (я уже в прошлом считал, что это слишком громоздко для моих нужд). Кроме того, не существует публичного API в любом месте и его C++ ...

Для недавнего проекта, поскольку я работал с именами мест, я просто использовал API Google Translate (в частности, неофициальную java-версию порт, который, по крайней мере, для обычных существительных, как правило, делает хорошую работу по переводу на пиньинь. Проблема - это обычно используемые альтернативные системы транслитерации, такие как «Гонконг» для того, что должно быть «XiangGang». Учитывая все это, Google Translate довольно ограничен, но он предлагает начало. Раньше я не слышал о pinyin4j, но после игры с ним только сейчас я обнаружил, что он менее оптимален - пока он выводит список потенциальных кандидатов-пиньинь-романизаций, которые он делает нет попытки статистически определить их вероятность. Существует метод возврата одного представления, но он скоро будет постепенно отменен, поскольку в настоящее время он возвращает только первый romani не наиболее вероятным. Там, где программа, кажется, преуспевает, это преобразование между латинизациями и общей конфигурацией.

Короче говоря, ответ может быть любым из них, в зависимости от того, что вам нужно. Идиосинкразические собственные существительные?Гугл переводчик. Нужна статистика? Adso. Желаете принять списки кандидатов без контекстной информации? Pinyin4j.

1

продает набор лингвистических технологий, которые, помимо всего прочего, могут производить пиньинь для китайских слов. Поскольку вы указали, что у вас есть предпочтение открытому исходному коду, и поскольку, если вам нужна только конверсия пиньинь, я не могу сказать, что наши вещи имеют огромное преимущество, я оставлю вас искать нас, если альтернатива с открытым исходным кодом от @mjv не устраивает.

2

В Python попробовать

from cjklib.characterlookup import CharacterLookup 
cjk = CharacterLookup('C') 
cjk.getReadingForCharacter(u'北', 'Pinyin') 

Вы получите

['běi', 'bèi'] 

Отказ от ответственности: Я автор этой библиотеки.

Смежные вопросы