Python中文转拼音

pypinyin安装与使用
pip命令安装:
pip install pypinyin

使用pypinyin必须传入unicode字符串
例子1

#!/usr/bin/python
# -*- coding: UTF-8 -*-
from pypinyin import pinyin, lazy_pinyin
py_r = pinyin(u"学python,我在行")
print py_r
print("整理下")
for py in py_r:
    for p in py:
        print p,"",
# 发现上面的"行"字是多音字,本应念"han"
print("\n启动多音字")
py_r = pinyin(u"学python,我在行", heteronym=True)
print py_r
for py in py_r:
    for p in py:
        print p,"",
(venv) allenwoo@~/renren$ python test.py
[[u'xu\xe9'], [u'python,'], [u'w\u01d2'], [u'z\xe0i'], [u'x\xedng']]
整理下
xué  python,  wǒ  zài  xíng 
启动多音字
[[u'xu\xe9'], [u'python,'], [u'w\u01d2'], [u'z\xe0i'], [u'x\xedng', u'h\xe1ng', u'x\xecng', u'h\xe0ng', u'h\xe9ng']]
xué  python,  wǒ  zài  xíng  háng  xìng  hàng  héng

例子2:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
from pypinyin import pinyin, lazy_pinyin
# 不需要声调
py_r = lazy_pinyin(u"没有了诗和远方")
print py_r
  
# 特殊字符
# 默认
py_r = lazy_pinyin(u"满天都是小☆☆")
print py_r
  
# 不理睬,忽略
py_r = lazy_pinyin(u"满天都是小☆☆", errors=u'ignore')
print py_r
  
# 替换
py_r = lazy_pinyin(u"满天都是小☆☆", errors=u'replace')
  
# 也可以使用回调函数处理
py_r = lazy_pinyin(u"满天都是小☆☆", errors=lambda x: 'star')
print py_r
(venv) allenwoo@~/renren$ python test.py
[u'mei', u'you', u'le', u'shi', u'he', u'yuan', u'fang']
[u'man', u'tian', u'dou', u'shi', u'xiao', u'\u2606\u2606']
[u'man', u'tian', u'dou', u'shi', u'xiao']
[u'man', u'tian', u'dou', u'shi', u'xiao', 'star']

在第1个例子中,我们发现这个模块会简单分词,将”python”分为一个词
而且其他的中文词语并没有按词分开后再转拼音

自定义库:####

** 使用load_phrases_dict,自定义拼音库**

#!/usr/bin/python
# -*- coding: UTF-8 -*-
from pypinyin import lazy_pinyin, load_phrases_dict, TONE2
print lazy_pinyin(u"诗和远方", style=TONE2)
load_phrases_dict({u'远方':[['ju4'], ['keng1']]})
print lazy_pinyin(u"诗和远方", style=TONE2)
(venv) allenwoo@~/renren$ python test.py
[u'shi1', u'he2', u'yua3n', u'fa1ng']
[u'shi1', u'he2', 'ju4', 'keng1']
本文标签: python 模块
转载声明:本文为网中小南的原创文章,转载请注明原文地址,谢谢合作

发表评论: