当前位置:   article > 正文

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

pypinyin模块函数

1 pypinyin 模块介绍

拼音模块有 pinyin 和 pypinyin

功能和用途:
1 pinyin 是一个较简单和轻量级的拼音转换库,它提供了将汉字转换为拼音的基本功能。
它不支持自定义拼音词典和其他高级功能。
_
2 pypinyin 是一个功能更为强大和全面的拼音转换库,除了基本的拼音转换外,它还支持自定义拼音词典、多音字处理、音调标注、分词等高级功能

依赖关系: pypinyin 实际上是基于 pinyin 库进行开发的,它使用 pinyin 库的一些核心功能来进行拼音转换。
因此,使用 pypinyin 时,通常需要先安装 pinyin 库,以满足 pypinyin 的依赖关系

pip install pinyin
pip install pypinyin
  • 1
  • 2
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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

2 pinyin 函数(列表格式出)

pinyin函数的参数 = '''    
    text: 必需参数,表示要转换成拼音的中文文本,可以是字符串或列表。
    style: 可选参数,用于指定拼音的风格。可以使用 Style 类中定义的风格参数,
    	例如 Style.NORMAL、Style.TONE、Style.TONE2 等。默认风格是 Style.NORMAL,即带声调的拼音。
    heteronym: 可选参数,用于指定多音字是否使用多音字的所有拼音还是只使用一个拼音。
    	默认为 False,表示只使用一个拼音。
    errors: 可选参数,用于指定在转换时遇到错误的处理方式。
    	可以是字符串 "default"(默认)或 "ignore"。"default" 表示在转换时遇到错误将引发异常,"ignore" 表示忽略错误并继续转换。
    strict: 可选参数,用于指定是否对未知字符执行严格处理。
    	默认为 False,表示不进行严格处理。
	'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
from pypinyin import pinyin, Style 

def get_pinyin1234(text):
    '''按声母韵母返回拼音'''
    
    pinyin_text = ''
    for t in pinyin(text, style=Style.TONE, heteronym=False):
        x = f''' {t[0]}'''
        pinyin_text += x
    print(pinyin_text)

get_pinyin1234('刘德华')

输出>>>
liú dé huá
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

3 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"。
	'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
from pypinyin import Style, lazy_pinyin 
def get_pinyin1234(text):
    '''按声母韵母返回拼音'''
    
    pinyin_text = ''
    for t in lazy_pinyin(text, style=Style.TONE):
        x = f''' {t}'''
        pinyin_text += x
    print(pinyin_text)

get_pinyin1234('刘德华')

输出>>>
liú dé huá
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

4 slug 函数(带分隔符)

slug参数 = '''
    text (必须参数):要转换为 slug 的字符串。
    separator (可选参数):用于分隔词组的字符。常用的选项包括 -、_、. 等。默认例如:"this-is-a-slug"。
    lowercase (可选参数):指定是否将 slug 的字母部分转换为小写。默认是 True,表示转换为小写。
    allowed_chars (可选参数):指定允许的字符集合。可以使用正则表达式或简单的字符串指定允许的字符。
    	例如:"a-z0-9-" 表示允许小写字母、数字和连字符。这个参数可以用于过滤或替换不想包含在 slug 中的特殊字符。
	'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
from pypinyin import Style, slug

def get_pinyin(text):
    '''按声母韵母返回拼音'''
    
    pinyin_text = ''
    for t in slug(text, separator='---'):
        x = f''' {t}'''
        pinyin_text += x
    print(pinyin_text)

get_pinyin('刘德华')

输出>>>
l i u - - - d e - - - h u a
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

5 load_phrases_dict 函数(自定义拼音字典)

load_phrases_dict参数 = '''
    text (必须参数):要转换为 slug 的字符串。
    separator (可选参数):用于分隔词组的字符。常用的选项包括 -、_、. 等。默认例如:"this-is-a-slug"。
    lowercase (可选参数):指定是否将 slug 的字母部分转换为小写。默认是 True,表示转换为小写。
    allowed_chars (可选参数):指定允许的字符集合。可以使用正则表达式或简单的字符串指定允许的字符。
    	例如:"a-z0-9-" 表示允许小写字母、数字和连字符。这个参数可以用于过滤或替换不想包含在 slug 中的特殊字符。
	'''
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
from pypinyin import slug, load_phrases_dict

def get_pinyin(text):
    '''按声母韵母返回拼音'''

    # 自定义拼音词典
    custom_dict = {
        '刘': [['abc']],  # '刘' 可以有两种拼音
        }

    # 加载自定义拼音词典
    load_phrases_dict(custom_dict)
    
    pinyin_text = ''
    for t in slug(text, separator='---'):
        x = f''' {t}'''
        pinyin_text += x
    print(pinyin_text)

get_pinyin('刘德华')

输出>>>
 a b c - - - d e - - - h u a
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

函数白送了

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

效果
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/203982
推荐阅读
相关标签
  

闽ICP备14008679号