文字转拼音
import os.path
class PinYin(object):
def __init__(self):
self.word_dict = {}
def load_word(self, dict_file):
self.dict_file = dict_file
if not os.path.exists(self.dict_file):
raise IOError("No Found Dict File.")
with open(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 word2pinyin(self, string="", firstcode=False):
result = []
for char in string:
key = '%X' % ord(char)
value = self.word_dict.get(key, char)
outpinyin = str(value).split()[0][:-1].lower()
if not outpinyin:
outpinyin = char
if firstcode:
result.append(outpinyin[0])
else:
result.append(outpinyin)
return result
def word2pinyin_split(self, string="", split="", firstcode=False):
result = self.word2pinyin(string=string, firstcode=firstcode)
return split.join(result)
def main():
pinyin = PinYin()
pinyin.load_word('G:\Py_Workspace\Py_config\word.data')
string = "Java程序性能优化-让你的Java程序更快更稳定"
print("in: %s" % string)
#print("out: %s" % str(pinyin.word2pinyin(string=string)))
#print("out: %s" % pinyin.word2pinyin_split(string=string, split="", firstcode=True))
print("out: %s" % pinyin.word2pinyin_split(string=string, split="", firstcode=False))
if __name__ == "__main__":
main()