python敏感词过滤replace_python用类实现文章敏感词的过滤方法示例

python敏感词过滤replace_python用类实现文章敏感词的过滤方法示例过滤一遍并将敏感词替换之后剩余字符串中新组成了敏感词语,这种情况就要用递归来解决,直到过滤替换之后的结果和过滤之前一样时才算结束第一步:建立一个敏感词库(.txt文本)第二步:编写代码在文章中过滤敏感词(递归实现)#-*-coding:utf-8-*-#author代序春秋importosimportchardet#获取文件目录和绝对路径curr_dir=os.path.di…

大家好,又见面了,我是你们的朋友全栈君。

过滤一遍并将敏感词替换之后剩余字符串中新组成了敏感词语,这种情况就要用递归来解决,直到过滤替换之后的结果和过滤之前一样时才算结束

第一步:建立一个敏感词库(.txt文本)

python敏感词过滤replace_python用类实现文章敏感词的过滤方法示例

第二步:编写代码在文章中过滤敏感词(递归实现)

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

# author 代序春秋

import os

import chardet

# 获取文件目录和绝对路径

curr_dir = os.path.dirname(os.path.abspath(__file__))

# os.path.join()拼接路径

sensitive_word_stock_path = os.path.join(curr_dir, ‘sensitive_word_stock.txt’)

# 获取存放敏感字库的路径

# print(sensitive_word_stock_path)

class ArticleFilter(object):

# 实现文章敏感词过滤

def filter_replace(self, string):

# string = string.decode(“gbk”)

# 存放敏感词的列表

filtered_words = []

# 打开敏感词库读取敏感字

with open(sensitive_word_stock_path) as filtered_words_txt:

lines = filtered_words_txt.readlines()

for line in lines:

# strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。

filtered_words.append(line.strip())

# 输出过滤好之后的文章

print(“过滤之后的文字:” + self.replace_words(filtered_words, string))

# 实现敏感词的替换,替换为*

def replace_words(self, filtered_words, string):

# 保留新字符串

new_string = string

# 从列表中取出敏感词

for words in filtered_words:

# 判断敏感词是否在文章中

if words in string:

# 如果在则用*替换(几个字替换几个*)

new_string = string.replace(words, “*” * len(words))

# 当替换好的文章(字符串)与被替换的文章(字符串)相同时,结束递归,返回替换好的文章(字符串)

if new_string == string:

# 返回替换好的文章(字符串)

return new_string

# 如果不相同则继续替换(递归函数自己调用自己)

else:

# 递归函数自己调用自己

return self.replace_words(filtered_words, new_string)

def main():

while True:

string = input(“请输入一段文字:”)

run = ArticleFilter()

run.filter_replace(string)

continue

if __name__ == ‘__main__’:

main()

运行结果:

python敏感词过滤replace_python用类实现文章敏感词的过滤方法示例

以上就是本文的全部内容,希望对大家的学习有所帮助

您可能感兴趣的文章:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136876.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • P2P建立加密通道

    P2P建立加密通道核心:DH秘钥交互算法DH算法:对于非对称加密算法部分支持DH算法(spec256K1、curv25519、ed25519不支持但可以转换到curv25519间接实现),PrivA+PubB=PrivB+PubA,算法在公开双方公钥时就可使用各自保存的私钥,进行秘钥的交换;加密随机种子:随机生成nonce值,使用该nonce值以及交换过的秘钥对数据进行加密,nonce值附加到密文头部…

    2022年5月10日
    58
  • 阿里云API接口调用[通俗易懂]

    阿里云API接口调用[通俗易懂]阿里云针对自己的平台提供了非常丰富的API接口,而且他们有提供openapi可视化服务,非常方便。阿里云openapi地址:https://api.aliyun.com/这里我在查询全部RDS资产

    2022年7月3日
    83
  • 游戏类型「建议收藏」

    游戏类型「建议收藏」1.ACT=ActionGame∶动作游戏玩家控制游戏人物用各种武器消灭敌人以过关的游戏,不追求故事情节,如熟悉的《超级玛里》、可爱的《星之卡比》、华丽的《波斯王子》等等。电脑上的动作游戏大多脱胎于早期的街机游戏和动作游戏如《魂斗罗》、《三国志》等,设计主旨是面向普通玩家,以纯粹的娱乐休闲为目的,一般有少部分简单的解谜成份,操作简单,易于上手,紧张刺激,属于”大众化”游戏。ACT游戏讲

    2022年5月6日
    63
  • Python修改文件后缀名[通俗易懂]

    Python修改文件后缀名[通俗易懂]读万卷书,行万里路——木子成记事本练习html,解决来回修改后缀名程序运行后项目文件夹下生成exe文件,后续双击exe文件即可修改可修改当前运行所在文件及其子文件中所有html和txt文件循坏修改后缀名”””name=os.path.splitext():分离文件名(name[0])和后缀name[1]os.rename(new_filename,old_filename):修改文件名,若不在最初工作地址则需更改os.listdir(文件地址):得到当前目录的所

    2022年9月22日
    0
  • k8s 开源_jdk源码剖析手册

    k8s 开源_jdk源码剖析手册createfunc main() { #随机数 rand.Seed(time.Now().UnixNano()) #创建一个新的命令行对象 command := cmd.NewDefaultKubectlCommand() #日志 logs.InitLogs() defer logs.FlushLogs() #真正执行的命令行 if err := command.Execute(); err != nil { os.Exit(1) }}# NewDefaultKubectl

    2022年8月11日
    3
  • 十六进制与十进制的互相换换计算

    十六进制与十进制的互相换换计算十六进制与十进制的互相换换计算

    2022年4月22日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号