1 Python强大的模式匹配工具—Pampy的使用-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

python爬虫知识分享 来源:python爬虫知识分享 作者:python爬虫知识分享 2022-06-17 16:54 次阅读

在自然语言处理界,模式匹配可以说是最常用的技术。甚至可以说,将NLP技术作为真实生产力的项目都少不了模式匹配

什么是模式匹配呢?在计算机科学中,往往是检查给定的序列或字符串中是否有符合某种模式的片段。比如说:“啊,你的AK-47打得真准”,如果我们将 “啊,你的_____打得真准 ” 作为一种模式,则会将AK-47匹配出来。

实现模式匹配往往都是用正则表达式,但是如果你想识别特别复杂的模式,编写正则表达式就会变得非常非常麻烦。而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.准备

开始之前,你要确保Pythonpip已经成功安装在电脑上。

如果你用Python的目的是数据分析,可以直接安装Anaconda, 它内置了Python和pip.

请选择以下任一种方式输入命令安装依赖
1. Windows 环境 打开 Cmd (开始-运行-CMD)。
2. MacOS 环境 打开 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)]

将特定模式前的元素设为集合,后面的元素设为元组:

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('我的天,你长得真像鳕鱼'))
# => '你像鳕鱼'

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • python
    +关注

    关注

    56

    文章

    4792

    浏览量

    84627
收藏 人收藏

    评论

    相关推荐

    Python编程:处理网络请求的代理技术

    在网络编程中,代理技术扮演着至关重要的角色,尤其在处理网络请求时。通过代理服务器,我们可以实现请求的转发、缓存、负载均衡以及安全控制等功能。Python作为一种功能强大的编程语言,为提供了丰富的工具和库,以便敏捷地实现和处理网络
    的头像 发表于 11-12 07:23 183次阅读

    手写图像模板匹配算法在OpenCV中的实现

    OpenCV中的模板匹配是支持基于NCC相似度查找的,但是不是很好用,一个主要的原因是查找最大阈值,只能匹配一个,自己比对阈值,又导致无法正确设定阈值范围,所以问题很多。于是我重新写了纯Python版本的NCC图像模板
    的头像 发表于 11-11 10:12 231次阅读
    手写图像模板<b class='flag-5'>匹配</b>算法在OpenCV中的实现

    P2link——强大的内网穿透和远程访问工具

    P2Link作为一款强大的内网穿透和远程访问工具,可以帮助用户轻松实现网络连接和数据传输。特别适用于在复杂网络环境中需要远程访问内网资源的场景,如远程办公、设备管理和云服务等。
    的头像 发表于 11-01 14:21 337次阅读

    第二届大会回顾第25期 | OpenHarmony上的Python设备应用开发

    Python以其简单、易学和功能强大而闻名,有着广泛的用户群体。采用Python开发有助于降低OpenHarmony的学习门槛。如何在OpenHarmony上用Python开发设备应用
    的头像 发表于 08-27 11:53 680次阅读
    第二届大会回顾第25期 | OpenHarmony上的<b class='flag-5'>Python</b>设备应用开发

    使用Python批量连接华为网络设备

    随着网络规模的扩大和设备数量的增加,手动配置和管理每台网络设备变得越来越不现实。因此,自动化工具和脚本变得尤为重要。Python语言以其简洁性和强大的第三方库支持,成为了网络自动化领域的首选。本篇文章将详细介绍如何使用
    的头像 发表于 08-12 17:48 449次阅读

    pytorch和python的关系是什么

    在当今的人工智能领域,Python已经成为了最受欢迎的编程语言之一。Python的易学易用、丰富的库和框架以及强大的社区支持,使其成为了数据科学、机器学习和深度学习等领域的首选语言。而在深度学习领域
    的头像 发表于 08-01 15:27 1883次阅读

    Python建模算法与应用

    Python作为一种功能强大、免费、开源且面向对象的编程语言,在科学计算、数学建模、数据分析等领域展现出了卓越的性能。其简洁的语法、对动态输入的支持以及解释性语言的本质,使得Python在多个平台
    的头像 发表于 07-24 10:41 526次阅读

    Python在人工智能领域的应用

    功能强大的编程语言,成为了人工智能研究和开发的首选工具之一。本文将深入探讨Python在人工智能领域的广泛应用,分析其优势、具体应用案例以及未来的发展趋势。
    的头像 发表于 07-02 18:20 1108次阅读

    如何使用Python进行神经网络编程

    。 为什么使用PythonPython是一种广泛使用的高级编程语言,以其易读性和易用性而闻名。Python拥有强大的库,如TensorFlow、Keras和PyTorch,这些库提
    的头像 发表于 07-02 09:58 399次阅读

    常见的数据采集工具的介绍

    Scraping) 网络爬虫是一种自动化的程序,用于从互联网上提取信息。它们可以访问网页,解析HTML内容,并从中提取所需的数据。 Scrapy : 一个快速且强大Python框架,用于抓取网站数据。 Beautiful Soup : 一个
    的头像 发表于 07-01 14:51 780次阅读

    华为云正式发布CodeArts IDE for Python

    近日,华为云正式发布CodeArts IDE for Python,这是一款内置华为自主创新的Python语言服务,提供智能编程、灵活调试能力的可扩展桌面开发工具,为华为云开发者提供卓越Pyt
    的头像 发表于 05-08 14:58 490次阅读

    Python自动化测试框架及其应用

    Pytest是一个非常成熟的全功能的Python测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,功能更强大
    的头像 发表于 04-03 16:15 548次阅读
    <b class='flag-5'>Python</b>自动化测试框架及其应用

    虹科分享 | PCAN工具强大的CAN通讯解决方案,你了解多少?

    在当今的汽车和工业自动化领域,可靠的通讯系统至关重要,虹科PCAN工具为这些应用提供了强大的支持。本文将介绍虹科PCAN工具的功能、应用和优势,帮助您根据实际需求选择合适的工具和配件。
    的头像 发表于 02-02 09:54 825次阅读
    虹科分享 | PCAN<b class='flag-5'>工具</b>:<b class='flag-5'>强大</b>的CAN通讯解决方案,你了解多少?

    如何使用linux下gdb来调试python程序

    如何使用linux下gdb来调试python程序  在Linux下,可以使用GDB(GNU调试器)来调试Python程序。GDB是一个强大的调试工具,可以帮助开发者诊断和修复程序中的错
    的头像 发表于 01-31 10:41 2571次阅读

    eda工具软件有哪些 EDA工具有什么优势

    和预测提供基础。在进行EDA过程中,使用合适的工具软件可以显著提升效率和准确性。本文将介绍几种常见的EDA工具软件。 Python和其相关的库 Python是一种广泛使用的编程语言,拥
    的头像 发表于 01-30 13:57 1146次阅读