<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)大的模式匹配工具—Pampy

          共 2723字,需瀏覽 6分鐘

           ·

          2021-03-11 22:28

          點擊上方“AirPython”,選擇“加為星標(biāo)

          第一時間關(guān)注Python技術(shù)干貨!

          大家好,我是安果!

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

          什么是模式匹配呢?

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

          實現(xiàn)模式匹配往往都是用正則表達(dá)式,但是如果你想識別特別復(fù)雜的模式,編寫正則表達(dá)式就會變得非常非常麻煩

          而 Pampy 這個項目能解決你不少的煩惱

          項目地址:

          https://github.com/santinic/pampy

          下面是一個使用例子:

          1. 安裝

          趕緊讓我們來試一下,安裝 Pampy 前,你要確保 Python 和 pip 已經(jīng)成功安裝在電腦上噢

          使用命令安裝 Pampy

          $ pip install pampy

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

          2. 使用

          特性1:HEAD 和 TAIL

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

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

          from pampy import match, HEAD, TAIL, _
          x = [-1-2-30123]
          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-30123]

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

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

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

          在你不知道哪個鍵下有某個值的時候,這招非常好用:

          from pampy import match, HEAD, TAIL, _

          my_dict = {
              'global_setting': [133],
              '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('我的天,你長得真像鱈魚'))
          # => '你像鱈魚'

          好了,以上就是今天的文章。如果對你有幫助,麻煩在下面點一個贊/在看,有任何問題都可以在下方留言,我會耐心解答的!


          留言送書

          本周贈書:《從零開始學(xué)Selenium自動化
          介紹:基于 Python 語言,系統(tǒng)地介紹了 Selenium 自動化測試的相關(guān)知識及應(yīng)用。書中的大部分知識點都匹配了可獨立運行的典型實例,便于讀者學(xué)習(xí)與實踐。另外,為了幫助讀者更加高效、直觀地學(xué)習(xí),本書特意提供了約 10 小時基礎(chǔ)操作配套教學(xué)視頻。相信讀者通過系統(tǒng)地學(xué)習(xí)本書內(nèi)容,可以全面掌握Selenium 3 自動化測試技術(shù)


          PS:中獎名單將在交流群公布,可以掃描上面二維碼,備注【交流群】,加入技術(shù)交流群!



          ??分享、點贊、在看,給個三連擊唄!
          瀏覽 49
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

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

          手機(jī)掃一掃分享

          分享
          舉報
          <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>
                  人人草大香蕉 | 国产免费色色情片 | AV网子 | 精品人妻一区二区乱码 | 51妺妺嘿嘿午夜福利 |