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

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

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

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

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-06-17 16:54 ? 次閱讀

在自然語言處理界,模式匹配可以說是最常用的技術(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

下面是一個使用例子:

from pampy import match, _
input = [1, 2, 3]
pattern = [1, 2, _]
action = lambda x: "it's {}".format(x)
match(input, pattern, action)

1.準(zhǔn)備

開始之前,你要確保Pythonpip已經(jīng)成功安裝在電腦上。

如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda, 它內(nèi)置了Python和pip.

請選擇以下任一種方式輸入命令安裝依賴
1. Windows 環(huán)境 打開 Cmd (開始-運行-CMD)。
2. MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.

pip installpampy

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

2.使用

特性1:HEAD 和 TAIL

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

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

frompampy importmatch, HEAD, TAIL, _
x = [-1, -2, -3, 0, 1, 2, 3]
print(match(x, [-1, TAIL], lambdat: [-1, tuple(t)]))
# => [-1, (-2, -3, 0, 1, 2, 3)]

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

frompampy importmatch, HEAD, TAIL, _
x = [-1, -2, -3, 0, 1, 2, 3]
print(match(x, [HEAD, _, _, 0, TAIL], lambdah, a, b, t: (set([h, a, b]), tuple(t))))
# => ({-3, -1, -2}, (1, 2, 3))

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

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

frompampy importmatch, HEAD, TAIL, _
my_dict = {
'global_setting': [1, 3, 3],
'user_setting': {
'face': ['beautiful', 'ugly'],
'mind': ['smart', 'stupid']
}
}
result = match(my_dict, { _: {'face': _}}, lambdakey, son_value: (key, son_value))
print(result)
# => ('user_setting', ['beautiful', 'ugly'])

特性3: 搭配正則

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

importrefrompampy importmatch, HEAD, TAIL, _
defwhat_is(pet):
    returnmatch(
    pet, re.compile('(\w+),(\w)\w+鱈魚$'), lambdamygod, 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)系本站處理。 舉報投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4801

    瀏覽量

    84882
收藏 人收藏

    評論

    相關(guān)推薦

    Python編程:處理網(wǎng)絡(luò)請求的代理技術(shù)

    在網(wǎng)絡(luò)編程中,代理技術(shù)扮演著至關(guān)重要的角色,尤其在處理網(wǎng)絡(luò)請求時。通過代理服務(wù)器,我們可以實現(xiàn)請求的轉(zhuǎn)發(fā)、緩存、負(fù)載均衡以及安全控制等功能。Python作為一種功能強(qiáng)大的編程語言,為提供了豐富的工具和庫,以便敏捷地實現(xiàn)和處理網(wǎng)絡(luò)
    的頭像 發(fā)表于 11-12 07:23 ?209次閱讀

    手寫圖像模板匹配算法在OpenCV中的實現(xiàn)

    OpenCV中的模板匹配是支持基于NCC相似度查找的,但是不是很好用,一個主要的原因是查找最大閾值,只能匹配一個,自己比對閾值,又導(dǎo)致無法正確設(shè)定閾值范圍,所以問題很多。于是我重新寫了純Python版本的NCC圖像模板
    的頭像 發(fā)表于 11-11 10:12 ?292次閱讀
    手寫圖像模板<b class='flag-5'>匹配</b>算法在OpenCV中的實現(xiàn)

    P2link——強(qiáng)大的內(nèi)網(wǎng)穿透和遠(yuǎn)程訪問工具

    P2Link作為一款強(qiáng)大的內(nèi)網(wǎng)穿透和遠(yuǎn)程訪問工具,可以幫助用戶輕松實現(xiàn)網(wǎng)絡(luò)連接和數(shù)據(jù)傳輸。特別適用于在復(fù)雜網(wǎng)絡(luò)環(huán)境中需要遠(yuǎn)程訪問內(nèi)網(wǎng)資源的場景,如遠(yuǎn)程辦公、設(shè)備管理和云服務(wù)等。
    的頭像 發(fā)表于 11-01 14:21 ?414次閱讀

    第二屆大會回顧第25期 | OpenHarmony上的Python設(shè)備應(yīng)用開發(fā)

    Python以其簡單、易學(xué)和功能強(qiáng)大而聞名,有著廣泛的用戶群體。采用Python開發(fā)有助于降低OpenHarmony的學(xué)習(xí)門檻。如何在OpenHarmony上用Python開發(fā)設(shè)備應(yīng)用
    的頭像 發(fā)表于 08-27 11:53 ?752次閱讀
    第二屆大會回顧第25期 | OpenHarmony上的<b class='flag-5'>Python</b>設(shè)備應(yīng)用開發(fā)

    使用Python批量連接華為網(wǎng)絡(luò)設(shè)備

    隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大和設(shè)備數(shù)量的增加,手動配置和管理每臺網(wǎng)絡(luò)設(shè)備變得越來越不現(xiàn)實。因此,自動化工具和腳本變得尤為重要。Python語言以其簡潔性和強(qiáng)大的第三方庫支持,成為了網(wǎng)絡(luò)自動化領(lǐng)域的首選。本篇文章將詳細(xì)介紹如何使用
    的頭像 發(fā)表于 08-12 17:48 ?510次閱讀

    pytorch和python的關(guān)系是什么

    在當(dāng)今的人工智能領(lǐng)域,Python已經(jīng)成為了最受歡迎的編程語言之一。Python的易學(xué)易用、豐富的庫和框架以及強(qiáng)大的社區(qū)支持,使其成為了數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)等領(lǐng)域的首選語言。而在深度學(xué)習(xí)領(lǐng)域
    的頭像 發(fā)表于 08-01 15:27 ?2135次閱讀

    Python建模算法與應(yīng)用

    Python作為一種功能強(qiáng)大、免費、開源且面向?qū)ο蟮木幊陶Z言,在科學(xué)計算、數(shù)學(xué)建模、數(shù)據(jù)分析等領(lǐng)域展現(xiàn)出了卓越的性能。其簡潔的語法、對動態(tài)輸入的支持以及解釋性語言的本質(zhì),使得Python在多個平臺
    的頭像 發(fā)表于 07-24 10:41 ?608次閱讀

    Python在人工智能領(lǐng)域的應(yīng)用

    功能強(qiáng)大的編程語言,成為了人工智能研究和開發(fā)的首選工具之一。本文將深入探討Python在人工智能領(lǐng)域的廣泛應(yīng)用,分析其優(yōu)勢、具體應(yīng)用案例以及未來的發(fā)展趨勢。
    的頭像 發(fā)表于 07-02 18:20 ?1211次閱讀

    如何使用Python進(jìn)行神經(jīng)網(wǎng)絡(luò)編程

    。 為什么使用Python? Python是一種廣泛使用的高級編程語言,以其易讀性和易用性而聞名。Python擁有強(qiáng)大的庫,如TensorFlow、Keras和PyTorch,這些庫提
    的頭像 發(fā)表于 07-02 09:58 ?432次閱讀

    常見的數(shù)據(jù)采集工具的介紹

    Scraping) 網(wǎng)絡(luò)爬蟲是一種自動化的程序,用于從互聯(lián)網(wǎng)上提取信息。它們可以訪問網(wǎng)頁,解析HTML內(nèi)容,并從中提取所需的數(shù)據(jù)。 Scrapy : 一個快速且強(qiáng)大Python框架,用于抓取網(wǎng)站數(shù)據(jù)。 Beautiful Soup : 一個
    的頭像 發(fā)表于 07-01 14:51 ?920次閱讀

    華為云正式發(fā)布CodeArts IDE for Python

    近日,華為云正式發(fā)布CodeArts IDE for Python,這是一款內(nèi)置華為自主創(chuàng)新的Python語言服務(wù),提供智能編程、靈活調(diào)試能力的可擴(kuò)展桌面開發(fā)工具,為華為云開發(fā)者提供卓越Pyt
    的頭像 發(fā)表于 05-08 14:58 ?526次閱讀

    Python自動化測試框架及其應(yīng)用

    Pytest是一個非常成熟的全功能的Python測試框架,與python自帶的unittest測試框架類似,但是比unittest框架使用起來更簡潔,功能更強(qiáng)大。
    的頭像 發(fā)表于 04-03 16:15 ?579次閱讀
    <b class='flag-5'>Python</b>自動化測試框架及其應(yīng)用

    虹科分享 | PCAN工具強(qiáng)大的CAN通訊解決方案,你了解多少?

    在當(dāng)今的汽車和工業(yè)自動化領(lǐng)域,可靠的通訊系統(tǒng)至關(guān)重要,虹科PCAN工具為這些應(yīng)用提供了強(qiáng)大的支持。本文將介紹虹科PCAN工具的功能、應(yīng)用和優(yōu)勢,幫助您根據(jù)實際需求選擇合適的工具和配件。
    的頭像 發(fā)表于 02-02 09:54 ?869次閱讀
    虹科分享 | PCAN<b class='flag-5'>工具</b>:<b class='flag-5'>強(qiáng)大</b>的CAN通訊解決方案,你了解多少?

    如何使用linux下gdb來調(diào)試python程序

    如何使用linux下gdb來調(diào)試python程序? 在Linux下,可以使用GDB(GNU調(diào)試器)來調(diào)試Python程序。GDB是一個強(qiáng)大的調(diào)試工具,可以幫助開發(fā)者診斷和修復(fù)程序中的錯
    的頭像 發(fā)表于 01-31 10:41 ?2690次閱讀

    eda工具軟件有哪些 EDA工具有什么優(yōu)勢

    和預(yù)測提供基礎(chǔ)。在進(jìn)行EDA過程中,使用合適的工具軟件可以顯著提升效率和準(zhǔn)確性。本文將介紹幾種常見的EDA工具軟件。 Python和其相關(guān)的庫 Python是一種廣泛使用的編程語言,擁
    的頭像 發(fā)表于 01-30 13:57 ?1198次閱讀