Python实现批量敏感词、不沾边词过滤等;做电商一般导出或采集回来的关键词比较杂乱,而且会有商标词,或完全不相关的词等,这时人工处理大量关键词,明显不靠谱,效率低不说,还容易出错、或遗漏等,更重要的是人会特别烦躁、、、之前经验告诉我们:安排下面的人处理,就是恶心别人,敷衍自己!陡壁的我,还好码了一点字,将就着看吧!有什么可直接在写评论交流,互相电一下,俗称交流电:
# -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf8') op_txt=open('done.txt','a') class NaiveFilter(): '''Filter Messages from keywords very simple filter implementation >>> f = NaiveFilter() >>> f.add("sexy") >>> f.filter("hello sexy baby") hello **** baby ''' def __init__(self): self.keywords = set([]) def parse(self, path): for keyword in open(path): self.keywords.add(keyword.strip().encode('utf-8').lower()) # print self.keywords def filter(self, message, replss=r"*"): message = unicode(message).lower() for k in self.keywords: if k in message: message=message.replace(k, replss) else: op_txt.write('%s\n'%message) print message # return message if __name__ == '__main__': f = NaiveFilter() f.parse("keywords") #keywords里面放要敏感词或不想要的词等 a=[i.strip() for i in open('hotword.txt').readlines()] #hotword.txt是将要过滤的词库 c=len(a) for i in range(c): f.filter(a[i])
各行各业,请自备一份不想要、看不顺眼的词,运行一下脚本:就酱了!
keywords里如果是多行,结果done.txt里是*号替换掉了要过滤的词。
拜读贵博,良心之作。