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 fabric实现远程操作和部署示例
Mar 25 Python
Python写的英文字符大小写转换代码示例
Mar 06 Python
python利用datetime模块计算时间差
Aug 04 Python
Python 爬虫学习笔记之正则表达式
Sep 21 Python
图解Python变量与赋值
Apr 03 Python
详解python-图像处理(映射变换)
Mar 22 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
Aug 27 Python
Python3和pyqt5实现控件数据动态显示方式
Dec 13 Python
python pyenv多版本管理工具的使用
Dec 23 Python
Python在线和离线安装第三方库的方法
Oct 31 Python
Python一些基本的图像操作和处理总结
Jun 23 Python
python内置模块之上下文管理contextlib
Jun 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
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
使用Composer安装Yii框架的方法
2016/03/15 PHP
扩展jquery实现客户端表格的分页、排序功能代码
2011/03/16 Javascript
JavaScript中的连字符详解
2013/11/28 Javascript
JS访问SWF的函数用法实例
2015/07/01 Javascript
javascript实现加载xml文件的方法
2015/11/24 Javascript
javascript实现tab响应式切换特效
2016/01/29 Javascript
jQueryUI中的datepicker使用方法详解
2016/05/25 Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
2016/07/06 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
JavaScript 最佳实践:帮你提升代码质量
2016/12/03 Javascript
Javascript实现base64的加密解密方法示例
2017/06/27 Javascript
详细AngularJs4的图片剪裁组件的实例
2017/07/12 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
2020/06/17 Javascript
vue2.0 自定义组件的方法(vue组件的封装)
2018/06/05 Javascript
vue中组件的3种使用方式详解
2019/03/23 Javascript
Vue axios 跨域请求无法带上cookie的解决
2020/09/08 Javascript
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
Python编程判断这天是这一年第几天的方法示例
2017/04/18 Python
Django实现内容缓存实例方法
2020/06/30 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
详解python的变量缓存机制
2021/01/24 Python
利用CSS3实现开门效果实例源码
2016/08/22 HTML / CSS
FORZIERI澳大利亚站:全球顶级奢华配饰精品店
2016/12/31 全球购物
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
2012/02/15 面试题
开工仪式主持词
2014/03/20 职场文书
学校四风对照检查材料
2014/08/28 职场文书
社区灵活就业证明
2014/11/03 职场文书
2014年安全工作总结范文
2014/11/13 职场文书
初中成绩单评语
2014/12/29 职场文书
家长通知书家长意见
2014/12/30 职场文书
教师个人发展总结
2015/02/11 职场文书
使用feign服务调用添加Header参数
2021/06/23 Java/Android