zoukankan      html  css  js  c++  java
  • Python 将中文转拼音

    文字转拼音

    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()
    

      

  • 相关阅读:
    驱动表
    将索引移动到别的表空间
    log file sync, log file parallell write
    Full Hint
    4wpa_supplicant适配层 详解
    wifi 驱动 进阶11
    wifi 驱动 进阶11
    基于linux2.6.38.8内核的SDIO/wifi驱动分析
    6wpa_supplicant无线网络配置
    2系统启动后的 wifi加载 过程图解
  • 原文地址:https://www.cnblogs.com/eternal1025/p/5287365.html
Copyright © 2011-2022 走看看