本文实例讲述了python实现将汉字转换成汉语拼音的库。分享给大家供大家参考。具体分析如下:
下面的这个python库可以很容易的将汉字转换成拼音,其中用到了一个word.data 的字典,可点击此处本站下载。
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
|
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__version__ = '0.9'
__all__ = [ "PinYin" ]
import os.path
class PinYin( object ):
def __init__( self , dict_file = 'word.data' ):
self .word_dict = {}
self .dict_file = dict_file
def load_word( self ):
if not os.path.exists( self .dict_file):
raise IOError( "NotFoundFile" )
with file ( self .dict_file) as f_obj:
for f_line in f_obj.readlines():
try :
line = f_line.split( ' ' )
self .word_dict[line[ 0 ]] = line[ 1 ]
except :
line = f_line.split( ' ' )
self .word_dict[line[ 0 ]] = line[ 1 ]
def hanzi2pinyin( self , string = ""):
result = []
if not isinstance (string, unicode ):
string = string.decode( "utf-8" )
for char in string:
key = '%X' % ord (char)
result.append( self .word_dict.get(key,char).split()[ 0 ][: - 1 ].lower())
return result
def hanzi2pinyin_split( self , string = " ", split=" "):
result = self .hanzi2pinyin(string = string)
if split = = "":
return result
else :
return split.join(result)
if __name__ = = "__main__" :
test = PinYin()
test.load_word()
string = "欢迎来到服务器之家"
print "in: %s" % string
print "out: %s" % str (test.hanzi2pinyin(string = string))
print "out: %s" % test.hanzi2pinyin_split(string = string, split = "-" )
|
希望本文所述对大家的Python程序设计有所帮助。