python:将汉字转换为拼音能不能输出拆开的拼音啊
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python:将汉字转换为拼音能不能输出拆开的拼音啊相关的知识,希望对你有一定的参考价值。
这个是网上给的
import pinyin
test = pinyin()
test.load_word()
test.hanzi2pinyin(string='钓鱼岛是中国的')
但是现在我用的是ipython最新版本,不能这么用,不然只能得到以下结果:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-50-8772c842ac71> in <module>()
1 import pinyin
----> 2 test = pinyin()
3 test.load_word()
4 test.hanzi2pinyin(string='钓鱼岛是中国的')
TypeError: 'module' object is not callable
我现在只会用
import pinyin
test = pinyin.get(q)
print test
输出的是:diaoyudaoshizhongguode
但是我想要的是:['diao', 'yu', 'dao', 'shi', 'zhong', 'guo', 'de']
怎么处理啊?哪位大神好心回答,谢谢啦!!
print [pinyin.get(w) for w in q]追问
太谢谢了!
大神能不能大致讲一下下喵,,那个q是什么?
#--encoding:gbk--
q = '钓鱼岛是中国的'
q = q.decode('gbk')
import pinyin
print [pinyin.get(w) for w in q]
可能差不多是这样吧
出来个这个:UnicodeDecodeError: 'gbk' codec can't decode bytes in position 14-15: illegal multibyte sequence求大神帮助
追答看你的文件用的是什么编码了。
如果用utf-8
就用q.decode('utf-8')
Python实现汉字转换拼音
有两个模块都可以实现,一个是 xpinyin
模块,还有一个是pypinyin
模块,xpinyin
模块只是将汉字转换为拼音字母,汉字的拼音字母是没有音调, pypinyin
模块不仅将汉字转换为拼音字母,而且汉字的拼音字母是没有音调也都可以输出出来!
一、xpinyin
模块
1、安装 xpinyin 模块
pip install xpinyin
2、基本使用
from xpinyin import Pinyin
name = '金领冠珍护405听3'
p = Pinyin()
##转换为小写拼音,默认以 - 为分隔
print(p.get_pinyin(name)) #jin-ling-guan-zhen-hu-405-ting-3
#转换为小写拼音,指定分隔符为空
print(p.get_pinyin(name,'')) #jinlingguanzhenhu405ting3
#转换为小写拼音,指定分隔符为空格
print(p.get_pinyin(name,' ')) #jin ling guan zhen hu 405 ting 3
#显示汉字的一个字母的大写首字母
print(p.get_initial('金')) #J
#显示多个汉字第一个字母的大写首字母,默认以 - 为分隔
print(p.get_initials(name)) #J-L-G-Z-H-4-0-5-T-3
#显示多个汉字第一个字母的大写首字母,指定分隔符为空
print(p.get_initials(name,'')) #JLGZH405T3
#显示多个汉字第一个字母的大写首字母,指定分隔符为空格
print(p.get_initials(name,' ')) #J L G Z H 4 0 5 T 3
二、pypinyin
模块
1、安装 pypinyin 模块
pip install pypinyin
2、基本使用
from pypinyin import pinyin as py
name = '金领冠珍护405听3'
print(py(name))
#运行结果
[['jīn'], ['lǐng'], ['guān'], ['zhēn'], ['hù'], ['405'], ['tīng'], ['3']]
transform_result = py(name)
print(type(transform_result))
for i in transform_result:
for k in i:
print(k,end=' ')
#运行结果
<class 'list'>
jīn lǐng guān zhēn hù 405 tīng 3
########多音字########
from pypinyin import pinyin as py
print('"中"的拼音:',py('中',heteronym=True))
print('"中国"的拼音',py('中国',heteronym=True))
print('"金领冠珍护405听3"的拼音',py('金领冠珍护405听3',heteronym=True))
#运行结果
"中"的拼音: [['zhōng', 'zhòng']]
"中国"的拼音 [['zhōng'], ['guó']]
"金领冠珍护405听3"的拼音 [['jīn', 'jìn'], ['lǐng'], ['guān', 'guàn'], ['zhēn'], ['hù'], ['405'], ['tīng', 'yǐn', 'yí'], ['3']]
########不带音调的拼音########
from pypinyin import pinyin as py,lazy_pinyin as lpy, Style
print(lpy('中'))
print(lpy('中国'))
print(lpy('金领冠珍护405听3',style=Style.TONE)) #默认为Style.NORMAL
#运行结果
['zhong']
['zhong', 'guo']
['jīn', 'lǐng', 'guān', 'zhēn', 'hù', '405', 'tīng', '3']
以上是关于python:将汉字转换为拼音能不能输出拆开的拼音啊的主要内容,如果未能解决你的问题,请参考以下文章