如何将中文繁体字或简体字转换为注音注音?
示例
# 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);
from pypinyin import pinyin
hanzi_text = '當然可以'
pinyin_text = ' '.join([seg[0] for seg in pinyin(hanzi_text)])
print(pinyin_text)
如果您在第 1 步中生成了拼音段列表,您现在可以将拼音分成段并使用诸如 this one 或 this one(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.9MB) )。为了能够处理分段,您可能还需要寻找一个像样的中文分段库,例如 jieba (python)、jieba-analysis (java) 等。