最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

关键词过滤脚本

XAMPP相关 中文小张 1109浏览 0评论

应用场景:
有时我们从网上采集了大量的关键词,因为是采集的,难免其中含有一些敏感关键词,如果是做中文站的话,最好将这些关键词去掉。在网上找到了一个Python脚本,不过是python 2.x的,我修改了一下,改成了python 3.X的,在改的过程中遭遇如下错误:

python TypeError: a bytes-like object is required, not ‘str’

TypeError: ‘in ‘ requires string as left operand, not bytes

其实主要是因为python2和python3的编码问题,只要将原代码中的“encode(‘utf-8’)”这些去掉就可以了。

最终运行结果如下(过滤了原来文件中的“funny”、“guy”这两个单词):

代码如下:

1 import sys
2
3 op_txt = open('done.txt', 'a')
4
5 class NaiveFilter():
6     '''Filter Messages from keywords
7
8     very simple filter implementation
9
10     >>> f = NaiveFilter()
11     >>> f.add("sexy")
12     >>> f.filter("hello sexy baby")
13     hello **** baby
14     '''
15
16     def __init__(self):
17         self.keywords = set([])
18
19     def parse(self, path):
20         for keyword in open(path):
21             self.keywords.add(keyword.strip().lower())
22         # print self.keywords
23
24     def filter(self, message, replss="*"):
25         # print(message)
26         message = message.lower()
27         # print(message)
28         for k in self.keywords:
29             if k in message:
30                 message = message.replace(k, replss)
31             else:
32                 pass
33         op_txt.write('%s\n' % message)
34         print(message)
35         # return message
36
37
38 if __name__ == '__main__':
39     f = NaiveFilter()
40     f.parse("illegal.txt")  # 这里面放要敏感词或不想要的词等
41     a = [i.strip() for i in open('keywords.txt').readlines()]  # keywords.txt是将要过滤的词库
42     c = len(a)
43     for i in range(c):
44         f.filter(a[i])

转载请注明:XAMPP中文组官网 » 关键词过滤脚本

您必须 登录 才能发表评论!