gpt4 book ai didi

python - 如何在Python中使用多重处理生成大型语料库的tfdf?

转载 作者:行者123 更新时间:2023-12-01 07:35:09 24 4
gpt4 key购买 nike

我想生成大型语料库的术语频率和文档频率。有一些库可以这样做,但它们没有我想要的那么灵活。这就是我目前正在做的事情,但只有一个过程。如何通过使用多处理来加速此练习?谢谢你!

#txtfiles is a list of file paths

def get_tf_df(txtfiles, tf_dict, df_dict):

for txtfile in txtfiles:
tokens = get_tokens(txtfile)
for t in tokens:
update tf_dict (I know this part)
update df_dict (I know this part)

return tf_dict, df_dict

最佳答案

您可以使用 pool工作进程和一个 Manager 实例来管理对工作进程之间共享的 tf_dictdf_dict 字典的访问:

import glob
import multiprocessing as mp

from utils import get_tokens, update_tf, update_df, save_dicts

WORKERS = 4

def update_dicts(filename, tf_dict, df_dict):
tokens = get_tokens(filename)

for tok in tokens:
update_tf(tok, tf_dict)
update_df(tok, df_dict)

def main():
manager = mp.Manager()

tf_dict = manager.dict()
df_dict = manager.dict()

pool = mp.Pool(WORKERS)

for filename in glob.glob('/path/to/texts/*.txt'):
pool.apply_async(update_dicts, args=(filename, tf_dict, df_dict))

pool.close()
pool.join()

save_dicts(tf_dict, df_dict)

if __name__ == "__main__":
main()

关于python - 如何在Python中使用多重处理生成大型语料库的tfdf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57021832/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com