python 特殊词汇过滤功能的实现

python的其中一个强大之处就是它可以方便的集成很多的非标准库,今天在GitHub上溜达又发现了一个脏话处理神器,导入better_profanity库后,只需要几行代码就能搞定了,相当nice!

使用pip的方式将better_profanity非标准库安装好,这个库好像在清华大学的镜像站中没有,其他镜像站不知道有没有,于是下载时没有使用镜像站,默认到官方去下载即可。

pip install better_profanity
# 将处理模块直接导入到代码块中
from better_profanity import profanity

1、默认脏话库/敏感词库处理

默认情况下就只能处理英文的脏话。

censored_text = profanity.censor("you are bitch",'-')
print(censored_text)
# you are ----

可以看到其中bitch字符被认为是脏话已经处理成****字符了。

当然,还可以将处理后的脏话字符换成别的字符代替,比如下面这样处理。

censored_text = profanity.censor("you are bitch",'-')
print(censored_text)
# you are ----

这样****就被替换成了----。

2、自定义过滤信息处理

bad_words = ['Python', 'Java', 'Scala']  # 自定义过滤词汇
profanity.load_censor_words(bad_words)  # 加载自定义过滤词汇
censored_text = profanity.censor("Python is very Good !")  # 执行过滤
print(censored_text)
# **** is very Good !

可以发现,想要过滤的python字符已经成功过滤掉了。

3、contains_profanity函数

contains_profanity函数用来查看我们的语句中是否包含需要过滤的词汇,如果包含则会返回True,否则返回False。

bad_words = ['bitch', 'Java', 'Scala']  # 自定义过滤词汇
profanity.load_censor_words(bad_words)  # 加载自定义过滤词汇
censored_text = profanity.contains_profanity("you are bitch")
print(censored_text)
# True

结果为True,表示包含需要过滤的词汇信息。

4、load_censor_words_from_file函数

load_censor_words_from_file函数用于加载需要过滤词汇的文件。

profanity.load_censor_words_from_file('/usr/load/bad_words.txt')

加载完词汇文件之后,按照之前的逻辑处理即可。

词汇文件的定义格式,按照每个词汇独占一行的形式进行定义,文件格式使用.txt文本文档即可。

# bitch
# bitches
# bitchin
# bitching
# blowjob
# blowjobs
# blue waffle

