84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
ringa_lee
所以说你真的就把pandas 当读取数据的工具了吗..
增加了一列is_tobacco 作为你说的标记
filter_query 返回含有这些词的列表 效率有一定提升
其次你可以分割后用 multiprocessing 执行 这个加速起来不止一点半点
import pandas as pd word = pd.read_table('test.txt', encoding = 'utf-8', names = ['query']) def signquery(word): tobacco = [u'烟', u'白沙', u'黄金叶', u'利群', u'南京九五', u'黄鹤楼软', u'黄鹤楼硬', u'娇子', u'钻石荷花', u'玉溪', u'七匹狼尚品', u'七匹狼软灰'] word['is_tobacco'] = word['query'].apply(lambda name:name in tobacco) return word def filter_query(word): tobacco = [u'烟', u'白沙', u'黄金叶', u'利群', u'南京九五', u'黄鹤楼软', u'黄鹤楼硬', u'娇子', u'钻石荷花', u'玉溪', u'七匹狼尚品', u'七匹狼软灰'] return word[word['query'].apply(lambda name:name in tobacco)]['query'].to_dict().values() result = filter_query(word) print result
可以尝试用正则:
import re pattern = re.compile(u'烟|白沙|黄金叶|利群|南京九五|黄鹤楼软|黄鹤楼硬|娇子|钻石荷花|玉溪|七匹狼尚品|七匹狼软灰') result = filter(pattern.search, word['query'])
KMP 算法
KMPManacherTireTree
KMP
Manacher
TireTree
所以说你真的就把pandas 当读取数据的工具了吗..
增加了一列is_tobacco 作为你说的标记
filter_query 返回含有这些词的列表 效率有一定提升
其次你可以分割后用 multiprocessing 执行 这个加速起来不止一点半点
可以尝试用正则:
KMP 算法
KMP
Manacher
TireTree