<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          超簡單 Python 漢字拼音轉(zhuǎn)換工具

          共 5671字,需瀏覽 12分鐘

           ·

          2021-05-24 20:27

          將漢字轉(zhuǎn)為拼音,可以用于批量漢字注音、文字排序、拼音檢索文字等常見場景。

          現(xiàn)在互聯(lián)網(wǎng)上有許多拼音轉(zhuǎn)換工具,基于Python的開源模塊也不少,今天給大家介紹一個功能特性最多的模塊:  pypinyin ,它支持以下特性:

          • 1. 根據(jù)詞組智能匹配最正確的拼音。

          • 2. 支持多音字。

          • 3. 簡單的繁體支持, 注音支持。

          • 4. 支持多種不同拼音/注音風(fēng)格。

          • 5. 命令行工具一鍵轉(zhuǎn)化

          1.準(zhǔn)備



          開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細Python安裝指南 進行安裝。

          (可選1) 如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.

          (可選2) 此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點:Python 編程的最好搭檔—VSCode 詳細指南。

          請選擇以下任一種方式輸入命令安裝依賴
          1. Windows 環(huán)境 打開 Cmd (開始-運行-CMD)。
          2. MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
          3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.

          pip install pypinyin


          2.基本使用



          最普通的拼音轉(zhuǎn)化方法如下:

          # Python實用寶典
          from pypinyin import pinyin, lazy_pinyin, Style
          pinyin('中心')
          # [['zhōng'], ['xīn']]


          識別多音字:

          # Python實用寶典
          from pypinyin import pinyin, lazy_pinyin, Style
          pinyin('中心', heteronym=True) # 啟用多音字模式
          # [['zhōng', 'zhòng'], ['xīn']]


          設(shè)置輸出風(fēng)格,只識別首字母:

          # Python實用寶典
          from pypinyin import pinyin, lazy_pinyin, Style
          pinyin('中心', style=Style.FIRST_LETTER) # 設(shè)置拼音風(fēng)格
          # [['z'], ['x']]


          修改音調(diào)輸出位置,在相應(yīng)字母的后面顯示音調(diào),或者拼音的最后顯示音調(diào):

          # Python實用寶典
          from pypinyin import pinyin, lazy_pinyin, Style

          # TONE2 在相應(yīng)字母的后面顯示音調(diào)
          pinyin('中心', style=Style.TONE2, heteronym=True)
          # [['zho1ng', 'zho4ng'], ['xi1n']]

          # TONE3 拼音的最后顯示音調(diào)
          pinyin('中心', style=Style.TONE3, heteronym=True)
          # [['zhong1', 'zhong4'], ['xin1']]


          不考慮多音字的情況:

          # Python實用寶典
          from pypinyin import pinyin, lazy_pinyin, Style
          lazy_pinyin('中心') # 不考慮多音字的情況
          # ['zhong', 'xin']


          不使用v來代替ü:

          # Python實用寶典
          from pypinyin import pinyin, lazy_pinyin, Style
          lazy_pinyin('戰(zhàn)略', v_to_u=True) # 不使用 v 表示 ü
          # ['zhan', 'lüe']


          標(biāo)記輕聲:

          # Python實用寶典
          from pypinyin import pinyin, lazy_pinyin, Style
          # 使用 5 標(biāo)識輕聲
          lazy_pinyin('衣裳', style=Style.TONE3, neutral_tone_with_five=True)
          # ['yi1', 'shang5']


          使用命令行一鍵識別拼音:

          # Python實用寶典
          python -m pypinyin 音樂
          # yīn yuè


          3.高級使用



          自定義拼音顯示風(fēng)格

          我們可以通過 register() 來實現(xiàn)自定義拼音風(fēng)格的需求:

          from pypinyin import lazy_pinyin

          from pypinyin.style import register

          @register('kiss')
          def kiss(pinyin, **kwargs):
              return '?? {0}'.format(pinyin)

            
          lazy_pinyin('么么', style='kiss')
          # ['?? me', '?? me']


          可以見到,通過定義一個 kiss 函數(shù),使用 register 裝飾器,我們生成了一個新的 style,這個 style 可以直接被用于拼音的轉(zhuǎn)換參數(shù),非常方便。

          另外,所有模塊自帶的 style 及其效果如下:

          @unique
          class Style(IntEnum):
              """拼音風(fēng)格"""

              #: 普通風(fēng)格,不帶聲調(diào)。如:中國 -> ``zhong guo``
              NORMAL = 0
              #: 標(biāo)準(zhǔn)聲調(diào)風(fēng)格,拼音聲調(diào)在韻母第一個字母上(默認風(fēng)格)。如:中國 -> ``zhōng guó``
              TONE = 1
              #: 聲調(diào)風(fēng)格2,即拼音聲調(diào)在各個韻母之后,用數(shù)字 [1-4] 進行表示。如:中國 -> ``zho1ng guo2``
              TONE2 = 2
              #: 聲調(diào)風(fēng)格3,即拼音聲調(diào)在各個拼音之后,用數(shù)字 [1-4] 進行表示。如:中國 -> ``zhong1 guo2``
              TONE3 = 8
              #: 聲母風(fēng)格,只返回各個拼音的聲母部分(注:有的拼音沒有聲母,詳見 `#27`_)。如:中國 -> ``zh g``
              INITIALS = 3
              #: 首字母風(fēng)格,只返回拼音的首字母部分。如:中國 -> ``z g``
              FIRST_LETTER = 4
              #: 韻母風(fēng)格,只返回各個拼音的韻母部分,不帶聲調(diào)。如:中國 -> ``ong uo``
              FINALS = 5
              #: 標(biāo)準(zhǔn)韻母風(fēng)格,帶聲調(diào),聲調(diào)在韻母第一個字母上。如:中國 -> ``ōng uó``
              FINALS_TONE = 6
              #: 韻母風(fēng)格2,帶聲調(diào),聲調(diào)在各個韻母之后,用數(shù)字 [1-4] 進行表示。如:中國 -> ``o1ng uo2``
              FINALS_TONE2 = 7
              #: 韻母風(fēng)格3,帶聲調(diào),聲調(diào)在各個拼音之后,用數(shù)字 [1-4] 進行表示。如:中國 -> ``ong1 uo2``
              FINALS_TONE3 = 9
              #: 注音風(fēng)格,帶聲調(diào),陰平(第一聲)不標(biāo)。如:中國 -> ``ㄓㄨㄥ ㄍㄨㄛˊ``
              BOPOMOFO = 10
              #: 注音風(fēng)格,僅首字母。如:中國 -> ``ㄓ ㄍ``
              BOPOMOFO_FIRST = 11
              #: 漢語拼音與俄語字母對照風(fēng)格,聲調(diào)在各個拼音之后,用數(shù)字 [1-4] 進行表示。如:中國 -> ``чжун1 го2``
              CYRILLIC = 12
              #: 漢語拼音與俄語字母對照風(fēng)格,僅首字母。如:中國 -> ``ч г``
              CYRILLIC_FIRST = 13


          處理特殊字符

          默認情況下,對于文字中的特殊字符會不做任何處理,原樣返回:

          pinyin('你好☆☆')
          # [['nǐ'], ['hǎo'], ['☆☆']]


          不過如果你想對這些特殊字符做處理也是可以的,比如:

          ignore  : 忽略該字符

          pinyin('你好☆☆', errors='ignore')
          # [['nǐ'], ['hǎo']]


          errors : 替換為去掉  \u  的 unicode 編碼:


          pinyin('你好☆☆', errors='replace')
          # [['nǐ'], ['hǎo'], ['26062606']]


          callable 對象  : 提供一個回調(diào)函數(shù),接受無拼音字符(串)作為參數(shù), 支持的返回值類型:  unicode或 list或 None:


          pinyin('你好☆☆', errors=lambda x: 'star')
          # [['nǐ'], ['hǎo'], ['star']]

          pinyin('你好☆☆', errors=lambda x: None)
          # [['nǐ'], ['hǎo']]


          返回值類型為 list時,會自動 expend list:

          pinyin('你好☆☆', errors=lambda x: ['star' for _ in x])
          # [['nǐ'], ['hǎo'], ['star'], ['star']]

          # 指定多音字
          pinyin('你好☆☆', heteronym=True, errors=lambda x: [['star', '☆'] for _ in x])
          # [['nǐ'], ['hǎo'], ['star', '☆'], ['star', '☆']]


          自定義拼音庫

          如果你覺得模塊輸出效果不合你意,或者你想做特殊處理,可以通過  load_single_dict() 或  load_phrases_dict()  以自定義拼音庫的方式修正結(jié)果:

          from pypinyin import lazy_pinyin, load_phrases_dict, Style, load_single_dict
          hans = '桔子'
          lazy_pinyin(hans, style=Style.TONE2)
          # ['jie2', 'zi3']
          load_phrases_dict({'桔子': [['jú'], ['zǐ']]}) # 增加 "桔子" 詞組
          lazy_pinyin(hans, style=Style.TONE2)
          # ['ju2', 'zi3']

          hans = '還沒'
          lazy_pinyin(hans, style=Style.TONE2)
          # ['hua2n', 'me2i']
          load_single_dict({ord('還'): 'hái,huán'}) # 調(diào)整 "還" 字的拼音順序
          lazy_pinyin('還沒', style=Style.TONE2)
          # ['ha2i', 'me2i']


          4. 最后



          提醒一下大家我們的免費抽書活動還在繼續(xù)哦,大家可以參與下方免費抽獎活動,抽三本
          《Python數(shù)據(jù)分析從小白到專家》,即抽即出結(jié)果,沒有套路!


          分享給朋友們一起抽獎還能獲得額外的抽獎機會,中獎概率大概在 0.5% 

          我們的文章到此就結(jié)束啦,如果你喜歡今天的Python 實戰(zhàn)教程,請持續(xù)關(guān)注Python實用寶典。

          有任何問題,可以在公眾號后臺回復(fù):加群,回答相應(yīng)紅字驗證信息,進入互助群詢問。

          原創(chuàng)不易,希望你能在下面點個贊和在看支持我繼續(xù)創(chuàng)作,謝謝!

          點擊下方閱讀原文可獲得更好的閱讀體驗

          Python實用寶典 (pythondict.com)
          不只是一個寶典
          歡迎關(guān)注公眾號:Python實用寶典


          瀏覽 51
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  www.水蜜桃视频 | 精品国产成人a在线观看 | 国产精品久久久久久久蜜月块 | 永久免费黄色视频网站 | 豆花做爱视频 |