我希望能够在给定的文章中搜索预定义的关键词列表,并在文章中找到关键词时将分数增加1。由于预定义的关键词列表非常大(10k个关键词),并且文章数量为100k,因此我希望使用多进程。
我看到了this这个问题,但它没有解决我的问题。
我尝试了这个实现,但结果是
我会翻译成中文:
我看到了this这个问题,但它没有解决我的问题。
我尝试了这个实现,但结果是
None
。keywords = ["threading", "package", "parallelize"]
def search_worker(keyword):
score = 0
article = """
The multiprocessing package also includes some APIs that are not in the threading module at all. For example, there is a neat Pool class that you can use to parallelize executing a function across multiple inputs."""
if keyword in article:
score += 1
return score
我会翻译成中文:
我尝试了以下两种方法,但结果得到了三个None
。
方法1:
pool = mp.Pool(processes=4)
result = [pool.apply(search_worker, args=(keyword,)) for keyword in keywords]
方法2:
result = pool.map(search_worker, keywords)
print(result)
实际输出:[None, None, None]
期望输出:3
我考虑将预定义的关键词列表和文章一起发送给工人,但我不确定是否朝着正确的方向前进,因为我没有多进程的先前经验。
提前致谢。
if __name__ == '__main__'
来运行method 1和method 2吗? - e.s.