Как преобразовать китайские традиционные или упрощенные символы в фонетическое обозначение Чжуинь?
Пример
# simplified
没关系 --> ㄇㄟˊㄍㄨㄢㄒㄧ
# traditional
沒關係 --> ㄇㄟˊㄍㄨㄢㄒㄧ
Как преобразовать китайские традиционные или упрощенные символы в фонетическое обозначение Чжуинь?
Пример
# simplified
没关系 --> ㄇㄟˊㄍㄨㄢㄒㄧ
# traditional
沒關係 --> ㄇㄟˊㄍㄨㄢㄒㄧ
Модуль dragonmapper выполняет преобразование ханзи в чжуинь (внутренне он преобразует сначала в пиньинь, а затем в чжуинь):
# install dependencies: pip install dragonmapper
from dragonmapper import hanzi
hanzi.to_zhuyin('太阳')
>>> 'ㄊㄞˋ ㄧㄤ˙'
Общий подход заключается в следующем:
HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();
outputFormat.setToneType(HanyuPinyinToneType.WITH_TONE_NUMBER);
outputFormat.setVCharType(HanyuPinyinVCharType.WITH_U_AND_COLON);
outputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
String[] pinyin = PinyinHelper.toHanyuPinyinStringArray(chineseText, outputFormat);
Python code
from pypinyin import pinyin
hanzi_text = '當然可以'
pinyin_text = ' '.join([seg[0] for seg in pinyin(hanzi_text)])
print(pinyin_text)
Если вы создали список сегментов пиньинь на шаге №1, теперь вы можете разбить пиньинь на сегменты и заменить их с помощью карты, такой как вот этот или вот этот (в JS-формат).
Другим решением может быть сопоставление китайских иероглифов напрямую с чжуинь с использованием любого из доступных сопоставлений, таких как это: https://github.com/osfans/rime-tool/blob/master/data/y/taiwan.dict.yaml. Недостатком является то, что (с этим конкретным источником) он будет обрабатывать только упрощенный китайский, но не будет обрабатывать традиционные символы.
ОБНОВЛЕНИЕ. Сопоставление из проекта libchewing охватывает как упрощенные, так и традиционные символы (плюс данные о частоте и особые случаи для нескольких символов): https://github.com/chewing/libchewing/blob/master/data/tsi.src ( 4,9 МБ). Чтобы иметь возможность обрабатывать сегменты, вы, вероятно, также захотите найти достойную китайскую библиотеку сегментации, такую как jieba (python), jieba-analysis (java) и т. д.
bopomofo
, и вы единственный человек, который ответил на этот вопрос, это будет трудно найти кого-то с большим числом представителей этого тега, чтобы предложить синоним ;-) - person jps   schedule 20.07.2020