使用python遍历txt文件夹,统计文件中重要词汇的词频并单独绘制词云图
时间: 2024-02-06 13:11:30 浏览: 114
基于Python实现的词云生成代码,从txt文件中读取词语,生成指定图片的词云图
好的,我可以为您提供代码示例来实现这个问题。
首先,需要安装pyttsx3、pytesseract、opencv-python、pillow和wordcloud这些库。可以使用以下命令安装:
```
pip install pyttsx3 pytesseract opencv-python pillow wordcloud
```
接着,使用以下代码来实现遍历txt文件夹、统计词频和绘制词云图:
```python
import os
from collections import Counter
from PIL import Image
import numpy as np
from wordcloud import WordCloud, ImageColorGenerator
import pytesseract
# 设置字体路径
font_path = 'C:/Windows/Fonts/simfang.ttf'
# 设置图片路径和词云输出路径
img_path = 'background.png'
wordcloud_path = 'wordcloud.png'
# 获取文件夹中的txt文件列表
folder_path = 'txt_folder'
file_list = os.listdir(folder_path)
txt_list = [file_name for file_name in file_list if file_name.endswith('.txt')]
# 初始化词频统计器
word_counter = Counter()
# 遍历txt文件夹,统计词频
for txt_file in txt_list:
with open(os.path.join(folder_path, txt_file), 'r', encoding='utf8') as f:
content = f.read()
# 使用pytesseract进行OCR识别,获取文本内容
content += pytesseract.image_to_string(os.path.join(folder_path, txt_file), lang='chi_sim')
# 分词
words = content.split()
# 统计词频
word_counter += Counter(words)
# 生成词云图
background_image = Image.open(img_path)
mask = np.array(background_image)
wordcloud = WordCloud(font_path=font_path, mask=mask, background_color='white', margin=5).generate_from_frequencies(word_counter)
image_colors = ImageColorGenerator(mask)
wordcloud_color = WordCloud(font_path=font_path, mask=mask, background_color='white', margin=5).generate_from_frequencies(word_counter)
wordcloud_color.recolor(color_func=image_colors)
wordcloud_color.to_file(wordcloud_path)
```
这段代码会遍历文件夹中的所有txt文件,使用pytesseract进行OCR识别获取文本内容,分词后统计词频,最后生成使用指定图片作为背景的词云图,并保存到指定路径中。
请注意,这段代码仅供参考,具体实现可能需要根据实际需求进行进一步的修改。
阅读全文