python敏感词过滤第三方库_Python实现敏感词过滤的4种方法

本文介绍了Python实现敏感词过滤的四种方法,包括replace简单过滤、正则表达式过滤、DFA算法过滤和AC自动机过滤。其中,DFA算法因效率高而被推荐。通过实例代码展示了每种方法的使用,帮助读者理解并应用到实际项目中。
摘要由CSDN通过智能技术生成

在我们生活中的一些场合经常会有一些不该出现的敏感词,我们通常会使用*去屏蔽它,例如:尼玛 -> **,一些骂人的敏感词和一些政治敏感词都不应该出现在一些公共场合中,这个时候我们就需要一定的手段去屏蔽这些敏感词。下面我来介绍一些简单版本的敏感词屏蔽的方法。

(我已经尽量把脏话做成图片的形式了,要不然文章发不出去)

方法一:replace过滤

replace就是最简单的字符串替换,当一串字符串中有可能会出现的敏感词时,我们直接使用相应的replace方法用*替换出敏感词即可。

缺点:

文本和敏感词少的时候还可以,多的时候效率就比较差了

efbe17735dc41109568f684d23156f1f.png

import datetime

now = datetime.datetime.now()

print(filter_sentence, " | ", now)

076aca6953a4eecc583aeb225edd5cfc.png

如果是多个敏感词可以用列表进行逐一替换

1438926e455da11d956bf3b69ec4368f.png

for i in dirty:

speak = speak.replace(i, '*')

print(speak, " | ", now)

be87f6efe41050d41d9674f51743d0d5.png

方法二:正则表达式过滤

正则表达式算是一个不错的匹配方法了,日常的查询中,机会都会用到正则表达式,包括我们的爬虫,也都是经常会使用到正则表达式的,在这里我们主要是使用“|”来进行匹配,“|”的意思是从多个目标字符串中选择一个进行匹配。写个简单的例子:

b6d7870c2689009b2feecee26026b43e.png

import re

def sentence_filter(keywords, text):

return re.sub("|".join(keywords), "***", text)

print(sentence_filter(dirty, speak))

1166ea243b7ab5c974a6cf66d8afebe4.png

方法三:DFA过滤算法

DFA的算法,即Deterministic Finite Automaton算法,翻译成中文就是确定有穷自动机算法。它的基本思想是基于状态转移来检索敏感词,只需要扫描一次待检测文本,就能对所有敏感词进行检测。(实现见代码注释)

81807b01a1fa2412fe4662ee22d3792e.png

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# @Time:2020/4/15 11

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值