0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于Python強大的模式匹配工具

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-30 09:22 ? 次閱讀

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

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

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

下面是一個使用例子:

圖片

1.準(zhǔn)備

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

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

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

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

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

將特定模式前的元素設(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:甚至能匹配字典中的鍵

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

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('我的天,你長得真像鱈魚'))
# = > '你像鱈魚'
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    585

    瀏覽量

    20573
  • 數(shù)據(jù)分析
    +關(guān)注

    關(guān)注

    2

    文章

    1459

    瀏覽量

    34107
  • 模式匹配
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    5863
  • 自然語言
    +關(guān)注

    關(guān)注

    1

    文章

    289

    瀏覽量

    13381
收藏 人收藏

    評論

    相關(guān)推薦

    python開發(fā)工具推薦

    Python開發(fā)軟件可根據(jù)其用途不同分為兩種,一種是Python代碼編輯器,一種是Python集成開發(fā)工具,兩者的配合使用可以極大的提高Python
    發(fā)表于 04-12 16:12

    python開發(fā)工具推薦

    來使用。如果你掌握了上述三種python工具,相信你的代碼效率會提升,如果您想更深入的學(xué)習(xí)Python可以報名參加老男孩教育Python培訓(xùn)班,帶您探索
    發(fā)表于 04-23 17:55

    專業(yè)python web編程工具

    PythonWeb應(yīng)用程序、工具的鼻祖,是Python家族一個強有力的分支。Zope 2的“對象發(fā)布”系統(tǒng)非常適合面向?qū)ο箝_發(fā)方法,并且可以減輕開發(fā)者的學(xué)習(xí)曲線,還可以幫助你發(fā)現(xiàn)應(yīng)用程序里一些不好的功能。3.
    發(fā)表于 06-12 16:23

    Python 強大模式匹配工具—Pampy

    在自然語言處理界,模式匹配可以說是最常用的技術(shù)。甚至可以說,將NLP技術(shù)作為真實生產(chǎn)力的項目都少不了模式匹配。什么是模式
    發(fā)表于 06-17 16:56

    Python強大模式匹配工具—Pampy的使用

    在自然語言處理界, 模式匹配 可以說是最常用的技術(shù)。甚至可以說,將NLP技術(shù)作為真實生產(chǎn)力的項目都少不了 模式匹配 。 什么是模式
    的頭像 發(fā)表于 06-17 16:54 ?839次閱讀

    如何使用 Python 來創(chuàng)建一些強大的應(yīng)用和實用工具

    本文將探討如何以 Zynq UltraScale 器件上的 IP 核為目標(biāo),使用 Python 來創(chuàng)建一些強大的應(yīng)用和實用工具。此處提供了一個程序包,供您用于讀取設(shè)備樹和訪問 IP 核。此外還提供一個實用
    發(fā)表于 09-08 10:23 ?704次閱讀

    淺析python字符串模式匹配

    python字符串可以通過re模塊的模式匹配來處理文本。
    的頭像 發(fā)表于 02-23 15:04 ?2349次閱讀

    Python強大模式匹配工具Pampy

    在自然語言處理界,**模式匹配**可以說是最常用的技術(shù)。甚至可以說,將NLP技術(shù)作為真實生產(chǎn)力的項目都少不了 **模式匹配** 。
    的頭像 發(fā)表于 02-23 15:39 ?632次閱讀

    強大模式匹配工具—Pampy

    在自然語言處理界,**模式匹配**可以說是最常用的技術(shù)。甚至可以說,將NLP技術(shù)作為真實生產(chǎn)力的項目都少不了 **模式匹配**
    的頭像 發(fā)表于 02-24 14:02 ?678次閱讀
    <b class='flag-5'>強大</b>的<b class='flag-5'>模式</b><b class='flag-5'>匹配</b><b class='flag-5'>工具</b>—Pampy

    如何安裝Python包管理工具

    第三方庫,Python提供了一些強大的包管理工具。本文將介紹如何安裝Python包管理工具,以便您能夠在
    的頭像 發(fā)表于 04-14 12:10 ?1168次閱讀

    優(yōu)化Python代碼有哪些工具

    Python是一種強大的編程語言,但在面對復(fù)雜項目和緊迫的時間要求時,提高Python的使用效率變得至關(guān)重要。為此,以下是詳細(xì)介紹十大工具,它們可以幫助您加速開發(fā)流程、提高編程體驗并優(yōu)
    的頭像 發(fā)表于 07-24 09:28 ?1397次閱讀

    C#模式匹配完全指南

    要使用模式匹配,首先要了解什么是模式。在使用正則表達(dá)式匹配字符串時,正則表達(dá)式自己就是一個模式,而對字符串使用這段正則表達(dá)式進(jìn)行
    的頭像 發(fā)表于 09-13 17:33 ?496次閱讀

    什么是模式匹配

    在自然語言處理界, 模式匹配 可以說是最常用的技術(shù)。甚至可以說,將NLP技術(shù)作為真實生產(chǎn)力的項目都少不了 模式匹配 。 什么是模式
    的頭像 發(fā)表于 10-17 10:49 ?1192次閱讀
    什么是<b class='flag-5'>模式</b><b class='flag-5'>匹配</b>

    Birdseye:極其強大Python調(diào)試工具

    Birdseye是一個Python調(diào)試器,它在函數(shù)調(diào)用中記錄表達(dá)式的值,并讓你在函數(shù)** 退出 **后輕松查看它們,例如: 無論你如何運行或編輯代碼,都可以使用Birdseye。只需要你安裝好依賴
    的頭像 發(fā)表于 10-21 10:47 ?507次閱讀
    Birdseye:極其<b class='flag-5'>強大</b>的<b class='flag-5'>Python</b>調(diào)試<b class='flag-5'>工具</b>

    Birdseye:極其強大Python調(diào)試工具

    Birdseye是一個Python調(diào)試器,它在函數(shù)調(diào)用中記錄表達(dá)式的值,并讓你在函數(shù)** 退出 **后輕松查看它們,例如: 無論你如何運行或編輯代碼,都可以使用Birdseye。只需要你安裝好依賴
    的頭像 發(fā)表于 11-01 09:50 ?427次閱讀
    Birdseye:極其<b class='flag-5'>強大</b>的<b class='flag-5'>Python</b>調(diào)試<b class='flag-5'>工具</b>