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语言实现机器学习算法的三大理由
Nov 15 Python
python 定义给定初值或长度的list方法
Jun 23 Python
Django开发中的日志输出的方法
Jul 02 Python
Python判断对象是否为文件对象(file object)的三种方法示例
Apr 26 Python
python虚拟环境完美部署教程
Aug 06 Python
django基于cors解决跨域请求问题详解
Aug 06 Python
python的pyecharts绘制各种图表详细(附代码)
Nov 11 Python
python实现简单的购物程序代码实例
Mar 03 Python
简单介绍一下pyinstaller打包以及安全性的实现
Jun 02 Python
python 爬虫如何正确的使用cookie
Oct 27 Python
DRF使用simple JWT身份验证的实现
Jan 14 Python
Python实现位图分割的效果
Nov 20 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 常用函数库和一些实用小技巧
2009/01/01 PHP
php无序树实现方法
2015/07/28 PHP
PHP实现动态web服务器方法
2015/07/29 PHP
在Laravel中使用DataTables插件的方法
2018/05/29 PHP
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
概述jQuery中的ajax方法
2016/12/16 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
2017/01/17 Javascript
Node.js如何实现注册邮箱激活功能 (常见)
2017/07/23 Javascript
Vue.js实现输入框绑定的实例代码
2017/08/24 Javascript
写给vue新手们的vue渲染页面教程
2017/09/01 Javascript
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
详解Node 定时器
2018/02/26 Javascript
jQuery访问json文件中数据的方法示例
2019/01/28 jQuery
微信小程序自定义组件传值 页面和组件相互传数据操作示例
2019/05/05 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
2020/11/18 jQuery
[02:43]2014DOTA2国际邀请赛 官方Alliance战队纪录片
2014/07/14 DOTA
[01:02:48]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 LGD vs OG
2018/04/02 DOTA
Python入门篇之字典
2014/10/17 Python
Django与遗留的数据库整合的方法指南
2015/07/24 Python
Python序列化基础知识(json/pickle)
2017/10/19 Python
Python入门学习指南分享
2018/04/11 Python
对python中执行DOS命令的3种方法总结
2018/05/12 Python
python 美化输出信息的实例
2018/10/15 Python
windows下搭建python scrapy爬虫框架步骤
2018/12/23 Python
python读文件的步骤
2019/10/08 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
CSS3基础(RGBa、text-shadow、box-shadow、border-radius)
2012/11/13 HTML / CSS
英国领先的男士服装和时尚零售商:Burton
2017/01/09 全球购物
中式面点餐厅创业计划书
2014/01/29 职场文书
高中数学教学反思
2014/01/30 职场文书
幼儿园中班教师寄语
2014/04/03 职场文书
六一儿童节主持开场白
2015/05/28 职场文书
校园安全教育心得体会
2016/01/15 职场文书
Python基础之变量的相关知识总结
2021/06/23 Python
Golang 实现 WebSockets 之创建 WebSockets
2022/04/24 Golang