关于python:Python-强大的模式匹配工具Pampy

30次阅读

共计 1527 个字符,预计需要花费 4 分钟才能阅读完成。

在自然语言解决界,模式匹配 能够说是最罕用的技术。甚至能够说,将 NLP 技术作为实在生产力的我的项目都少不了 模式匹配

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

实现模式匹配往往都是用正则表达式,然而如果你想辨认特地简单的模式,编写正则表达式就会变得十分十分麻烦。而 Pampy 这个我的项目能解决你不少的懊恼。

上面是一个应用例子:

1. 筹备

开始之前,你要确保 Python 和 pip 曾经胜利装置在电脑上。

(可选 1) 如果你用 Python 的目标是数据分析,能够间接装置 Anaconda,它内置了 Python 和 pip.

(可选 2) 此外,举荐大家用 VSCode 编辑器,它有许多的长处。

请抉择以下任一种形式输出命令装置依赖

  1. Windows 环境 关上 Cmd (开始 - 运行 -CMD)。
  2. MacOS 环境 关上 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 教程,欢送关注公众号:Python 编程学习圈,理解更多编程技术干货!

正文完
 0