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字符遍历的艺术
Sep 06 Python
Python中不同进制的语法及转换方法分析
Jul 27 Python
同时安装Python2 & Python3 cmd下版本自由选择的方法
Dec 09 Python
python 保存float类型的小数的位数方法
Oct 17 Python
Python时间和字符串转换操作实例分析
Mar 16 Python
使用celery执行Django串行异步任务的方法步骤
Jun 06 Python
Python API自动化框架总结
Nov 12 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
Nov 25 Python
有关Tensorflow梯度下降常用的优化方法分享
Feb 04 Python
Python实时监控网站浏览记录实现过程详解
Jul 14 Python
windows系统Tensorflow2.x简单安装记录(图文)
Jan 18 Python
Python OpenCV实现传统图片格式与base64转换
Jun 13 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实现压缩多个CSS与JS文件的方法
2014/11/11 PHP
PHP实现移除数组中为空或为某值元素的方法
2017/01/07 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
在JavaScript中实现命名空间
2006/11/23 Javascript
dojo 之基础篇(三)之向服务器发送数据
2007/03/24 Javascript
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
2012/02/13 Javascript
javascript设置金额样式转换保留两位小数示例代码
2013/12/04 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
JavaScript中String.prototype用法实例
2015/05/20 Javascript
JavaScript学习笔记之取数组中最大值和最小值
2016/03/23 Javascript
基于node.js依赖express解析post请求四种数据格式
2017/02/13 Javascript
对vue下点击事件传参和不传参的区别详解
2018/09/15 Javascript
JavaScript中import用法总结
2019/01/20 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
2020/02/27 Javascript
JavaScript随机数的组合问题案例分析
2020/05/16 Javascript
[01:43]深扒TI7聊天轮盘语音出处4
2017/05/11 DOTA
Python中使用异常处理来判断运行的操作系统平台方法
2015/01/22 Python
优化Python代码使其加快作用域内的查找
2015/03/30 Python
解决Python requests库编码 socks5代理的问题
2018/05/07 Python
Python标准库使用OrderedDict类的实例讲解
2019/02/14 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
2019/09/07 Python
让你的Python代码实现类型提示功能
2019/11/19 Python
Python实现链表反转的方法分析【迭代法与递归法】
2020/02/22 Python
python3光学字符识别模块tesserocr与pytesseract的使用详解
2020/02/26 Python
Python高阶函数与装饰器函数的深入讲解
2020/11/10 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
Android笔试题总结
2014/11/29 面试题
银行求职信怎么写
2014/05/26 职场文书
拓展策划方案
2014/06/03 职场文书
银行柜员求职自荐书
2014/06/18 职场文书
2014年政风行风评议工作总结
2014/10/21 职场文书
白鹤梁导游词
2015/02/06 职场文书
圆明园观后感
2015/06/03 职场文书
护士岗位竞聘书
2015/09/15 职场文书
在HTML5 localStorage中存储对象的示例代码
2021/04/21 Javascript
详解MySQL连接挂死的原因
2021/05/18 MySQL