问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Python中extract_tags()怎么对多行文本提取特征词而不是一行一行...

发布网友 发布时间:2024-03-26 15:34

我来回答

1个回答

热心网友 时间:2024-07-31 05:12

[python] view plain copy
#coding:utf-8
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):
#print("Do task by process {proc}".format(proc=os.getpid()))
tags = jieba.analyse.extract_tags(input_string, topK=100)
#print("key words:{kw}".format(kw=" ".join(tags)))
return tags

#def parallel_extract_keyword(input_string,out_file):
def parallel_extract_keyword(input_string):
#print("Do task by process {proc}".format(proc=os.getpid()))
tags = jieba.analyse.extract_tags(input_string, topK=100)
#time.sleep(random.random())
#print("key words:{kw}".format(kw=" ".join(tags)))
#o_f = open(out_file,'w')
#o_f.write(" ".join(tags)+"\n")
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)
#parallel_extract_keyword(line,out_put)
#extract_keyword(line)
print("串行处理花费时间{t}".format(t=time.time()-t0))

pool = Pool(processes=int(mp.cpu_count()*0.7))
t1 = time.time()
#for line in lines:
#pool.apply_async(parallel_extract_keyword,(line,out_put))
#保存处理的结果,可以方便输出到文件
res = pool.map(parallel_extract_keyword,lines)
#print("Print keywords:")
#for tag in res:
#print(" ".join(tag))

pool.close()
pool.join()
print("并行处理花费时间{t}s".format(t=time.time()-t1))

运行:
python data_process_by_multiprocess.py message.txt
message.txt是每行是一个文档,共581行,7M的数据

运行时间:

不使用sleep来挂起进程,也就是把time.sleep(random.random())注释掉,运行可以大大节省时间。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
求大学生谈恋爱的各种弊端 大学生恋爱的利大于弊吗? 大学生谈恋爱的弊处 dnf现在站街16000的物攻 增加100物攻能张多少 家里养的蚕宝宝是要蜕皮了吗 富贵包硬和软的区别 【已完成】为什么腋窝突然有异味? 女生为什么有狐臭症状? 为什么会狐臭 万视宝这个牌子是做什么的?有人了解嘛? 溶解的微观实质是什么 天龙八部2飞龙买的东西多久可以卖 修改一年内如何二次修改吗苹果 QQ电脑管家每个月都会提示有高危漏洞要修补,要下载补丁!不每个月都修... 误喝一口柴油怎么办,可以吃生蒜吗1 我喝了一口柴油怎么办?对身体有害处吗?!很恶心。29 帕萨特有必要买380吗 一年改2次的办法 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 价格差不多的帕萨特2017款330领尊版和2017款380御尊版选哪个比较好... 帕萨特款330与380区别 紫檀手串盘的有点发黑埋太了什么办 乳清蛋白什么味道呢?与大豆蛋白有什么区别 怎样消除嘴里的柴油味道7 柴油启动液不小心喷在嘴里有毒吗? 柴油喝到嘴里有没有事22 the girl wants to join the art club.疑问句是什么? 内存卡写入速度稳定不稳定和读卡器有关系吗 内存卡是c4的 写入速度基本... 请问存储卡读写性能差的意思是什么 一年内怎么改第二次 溶解的实质是什么? es200新车行马使150km但车启动时候有9876Km 今天用水管抽油时不小心喝了一口柴油 也许对身体有什么危害吗3 不小心喝了一口柴油该吃什么样药和菜3 物质相互溶解的实质是什么? 一年内怎么改第二次 物质的溶解过程的实质为什么不是其电离过程, 化学里面,物质溶解的实质是什么?比如饱和NaCl,是这种物质达到了饱和还是... Newline新产品New Pad AI智能平板尺寸多大? 一杯'牛奶一个面包谜语食物 晚上只喝一杯牛奶外加一个面包可以吗 溶质溶解的过程的实质是什么 美容师上半年工作总结 情人之间应该如何相处? 不小心喝了柴油要不要紧 雨水之后还会再下雪吗?惊蛰之前会打雷吗?下雪时有时也打雷吗? 为什么雨水从天空落下来的时候会打雷呢? 吊兰,红掌,文竹能一起放在室内养吗 我国反垄断法为什么对 电信 和 石油 不起作用 女生可爱俏皮呆萌个性签名