python 正则过滤中文、英文、数字、特殊字符demo

一般情况下,模型不能百分百实现完成功能情况下,需要采用特定trick二次升级,正则是一个重要的手段,之前也有总结,现将最近完成测试代码总结如下,希望能够帮到你解决问题。

复制代码
import re
# 匹配中文
CN_PATTERN = re.compile(u'[\u4e00-\u9fa5]')
# 匹配英文和数字
NUM_PATTERN = re.compile(r'[A-Za-z0-9]+')
# 匹配关键词
KEYWORDS_PATTERN = re.compile(r'新疆大学|世界|外汇|中国')
# 特殊自负
SPECIAL_CHAR_PATTERN = re.compile(r'[’!"#$%&\'()*+,-./:;<=>?@,。?★、…【】《》?“”‘’!\[\\\]^_`{|}~]+')
def regular_fun(s):
    cn = CN_PATTERN.findall(s)
    num = NUM_PATTERN.findall(s)
    words = KEYWORDS_PATTERN.findall(s)
    print(cn, num, words)

if __name__ == '__main__':
    t1 = r'this boy chincese name, NLPer, 18 years old'
    t2 = r'当前测试数据全是中文'
    t3 = r'current data is all english!'
    t4 = r'ddddddddddddddddddddddddddddddddddddddddddddddddddddddddd这是一个对用户预填垃圾信息过滤方案'
    t5 = r'新疆大学(Xinjiang University),简称“新大”,位于新疆维吾尔自治区首府乌鲁木齐,是世界一流大学建设高校(B类)'
    t6 = r'%^&&*^*(^&*(%&%$#$@#%^#'
    regular_fun(t1)
    regular_fun(t2)
    regular_fun(t3)
    regular_fun(t4)
    regular_fun(t5)
    regular_fun(t6)
    print(SPECIAL_CHAR_PATTERN.findall(t3))
复制代码

 这里强调一点,对于关键词的应用大家不要小看了,合理的应用会给精度、用户体验等都带来提升。不要怕关键词多,同时对于关键词归类、排序等(对于有序的数值,查找起来是不是会效率更高?同理),借鉴阿里文娱一张图说明下:

 

posted @   今夜无风  阅读(1783)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示