multiprocess Poll.map python多进程提取处理大量文本的关键词



import sys  
reload(sys)  
sys.setdefaultencoding("utf-8")  
from multiprocessing import Pool,Queue,Process  
import multiprocessing as mp   
import time,random  
import os  
import codecs  
import jieba.analyse  
jieba.analyse.set_stop_words("yy_stop_words.txt")  
  
def extract_keyword(input_string):  


    tags = jieba.analyse.extract_tags(input_string, topK=100)  
    return tags  
  
def parallel_extract_keyword(input_string):  
    tags = jieba.analyse.extract_tags(input_string, topK=100)  
    return tags  
if __name__ == "__main__":  
  
  
    data_file = sys.argv[1]  
    with codecs.open(data_file) as f:  
        lines = f.readlines()  
        f.close()  
      
    out_put = data_file.split('.')[0] +"_tags.txt"   
    t0 = time.time()  
    for line in lines:  
        parallel_extract_keyword(line)  
    print("串行处理花费时间{t}".format(t=time.time()-t0))  
  
      
    pool = Pool(processes=int(mp.cpu_count()*0.7))  
    t1 = time.time()  
    res = pool.map(parallel_extract_keyword,lines)  
  
    pool.close()  
    pool.join()  
    print("并行处理花费时间{t}s".format(t=time.time()-t1))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值