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

          共 1919字,需瀏覽 4分鐘

           ·

          2022-05-26 08:59

          在自然語言處理界,模式匹配可以說是最常用的技術。甚至可以說,將NLP技術作為真實生產力的項目都少不了模式匹配。

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

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

          下面是一個使用例子:

          1.準備



          首先需要你的電腦安裝好了Python環(huán)境,并且安裝好了Python開發(fā)工具。

          如果你還沒有安裝,可以參考以下文章:

          如果僅用Python來處理數據、爬蟲、數據分析或者自動化腳本、機器學習等,建議使用Python基礎環(huán)境+jupyter即可,安裝使用參考Windows/Mac 安裝、使用Python環(huán)境+jupyter notebook

          如果想利用Python進行web項目開發(fā)等,建議使用Python基礎環(huán)境+Pycharm,安裝使用參考 :Windows下安裝、使用Pycharm教程,這下全了?和?Mac下玩轉Python-安裝&使用Python/PyCharm?。

          請選擇以下任一種方式輸入命令安裝依賴

          1. Windows 環(huán)境 打開 Cmd (開始-運行-CMD)。
          2. MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
          3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.

          pip install?pampy


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

          2.使用



          特性1:HEAD 和 TAIL

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

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

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


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

          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:甚至能匹配字典中的鍵

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

          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('我的天,你長得真像鱈魚'))
          # => '你像鱈魚'


          如果你喜歡今天的Python 教程,請持續(xù)關注Python實用寶典,如果對你有幫助,麻煩在下面點一個贊/在看,有任何問題都可以在下方留言,我們會耐心解答的!

          --end--



          掃碼即可加我微信

          學習交流

          老表朋友圈經常有贈書/紅包福利活動

          瀏覽 57
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  亚洲视频一区二区三区 | 天天日天天爽天天射 | 亚洲娱乐综合 | 91丨九色丨 黑色JK在线 91无码人妻精品1国产四虎 | 国产灌醉 |