使用线程池实现对英语单词的出现频率统计

在这个示例中,我们首先定义了一个文本列表 # text_list,其中包含了要进行单词频率统计的文本。

然后,我们定义了一个 count_word_frequency  函数,用于对每个文本进行单词频率统计。该函数将文本转换为小写,并使用 split() 方法将其拆分为单词,然后使用 Counter 类来统计每个单词的出现次数。

接下来,我们使用 ThreadPoolExecutor 创建一个线程池,并通过 executor.map() 方法将每个文本的处理任务提交给线程池。这将返回一个可迭代对象 results,其中包含了每个文本的单词频率统计结果。

最后,我们使用一个循环将所有的单词频率统计结果合并到一个最终的 Counter 对象 final_word_counts  中。

然后,我们遍历  final_word_counts 打印每个单词及其出现次数。

完整代码如下:

import concurrent.futures
from collections import Counter
# 假设这是你生成的文本列表
text_list = [
    'Hello,how are you, I am doing great,thank you, What are your plans for today, I plan to go for a walk in the park'
]
# 单词频率统计函数
def count_word_frequency(text):
    words = text.lower().split()
    word_counts = Counter(words)
    return word_counts

# 使用线程池进行单词频率统计
with concurrent.futures.ThreadPoolExecutor() as executor:
    # 提交每个文本的处理任务给线程池
    results = executor.map(count_word_frequency, text_list)

# 合并所有单词频率统计结果
final_word_counts = Counter()
for result in results:
    final_word_counts += result

# 打印单词频率统计结果
for word, count in final_word_counts.items():
    print(f'{word}: {count}')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值