【学习】python 汉语转拼音


一、pypinyin

 概述

Python 中提供了汉字转拼音的库,名字叫做 PyPinyin,可以用于汉字注音、排序、检索等等场合,是基于 hotto/pinyin 这个库开发的,一些站点链接如下:

它有这么几个特性:

  • 根据词组智能匹配最正确的拼音。
  • 支持多音字。
  • 简单的繁体支持, 注音支持。
  • 支持多种不同拼音/注音风格。

 安装

   通过 pip 安装即可:

pip install pypinyin

  安装完成之后导入一下这个库

import pypinyin

 用法

 

from pypinyin import pinyin
print(pinyin('中国'))

  运行结果:

[['zhōng'], ['guó']]

  可以看到结果会是一个二维的列表,每个元素都另外成了一个列表,其中包含了每个字的读音。如果想要不带声调的只需要将style参数设置为 style=pypinyin.NORMAL 即可。

怎么更美观的输出拼音呢?以下代码仅供参考。

import pypinyin


# 不带声调的(style=pypinyin.NORMAL)
def py1(word):
    s = ''
    for i in pypinyin.pinyin(word, style=pypinyin.NORMAL):
        s = s + ''.join(i) + " "
    return s


# 带声调的(默认)
def py2(word):
    s = ''
    for i in pypinyin.pinyin(word):
        s = s + ''.join(i) + " "
    return s


if __name__ == "__main__":
    print(py1("中华人民共和国"))
    print(py2("中华人民共和国"))

 输出结果:

zhong hua ren min gong he guo 
zhōng huá rén mín gòng hé guó 

  更多详细的用法,请查阅官方文档:https://pypinyin.readthedocs.io/zh_CN/master/

另外

网上还有另一种方法,可以参考以下代码:

 

二、xpinyin

 

>>> from xpinyin import Pinyin
>>> p = Pinyin()
>>> # default splitter is `-`
>>> p.get_pinyin(u"上海")
'shang-hai'
>>> # show tone marks
>>> p.get_pinyin(u"上海", show_tone_marks=True)
'shàng-hǎi'
>>> # remove splitter
>>> p.get_pinyin(u"上海", '')
'shanghai'
>>> # set splitter as whitespace
>>> p.get_pinyin(u"上海", ' ')
'shang hai'
>>> p.get_initial(u"上")
'S'
>>> p.get_initials(u"上海")
'S-H'
>>> p.get_initials(u"上海", u'')
'SH'
>>> p.get_initials(u"上海", u' ')
'S H'

 !该部分内容为之前从网络博客上收藏的,现找不到源地址。!

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM