python用类实现文章敏感词的过滤方法示例
过滤一遍并将敏感词替换之后剩余字符串中新组成了敏感词语,这种情况就要用递归来解决,直到过滤替换之后的结果和过滤之前一样时才算结束
第一步:建立一个敏感词库(.txt文本)
第二步:编写代码在文章中过滤敏感词(递归实现)
#-*-coding:utf-8-*- #author代序春秋 importos importchardet #获取文件目录和绝对路径 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) classArticleFilter(object): #实现文章敏感词过滤 deffilter_replace(self,string): #string=string.decode("gbk") #存放敏感词的列表 filtered_words=[] #打开敏感词库读取敏感字 withopen(sensitive_word_stock_path)asfiltered_words_txt: lines=filtered_words_txt.readlines() forlineinlines: #strip()方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。 filtered_words.append(line.strip()) #输出过滤好之后的文章 print("过滤之后的文字:"+self.replace_words(filtered_words,string)) #实现敏感词的替换,替换为* defreplace_words(self,filtered_words,string): #保留新字符串 new_string=string #从列表中取出敏感词 forwordsinfiltered_words: #判断敏感词是否在文章中 ifwordsinstring: #如果在则用*替换(几个字替换几个*) new_string=string.replace(words,"*"*len(words)) #当替换好的文章(字符串)与被替换的文章(字符串)相同时,结束递归,返回替换好的文章(字符串) ifnew_string==string: #返回替换好的文章(字符串) returnnew_string #如果不相同则继续替换(递归函数自己调用自己) else: #递归函数自己调用自己 returnself.replace_words(filtered_words,new_string) defmain(): whileTrue: string=input("请输入一段文字:") run=ArticleFilter() run.filter_replace(string) continue if__name__=='__main__': main()
运行结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。