代码之家  ›  专栏  ›  技术社区  ›  ccpizza

如何将汉字音译成注音(爪哇语)

  •  0
  • ccpizza  · 技术社区  · 5 年前

    如何将繁体字或简体字转换成注音?

    例子

    # simplified
    没关系 --> ㄇㄟˊㄍㄨㄢㄒㄧ
    
    # traditional
    沒關係 --> ㄇㄟˊㄍㄨㄢㄒㄧ
    
    0 回复  |  直到 4 年前
        1
  •  3
  •   ccpizza    4 年前

    蟒蛇之路

    dragonmapper 模块进行汉字到注音的转换(内部先转换成拼音,然后再转换成注音):

    # install dependencies: pip install dragonmapper
    
    from dragonmapper import hanzi
    
    hanzi.to_zhuyin('太阳')
    >>> 'ㄊㄞˋ ㄧㄤ˙'
    

    Java方式

    1. 使用将中文文本(简体或繁体)转换为拼音 pinyin4j pypinyin (python)等。
    2. logic 生成 final regex ).
    3. http://www.pinyin.info/romanization/bopomofo/basic.html https://terpconnect.umd.edu/~nsw/chinese/pinyin.htm .

    步骤1的可能场景:

    Java代码
    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代码
    from pypinyin import pinyin
    
    hanzi_text = '當然可以'
    pinyin_text = ' '.join([seg[0] for seg in pinyin(hanzi_text)])
    print(pinyin_text)
    

    步骤2的场景:

    this one this one (js格式)。

    https://github.com/osfans/rime-tool/blob/master/data/y/taiwan.dict.yaml . 缺点是(使用这个特定的源代码)它只处理简体中文,而不处理繁体字。

    libchenging项目的映射包括简体字和繁体字(加上频率数据和多个字符的特殊情况): https://github.com/chewing/libchewing/blob/master/data/tsi.src jieba (蟒蛇), jieba-analysis (java)等。