关键词过滤

fresh
Python实现批量敏感词、不沾边词过滤等;做电商一般导出或采集回来的关键词比较杂乱,而且会有商标词,或完全不相关的词等,这时人工处理大量关键词,明显不靠谱,效率低不说,还容易出错、或遗漏等,更重要的是人会特别烦躁、、、之前经验告诉我们:安排下面的人处理,就是恶心别人,敷衍自己!陡壁的我,还好码了一点字,将就着看吧!有什么可直接在写评论交流,互相电一下,俗称交流电:

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

 

各行各业,请自备一份不想要、看不顺眼的词,运行一下脚本:就酱了!
posted @ 2017-04-13 16:18  l4617  阅读(297)  评论(0)    收藏  举报