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实现监控windows服务并自动启动服务示例
Apr 17 Python
详解Python中where()函数的用法
Mar 27 Python
numpy判断数值类型、过滤出数值型数据的方法
Jun 09 Python
解决pycharm安装后代码区不能编辑的问题
Oct 28 Python
Python如何获得百度统计API的数据并发送邮件示例代码
Jan 27 Python
python名片管理系统开发
Jun 18 Python
python三引号如何输入
Jul 06 Python
python实现数字炸弹游戏
Jul 17 Python
Python timeit模块原理及使用方法
Oct 10 Python
Python利用matplotlib绘制散点图的新手教程
Nov 05 Python
图文详解matlab原始处理图像几何变换
Jul 09 Python
Python实现仓库管理系统
May 30 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
frename PHP 灵活文件命名函数 frename
2009/09/09 PHP
php记录日志的实现代码
2011/08/08 PHP
php+mysqli事务控制实现银行转账实例
2015/01/29 PHP
PHP 实现代码复用的一个方法 traits新特性
2015/02/22 PHP
ThinkPHP路由详解
2015/07/27 PHP
php中遍历二维数组并以表格的形式输出的方法
2017/01/03 PHP
微信开发之获取JSAPI TICKET
2017/07/07 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
2018/06/05 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
新老版本juqery获取radio对象的方法
2010/03/01 Javascript
jquery scroll()区分横向纵向滚动条的方法
2014/04/04 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
JavaScript插件化开发教程 (一)
2015/01/27 Javascript
JavaScript获取文本框内选中文本的方法
2015/02/20 Javascript
jquery实现鼠标滑过后动态图片提示效果实例
2015/08/10 Javascript
使用堆实现Top K算法(JS实现)
2015/12/25 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
jQuery中$.ajax()方法参数解析
2016/10/22 Javascript
layui中layer前端组件实现图片显示功能的方法分析
2017/10/13 Javascript
详解JavaScript中的函数、对象
2019/04/01 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
2019/04/02 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
python操作sqlite的CRUD实例分析
2015/05/08 Python
Python如何读取MySQL数据库表数据
2017/03/11 Python
Python使用sorted排序的方法小结
2017/07/28 Python
打包python 加icon 去掉cmd黑窗口方法
2019/06/24 Python
Python3打包exe代码2种方法实例解析
2020/02/17 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
2020/10/14 Python
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
C#面试题问题集
2016/04/02 面试题
食堂员工工作职责
2013/12/18 职场文书
巧克力蛋糕店创业计划书
2014/01/14 职场文书
贯彻学习两会心得体会范文
2014/03/17 职场文书
人事局接收函
2015/01/31 职场文书
2015年公司后勤管理工作总结
2015/05/13 职场文书