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

226次阅读

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

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

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

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

上面是一个应用例子:

1. 装置

连忙让咱们来试一下,装置 Pampy 前,你要确保 Python 和 pip 曾经胜利装置在电脑上噢,如果没有,请先装置。

关上 Cmd(开始—运行—CMD)或 Terminal(command+ 空格输出 Terminal). 输出以下命令装置 Pampy:

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 教程,请继续关注我,如果对你有帮忙,麻烦在上面点一个赞 / 关注,有任何问题都能够在下方留言,咱们会急躁解答的!

正文完
 0