zoukankan      html  css  js  c++  java
  • Python之将汉语转为拼音

    Python将汉字转为拼音的第三方库。

    一. xpinyin库

    1. 安装

    pip install xpinyin
    

    2. 使用技巧

    语法格式:get_pinyin(chars: str, splitter: str = '-',tone_marks=None, convert: str = 'lower')

    解释参数:

    • chars:需要转换为拼音的字符串汉字。不是汉字也可以,但是不会进行转换。
    • splitter:每个拼音间的拼接字符。
    • tone_marks:主要是汉字转换成拼单是否需要带上音节。需要带上音节就加上tone_marks='numbers',还有一种是在拼音的最后返回是第几音节的做法tone_marks='numbers'。如果加上了tone_marks='numbers'这个参数就不需要加tone_marks='numbers'了。
    • convert:拼音转换后是否需要拼音大小写或首字母大写返回。默认值为lower是小写。upper是全大写。capitalize是首字母大写。

    注意:该库默认是使用-号进行每个汉字的拼音区分开来的。

    a. 简单使用

    from xpinyin import Pinyin
    
    # 实例拼音转换对象
    p = Pinyin()
    # 汉字进行拼音转换
    res = p.get_pinyin(u"一切皆往事")
    print(res) # yi-qie-jie-wang-shi
    

    b. 以#号进行拼音的拼接

    from xpinyin import Pinyin
    
    # 实例拼音转换对象
    p = Pinyin()
    # 进行拼音转换
    res = p.get_pinyin(u"一切皆往事", splitter="#")
    print(res) # yi#qie#jie#wang#shi
    

    c. 汉字转拼音后带上音节

    如果要转化成带音节的拼音,需要传递参数tone_marks="marks"

    from xpinyin import Pinyin
    
    # 实例拼音转换对象
    p = Pinyin()
    # 进行拼音转换
    res = p.get_pinyin(u"一切皆往事", tone_marks='marks')
    print(res) # yī-qiē-jiē-wǎng-shì
    

    如果你不想要以-号进行每个拼音间的拼接的话,可以使用splitter这个参数。值为你想要进行每个拼音间拼接的字符。

    如我想拼音间拼接的字符是#号,源码如下:

    from xpinyin import Pinyin
    
    p = Pinyin()
    res = p.get_pinyin(u"一切皆往事", tone_marks='marks', splitter="#")
    print(res) # yī#qiē#jiē#wǎng#shì
    

    d. 拼音全大写

    from xpinyin import Pinyin
    
    # 实例拼音转换对象
    p = Pinyin()
    # 进行拼音转换
    res = p.get_pinyin(u"一切皆往事", convert='upper')
    print(res) # YI-QIE-JIE-WANG-SHI
    

    e. 拼音首字母大写

    from xpinyin import Pinyin
    
    # 实例拼音转换对象
    p = Pinyin()
    # 进行拼音转换
    res = p.get_pinyin(u"一切皆往事", convert='capitalize')
    print(res) # Yi-Qie-Jie-Wang-Shi
    

    二. pypinyin库

    1. 安装

    pip install pypinyin
    

    2. 使用技巧

    a. 带上音节

    import pypinyin
    
    s = pypinyin.pinyin("一切皆往事")
    print(s) # [['yī'], ['qiè'], ['jiē'], ['wǎng'], ['shì']]
    

    b. 不带音节

    import pypinyin
    
    s = pypinyin.pinyin("一切皆往事", style=pypinyin.NORMAL)
    print(s) # [['yi'], ['qie'], ['jie'], ['wang'], ['shi']]
    
  • 相关阅读:
    linux下syscall函数 间接系统调用
    多线程 概述
    linux 信号与多线程
    linux ps命令介绍
    终端 进程关系
    shell 前台进程组的选择
    try catch finally的执行顺序到底是怎样的?
    OpenCV中遇到Microsoft C++ 异常 cv::Exception
    hdu1087Super Jumping! Jumping! Jumping!(最大递增序列和)
    [置顶] java Gui 键盘监听事件
  • 原文地址:https://www.cnblogs.com/zhenzi0322/p/14291372.html
Copyright © 2011-2022 走看看