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


Posted in Python onOctober 27, 2019

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

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

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用类实现文章敏感词的过滤方法示例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
简单谈谈Python中的元祖(Tuple)和字典(Dict)
Apr 21 Python
Python中模块与包有相同名字的处理方法
May 05 Python
利用Python yagmail三行代码实现发送邮件
May 11 Python
python调用OpenCV实现人脸识别功能
May 25 Python
java中的控制结构(if,循环)详解
Jun 26 Python
用python3 返回鼠标位置的实现方法(带界面)
Jul 05 Python
Python 导入文件过程图解
Oct 15 Python
python @propert装饰器使用方法原理解析
Dec 25 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
Jan 14 Python
解决Tensorflow sess.run导致的内存溢出问题
Feb 05 Python
Python控制鼠标键盘代码实例
Dec 08 Python
深度学习详解之初试机器学习
Apr 14 Python
通过字符串导入 Python 模块的方法详解
Oct 27 #Python
python实现树的深度优先遍历与广度优先遍历详解
Oct 26 #Python
python图的深度优先和广度优先算法实例分析
Oct 26 #Python
python单例模式原理与创建方法实例分析
Oct 26 #Python
Python aiohttp百万并发极限测试实例分析
Oct 26 #Python
python实现淘宝购物系统
Oct 25 #Python
DJANGO-URL反向解析REVERSE实例讲解
Oct 25 #Python
You might like
PHP获取MAC地址的函数代码
2011/09/11 PHP
php延迟静态绑定实例分析
2015/02/08 PHP
php比较两个字符串长度的方法
2015/07/13 PHP
thinkphp3.2.0 setInc方法 源码全面解析
2018/01/29 PHP
sliderToggle在写jquery的计时器setTimeouter中不生效
2014/05/26 Javascript
jQuery Validate验证框架经典大全
2015/09/23 Javascript
jQuery layui常用方法介绍
2016/07/25 Javascript
从vue基础开始创建一个简单的增删改查的实例代码(推荐)
2018/02/11 Javascript
NodeJS模块与ES6模块系统语法及注意点详解
2019/01/04 NodeJs
深入理解Node内建模块和对象
2019/03/12 Javascript
Vue2.0实现简单分页及跳转效果
2019/07/29 Javascript
Vue 解决路由过渡动画抖动问题(实例详解)
2020/01/05 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
vue组件开发之tab切换组件使用详解
2020/08/21 Javascript
Javascript异步流程控制之串行执行详解
2020/09/27 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
Python程序中使用SQLAlchemy时出现乱码的解决方案
2015/04/24 Python
对于Python中RawString的理解介绍
2016/07/07 Python
python 判断网络连通的实现方法
2018/04/22 Python
pytorch + visdom CNN处理自建图片数据集的方法
2018/06/04 Python
Flask框架Flask-Principal基本用法实例分析
2018/07/23 Python
Python中函数的基本定义与调用及内置函数详解
2019/05/13 Python
PyQt5 QListWidget选择多项并返回的实例
2019/06/17 Python
python3使用腾讯企业邮箱发送邮件的实例
2019/06/28 Python
Python定义一个函数的方法
2020/06/15 Python
通过自学python能找到工作吗
2020/06/21 Python
本科生求职简历的自我评价
2013/10/21 职场文书
校长就职演讲稿
2014/01/06 职场文书
我的祖国演讲稿
2014/05/04 职场文书
党员群众路线自我剖析材料
2014/10/06 职场文书
2014年政务公开工作总结
2014/12/09 职场文书
专家推荐信怎么写
2015/03/25 职场文书
2015年推普周活动方案
2015/05/06 职场文书
win10安装配置nginx的过程
2021/03/31 Servers
Python中相见恨晚的技巧
2021/04/13 Python
关于PostgreSQL JSONB的匹配和交集问题
2021/09/14 PostgreSQL