介绍
怎么在python中利用多进程提取处理大量文本的关键词?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
<强>代码如下:强>
#编码:utf - 8 import 系统 重载(系统) sys.setdefaultencoding (“utf-8") 得到multiprocessing import 池,队列的过程 import multiprocessing  as mp import 时间,随机的 import 操作系统 import 编解码器 import jieba.analyse jieba.analyse.set_stop_words (“yy_stop_words.txt") def extract_keyword (input_string): #打印(“Do  task by process {proc}“.format (proc=os.getpid ())) 时间=tags jieba.analyse.extract_tags (input_string, topK=100) #打印(“key 词:{千瓦}“.format (kw=?“. join(标签))) return 标签 # def parallel_extract_keyword (input_string out_file): def parallel_extract_keyword (input_string): #打印(“Do  task by process {proc}“.format (proc=os.getpid ())) 时间=tags jieba.analyse.extract_tags (input_string, topK=100) # time . sleep (random.random ()) #打印(“key 词:{千瓦}“.format (kw=?“. join(标签)))=# o_f 开放(out_file & # 39; w # 39;) # o_f.write (“,“. join(标签)+“\ n") return 标签 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(& # 39;强生# 39;)[0],+“_tags.txt", 时间=t0 time.time () for line 拷贝: parallel_extract_keyword(线) out_put # parallel_extract_keyword(线) # extract_keyword(线) print(“串行处理花费时间{t}“.format (t=time.time (t0)) pool =,池(过程=int (mp.cpu_count () * 0.7)) 时间=t1 time.time () # for line 拷贝: # pool.apply_async (parallel_extract_keyword(线,out_put)) #保存处理的结果,可以方便输出到文件 时间=res pool.map (parallel_extract_keyword、线) #打印(“Print 关键词:“) # for tag  res拷贝: #打印(“,“. join(标签) pool.close () pool.join () print(“并行处理花费时间{t} s" .format (t=time.time()分))
<强>运行:强>
python data_process_by_multiprocess.py message.txt
消息。txt是每行是一个文档,共581行,7米的数据
<强>运行时间:强>
不使用睡眠来挂起进程,也就是把time . sleep (random.random())注释掉,运行可以大大节省时间。
python是什么意思
python是一种跨平台的,具有解释性,编译性,互动性和面向对象的脚本语言,其最初的设计是用于编写自动化脚本,随着版本的不断更新和新功能的添加,常用于用于开发独立的项目和大型项目。
关于怎么在python中利用多进程提取处理大量文本的关键词问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。