在这个示例中,我们首先定义了一个文本列表 # 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}')