在自然语言解决界,模式匹配能够说是最罕用的技术。甚至能够说,将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 refrom 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 教程,请继续关注我,如果对你有帮忙,麻烦在上面点一个赞/关注,有任何问题都能够在下方留言,咱们会急躁解答的!