您现在的位置是:网站首页 > 博客日记 >

python的拼音模块及自定义函数

作者:YXN-python 阅读量:87 发布日期:2023-02-28

1、python的拼音模块及自定义函数

功能和用途

1、pinyin 是一个较简单和轻量级的拼音转换库,它提供了将汉字转换为拼音的基本功能。

它不支持自定义拼音词典和其他高级功能。

2、pypinyin 是一个功能更为强大和全面的拼音转换库,除了基本的拼音转换外,它还支持自定义拼音词典、多音字处理、音调标注、分词等高级功能。

依赖关系: pypinyin 实际上是基于 pinyin 库进行开发的,它使用 pinyin 库的一些核心功能来进行拼音转换。

 因此,使用 pypinyin 时,通常需要先安装 pinyin 库,以满足 pypinyin 的

pip install pinyin
pip install pypinyin

话不多说,直接上代码:

from pypinyin import pinyin, Style

# 转换为拼音
def convert_to_pinyin(words):
    """
    将字典内指定的所有值转为拼音
    """
    pinyin_list = pinyin(words, style=Style.NORMAL)
    return ''.join([p[0] for p in pinyin_list])

convert_to_pinyin('你是猪')

 

import pypinyin

pypinyin的函数有哪些 = '''    
    pinyin(text, ...):主要函数,用于将中文文本转换为拼音。可以使用不同的风格参数来控制拼音的输出格式。
    lazy_pinyin(text, ...):与 pinyin 函数类似,将中文文本转换为拼音。
    slug(text, separator="-"):将中文文本转换为拼音,并使用指定的分隔符分隔拼音。
    	适用于创建 URL 或文件名等需要拼音格式的场景。
    load_phrases_dict(phrases_dict):加载自定义的拼音词典,用于处理特定的词语或短语的拼音。
    Style:拼音风格类,其中定义了多个常量用于指定拼音的风格。可以使用这些常量来控制拼音输出的格式。
	'''

style参数 = '''    
    Style.NORMAL (默认风格):使用带声调的拼音形式,例如:"zhōng"。
    Style.TONE 仅返回带声调符号的拼音,例如:"zhong1"。
    Style.TONE2 返回带声调数字的拼音,声调用数字 0-4 表示,例如:"zho1ng"。
    Style.TONE3 返回带声调数字的拼音,声调用数字 1-4 表示,例如:"zho1ng"。
    
    Style.INITIALS 仅返回声母部分的拼音,例如:"zh"。
    Style.FINALS 仅返回韵母部分的拼音,例如:"ong"。
    Style.FINALS_TONE 返回带声调的韵母拼音,例如:"ōng"。
    
    Style.INITIALS_TONE 返回带声调的声母拼音,例如:"zhōng"。
    Style.FIRST_LETTER 返回每个拼音的首字母,例如:"z"。
	'''

1、pinyin函数的参数(列表格式输出):

text: 必需参数,表示要转换成拼音的中文文本,可以是字符串或列表。

style: 可选参数,用于指定拼音的风格。可以使用 Style 类中定义的风格参数,

    例如 Style.NORMAL、Style.TONE、Style.TONE2 等。默认风格是 Style.NORMAL,即带声调的拼音。

heteronym: 可选参数,用于指定多音字是否使用多音字的所有拼音还是只使用一个拼音。

    默认为 False,表示只使用一个拼音。

errors: 可选参数,用于指定在转换时遇到错误的处理方式。

    可以是字符串 "default"(默认)或 "ignore"。"default" 表示在转换时遇到错误将引发异常,"ignore" 表示忽略错误并继续转换。

strict: 可选参数,用于指定是否对未知字符执行严格处理。

    默认为 False,表示不进行严格处理。

2、lazy_pinyin 函数(文本格式输出)

lazy_pinyin的参数 = '''
    text (必须参数):要转换为拼音的中文文本,可以是字符串或列表。
    style (可选参数):用于指定拼音的风格。
    errors (可选参数):用于指定在转换时遇到错误的处理方式。
    	默认是 "default",表示在转换时遇到错误将引发异常。也可以设置为 "ignore",表示忽略错误并继续转换。
    heteronym (可选参数):用于多音字显示所有拼音还是只一个拼音。默认为 False,表示只使用一个拼音。
    strict (可选参数):用于指定是否对未知字符执行严格处理。默认为 False,表示不进行严格处理。
'''
Style参数 = '''
    Style.NORMAL: 默认风格,输出带有声调的拼音。例如:"zhōng"。
    Style.TONE: 输出带有声调符号的拼音。例如:"zhōng"。
    Style.TONE2: 输出带有声调数字的拼音。例如:"zho1ng"。
    Style.INITIALS: 仅输出声母部分的拼音。例如:"zh"。
    Style.FINALS: 仅输出韵母部分的拼音。例如:"ong"。
    Style.INITIALS_TONE: 输出带有声调的声母部分的拼音。例如:"zhō"。
    Style.FINALS_TONE: 输出带有声调的韵母部分的拼音。例如:"ōng"。
    Style.INITIALS_TONE2: 输出带有声调数字的声母部分的拼音。例如:"zho1"。
    Style.FINALS_TONE2: 输出带有声调数字的韵母部分的拼音。例如:"o1ng"。
    Style.BOPOMOFO: 输出注音符号的拼音。例如:"ㄓㄨㄥ"。
    Style.BOPOMOFO_FIRST: 输出以注音符号首字母表示的拼音。例如:"zh"。
	'''

3、自定义函数

def get_pinyin1234list(text):
    
    from pypinyin import pinyin, Style 
    x = []
    
    for t in pinyin(text, style=Style.TONE, heteronym=False):
        x.append(t[0])
        
    print(x)
    return x
get_pinyin1234list('常立节')

def get_pinyin1234(text):    

    from pypinyin import Style, lazy_pinyin
    pinyin_text = ''
    for t in lazy_pinyin(text, style=Style.TONE):
        x = f''' {t}'''
        pinyin_text += x
    print(pinyin_text)
    return pinyin_text

def get_pinyin_en(text):
    from pypinyin import Style, lazy_pinyin
    pinyin_text = ''
    for t in lazy_pinyin(text, style=Style.NORMAL):
        x = f''' {t}'''
        pinyin_text += x
    print(pinyin_text)
    return pinyin_text


def get_pinyin_sep(text,sep):    
  
    from pypinyin import slug
    
    pinyin_text = ''
    for t in slug(text, separator=sep):
        x = f'''{t}'''
        pinyin_text += x
    print(pinyin_text)
    return pinyin_text

效果展示:

YXN-python

2023-02-28