1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Python 強(qiáng)大的模式匹配工具—Pampy

        共 2075字,需瀏覽 5分鐘

         ·

        2021-02-28 20:35

        在自然語言處理界,模式匹配可以說是最常用的技術(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('我的天,你長得真像鱈魚'))
        # => '你像鱈魚'


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


        點(diǎn)擊下方閱讀原文可以獲取所有代碼和鏈接哦!

        Python實(shí)用寶典 (pythondict.com)

        不只是一個(gè)寶典

        歡迎關(guān)注公眾號:Python實(shí)用寶典
        瀏覽 46
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            韩日大奶子姑娘性交 | 大吊一区 | 欧美熟妇精品一区二区蜜臀视频 | 免费看一级黄色片 | zzijzzji亚洲日本少妇 | 中文字幕 码精品视频网站 | 日韩欧美手机在线 | 国产夫妻视频 | 国产福利一区二区在线观看 | 五月天激情国产综合婷婷婷 |