到此这篇关于python 脏话处理、特殊词汇过滤的文章就介绍到这了,更多相关python 特殊词汇过滤内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python实现过滤敏感词

    简述: 关于敏感词过滤可以看成是一种文本反垃圾算法,例如  题目:敏感词文本文件 filtered_words.txt,当用户输入敏感词语,则用 星号 * 替换,例如当用户输入「北京是个好城市」,则变成「**是个好城市」  代码: #coding=utf-8 def filterwords(x): with open(x,'r') as f: text=f.read() print text.split('\n') userinput=raw_input('myinput:') for i in

  • Python 敏感词过滤的实现示例

    目录 一个简单的实现 使用BSF(宽度优先搜索)进行实现 使用DFA(Deterministic Finite Automaton)进行实现 一个简单的实现 主要是通过循环和replace的方式进行敏感词的替换 class NaiveFilter(): '''Filter Messages from keywords very simple filter implementation >>> f = NaiveFilter() >>> f.parse("fil

  • Python基于DFA算法实现内容敏感词过滤

    DFA 算法是通过提前构造出一个 树状查找结构,之后根据输入在该树状结构中就可以进行非常高效的查找. 设我们有一个敏感词库,词酷中的词汇为: 我爱你 我爱他 我爱她 我爱你呀 我爱他呀 我爱她呀 我爱她啊 那么就可以构造出这样的树状结构: 设玩家输入的字符串为:白菊我爱你呀哈哈哈 我们遍历玩家输入的字符串 str,并设指针 i 指向树状结构的根节点,即最左边的空白节点: str[0] = ‘白’ 时,此时 tree[i] 没有指向值为 ‘白’ 的节点,所以不满足匹配条件,继续往下遍历 str[1

  • Python实现敏感词过滤的4种方法

    在我们生活中的一些场合经常会有一些不该出现的敏感词,我们通常会使用*去屏蔽它,例如:尼玛 -> **,一些骂人的敏感词和一些政治敏感词都不应该出现在一些公共场合中,这个时候我们就需要一定的手段去屏蔽这些敏感词.下面我来介绍一些简单版本的敏感词屏蔽的方法. (我已经尽量把脏话做成图片的形式了,要不然文章发不出去) 方法一:replace过滤 replace就是最简单的字符串替换,当一串字符串中有可能会出现的敏感词时,我们直接使用相应的replace方法用*替换出敏感词即可. 缺点: 文本和敏感词少

  • python 实现敏感词过滤的方法

    如下所示: #!/usr/bin/python2.6 # -*- coding: utf-8 -*- import time class Node(object): def __init__(self): self.children = None # The encode of word is UTF-8 def add_word(root,word): node = root for i in range(len(word)): if node.children == None: node.c

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

    过滤一遍并将敏感词替换之后剩余字符串中新组成了敏感词语,这种情况就要用递归来解决,直到过滤替换之后的结果和过滤之前一样时才算结束 第一步:建立一个敏感词库(.txt文本) 第二步:编写代码在文章中过滤敏感词(递归实现) # -*- coding: utf-8 -*- # author 代序春秋 import os import chardet # 获取文件目录和绝对路径 curr_dir = os.path.dirname(os.path.abspath(__file__)) # os.path

  • python 特殊词汇过滤功能的实现

    python的其中一个强大之处就是它可以方便的集成很多的非标准库,今天在GitHub上溜达又发现了一个脏话处理神器,导入better_profanity库后,只需要几行代码就能搞定了,相当nice! 使用pip的方式将better_profanity非标准库安装好,这个库好像在清华大学的镜像站中没有,其他镜像站不知道有没有,于是下载时没有使用镜像站,默认到官方去下载即可. pip install better_profanity # 将处理模块直接导入到代码块中 from better_prof

  • laravel框架实现敏感词汇过滤功能示例

    本文实例讲述了laravel框架实现敏感词汇过滤功能.分享给大家供大家参考,具体如下: 最近项目有需求,要对用户的签名,回复进行敏感词检测,然后搜到了一个好用的扩展,分享给大家. https://github.com/FireLustre/php-dfa-sensitive 通过 composer 进行安装: composer require lustre/php-dfa-sensitive 然后在 app 目录下创建 Services ,并添加 SensitiveWords.php <?php

  • mac使用python识别图形验证码功能

    前言 最近在研究验证码相关的操作,所以准备记录下安装以及使用的过程.虽然之前对验证码的破解有所了解的,但是之前都是简单使用之后就不用了,没有记录一个详细的过程,所以后面再用起来也要重新从网上查找资料比较麻烦,所以这里准备对研究过程的关键点做一个记录. 首先这篇文章,主要是研究图形验证码,后期会不定时拓展内容. 在网上查了很多版本的图形验证码识别,目前看到最多的两个模块是pytesseract和tesserocr,但是因为我这里安装tesserocr的时候各种出错,所以最终我锁定了使用pytess

  • Python日志logging模块功能与用法详解

    本文实例讲述了Python日志logging模块功能与用法.分享给大家供大家参考,具体如下: 本文内容: logging模块的介绍 logging模块的基础使用 logging模块的扩展使用 logging中的Filter 使用配置文件配置logging和logger 小技巧 想要了解更多?不如看看官方文档. 首发日期:2018-07-05 logging模块的介绍: 它是一个python标准库,所以它的通用性很高,所有的python模块都可以与它合作参与日志记录. 日志级别: 基本 中文意义

  • servlet实现简单的权限管理和敏感词过滤功能

    前言 JavaEE课要求用servlet和过滤器实现权限管理和敏感词过滤功能,故有此文. 虽然早已知道了原理和用法,但是实际操作起来还是遇到了各种奇葩的情况. 一.如何实现权限管理 1.思路 当用户访问某个资源时,我们必须对其权限控制,所以得用到servlet中过滤器来对请求做一次预处理,判断该用户是否有权限访问该资源,如果有则放行;如果没有则返回拒绝访问的通知. 那么我们如何判断该用户是否有权限访问呢? 这就要求我们在用户登录的时候保存其登录状态. 可我们知道http请求是无状态的,即这次请求

  • Python实现脚本锁功能(同时只能执行一个脚本)

    1. 文件锁 脚本启动前检查特定文件是否存在,不存在就启动并新建文件,脚本结束后删掉特定文件. 通过文件的判断来确定脚本是否正在执行. 方法实现也比较简单,这里以python脚本为例 #coding=utf-8 # # 文件锁脚本测试 # import os #操作系统 import time lockfilepath = "/opt/lock.txt"; #判断文件是否存在 if os.path.exists(lockfilepath): #文件存在,说明脚本正在执行 print(&

  • jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)

    理由:jquery简单,兼容性好且容易封装.废话不多说,马上开始我们的Jquery插件编写吧.应该有很多人写过类似的插件,我也是有些模仿flexGrid的形式. 需求:GridView显示数据,无刷新分页,无刷新排序,无刷新过滤(搜索数据),基于ASP.NET(我们这里有ashx一般处理文件来实现). 使用到技术:asp.net2.0, jquery,css 首先写的是jquery插件方面,使用的核心函数还是jquery的ajax函数,方便快捷. 复制代码 代码如下: $.ajax({ type

  • Python实现视频下载功能

    最近一两年短视频业务风生水起,各个视频网站都有各自特色的短视频内容.如果有这样一个程序,可以把各大视频网站的热门用户最新发布的视频都下载下来,不仅方便自己观看,还可以将没有版权的视频发布在个人社交网站上,增加自己的人气,岂不美哉? parker就是这样一个项目(项目地址:https://github.com/LiuRoy/parker),它采用celery框架定时爬取用户视频列表,将最新发布的视频通过you-get异步下载,可以很方便地实现分布式部署.因为各个网站的页面布局和接口更新比较频繁,为

  • Python使用正则表达式过滤或替换HTML标签的方法详解

    本文实例讲述了Python使用正则表达式过滤或替换HTML标签的方法.分享给大家供大家参考,具体如下: python正则表达式关键内容: python正则表达式转义符: . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束 \W 匹配任意不是字母,数字,下划线,汉字的字符 \S 匹配任意不是空白符的字符 \D 匹配任意非数字的字符 \B 匹配不是单词开头或结束的位置 [^

  • ASP.NET环境下为网站增加IP过滤功能第1/2页

    1. 需求分析 通过深入的交流和沟通,确认了该发电厂在企业网站用户访问控制方面的改进要求,大致情况如下: a) 网站基于Asp.Net2.0实现,不允许修改源程序 b) 厂内用户可直接访问整个站点的所有页面,员工不需要身份验证 c) 厂外用户只能访问指定的页面 显而易见,他们就是针对企业网站增加一项IP过滤功能,在厂外用户访问某些敏感页面时将其拒之门外.首先我们需要设置一个IP列表和一个Url列表,前者包含所有厂内IP,后者包含厂外用户可访问的全部Url,并且这两个列表都是可维护的:另外一个核心

随机推荐