题目
敏感词文本文件 filtered_words.txt,里面的内容 和 0011题一样,当用户输入敏感词语,则用 星号 * 替换,例如当用户输入「北京是个好城市」,则变成「**是个好城市」。
分析
思路和0011题一样,接着使用str.replace方法,将敏感词替换为*。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| with open('filtered_words.txt','r') as f: text = ''.join(f.readlines()).strip('\n').split()
while True: line = input("> ") for words in text: line = line.replace(words,len(words)*‘*’)
print(line)
|
- 高效版,从Github上找一个DFA,BF算法实现的匹配过滤,由于python2写的,我们可以简单修改一下,去除编码部分的判断即可在Python3下正常使用。
1 2 3 4 5 6 7 8 9 10 11 12 13
| from wfgfw import DFAFilter
f = DFAFilter()
f.parse('filtered_words.txt')
while True: msg = input(">") _,out = f.filter(msg) print(out)
|
参考