<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 強(qiáng)大的模式匹配工具

          共 2204字,需瀏覽 5分鐘

           ·

          2021-03-14 02:09

          ↑↑↑關(guān)注后"星標(biāo)"簡說Python
          人人都可以簡單入門Python、爬蟲、數(shù)據(jù)分析
           簡說Python推薦 
          來源|Python實(shí)用寶典
          作者|Ckend


          在自然語言處理界,模式匹配可以說是最常用的技術(shù)。甚至可以說,將NLP技術(shù)作為真實(shí)生產(chǎn)力的項(xiàng)目都少不了模式匹配

          什么是模式匹配呢?在計(jì)算機(jī)科學(xué)中,往往是檢查給定的序列或字符串中是否有符合某種模式的片段。比如說:“啊,你的AK-47打得真準(zhǔn)”,如果我們將 “啊,你的_____打得真準(zhǔn) ” 作為一種模式,則會將AK-47匹配出來。

          實(shí)現(xiàn)模式匹配往往都是用正則表達(dá)式,但是如果你想識別特別復(fù)雜的模式,編寫正則表達(dá)式就會變得非常非常麻煩。而Pampy這個(gè)項(xiàng)目能解決你不少的煩惱。https://github.com/santinic/pampy

          下面是一個(gè)使用例子:

          1.安裝



          趕緊讓我們來試一下,安裝Pampy前,你要確保Python和pip已經(jīng)成功安裝在電腦上噢,如果沒有,請?jiān)L問這篇文章:超詳細(xì)Python安裝指南

          打開Cmd(開始—運(yùn)行—CMD)或Terminal(command+空格輸入Terminal). 輸入以下命令安裝Pampy:

          pip install pampy


          看到 Successfully installed pampy-0.3.0 則說明安裝成功。

          2.使用



          特性1:HEAD 和 TAIL

          HEAD和TAIL能代表某個(gè)模式的前面部分或后面部分。

          比如將特定模式后的元素都變成元組:

          from pampy import match, HEAD, TAIL, _
          x = [-1, -2, -3, 0, 1, 2, 3]
          print(match(x, [-1, TAIL], lambda t: [-1, tuple(t)]))
          # => [-1, (-2, -3, 0, 1, 2, 3)]


          將特定模式前的元素設(shè)為集合,后面的元素設(shè)為元組:

          from pampy import match, HEAD, TAIL, _

          x = [-1, -2, -3, 0, 1, 2, 3]

          print(match(x, [HEAD, _, _, 0, TAIL], lambda h, a, b, t: (set([h, a, b]), tuple(t))))

          # => ({-3, -1, -2}, (1, 2, 3))


          特性2:甚至能匹配字典中的鍵

          在你不知道哪個(gè)鍵下有某個(gè)值的時(shí)候,這招非常好用:

          from pampy import match, HEAD, TAIL, _

          my_dict = {
              'global_setting': [1, 3, 3],
              'user_setting': {
                  'face': ['beautiful', 'ugly'],
                  'mind': ['smart', 'stupid']
              }
          }

          result = match(my_dict, { _: {'face': _}}, lambda key, son_value: (key, son_value))

          print(result)

          # => ('user_setting', ['beautiful', 'ugly'])


          特性3: 搭配正則

          不僅如此,它還能搭配正則一起使用哦:

          import re

          from pampy import match, HEAD, TAIL, _

          def what_is(pet):
              return match(
                  pet, re.compile('(\w+),(\w)\w+鱈魚$'), lambda mygod, you: you + "像鱈魚"
              )

          print(what_is('我的天,你長得真像鱈魚'))
          # => '你像鱈魚'


          掃碼回復(fù):2021

          獲取最新學(xué)習(xí)資源

          推薦大家關(guān)注兩個(gè)公號


          分享程序員生活、互聯(lián)網(wǎng)資訊、理財(cái)復(fù)盤日記等
          專注于Java學(xué)習(xí)分享,從零和你一起學(xué)Java
          關(guān)注后回復(fù)【1024】
          送上獨(dú)家資料
          ◆◆◆
          歡迎大家圍觀朋友圈,我的微信:pythonbrief
          學(xué)習(xí)更多:
          整理了我開始分享學(xué)習(xí)筆記到現(xiàn)在超過250篇優(yōu)質(zhì)文章,涵蓋數(shù)據(jù)分析、爬蟲、機(jī)器學(xué)習(xí)等方面,別再說不知道該從哪開始,實(shí)戰(zhàn)哪里找了

          點(diǎn)贊”傳統(tǒng)美德不能丟 

          瀏覽 71
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  日本操操操BBB | 99日韩在线| 日日日日女人 | 成人做爱无码 | 天天爽av |