首页
/ Python之红楼梦词频统计并生成图云

Python之红楼梦词频统计并生成图云

2025-08-05 02:16:00作者:宣聪麟

适用场景

你是否曾对《红楼梦》这部经典文学作品中的词汇分布感到好奇?或者想要通过数据可视化的方式直观展示文本中的高频词汇?本项目通过Python实现了《红楼梦》的词频统计与词云生成功能,适用于以下场景:

  1. 文学研究:帮助研究者快速分析《红楼梦》中的高频词汇,辅助文本分析。
  2. 教学演示:为编程或文学课程提供生动的数据可视化案例。
  3. 个人兴趣:满足对经典文学作品的数据探索需求。

适配系统与环境配置要求

本项目基于Python开发,适配以下系统与环境:

  • 操作系统:Windows、macOS、Linux均可运行。
  • Python版本:建议使用Python 3.7及以上版本。
  • 依赖库
    • jieba:用于中文分词。
    • wordcloud:用于生成词云。
    • matplotlib:用于可视化展示。
    • numpy:支持数据处理。

安装依赖库的命令如下:

pip install jieba wordcloud matplotlib numpy

资源使用教程

1. 准备文本数据

将《红楼梦》的文本文件保存为hongloumeng.txt,确保文件编码为UTF-8。

2. 分词与词频统计

使用jieba库对文本进行分词,并统计词频:

import jieba
from collections import Counter

with open("hongloumeng.txt", "r", encoding="utf-8") as f:
    text = f.read()

words = jieba.lcut(text)
word_counts = Counter(words)

3. 生成词云

利用wordcloud库生成词云图:

from wordcloud import WordCloud
import matplotlib.pyplot as plt

wordcloud = WordCloud(font_path="simhei.ttf", background_color="white").generate_from_frequencies(word_counts)
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()

4. 保存结果

将生成的词云保存为图片:

wordcloud.to_file("hongloumeng_wordcloud.png")

常见问题及解决办法

1. 分词效果不佳

  • 问题:分词结果包含大量无意义的单字或标点符号。
  • 解决:使用停用词表过滤无关词汇,或调整jieba的分词模式。

2. 词云显示乱码

  • 问题:生成的词云中文字显示为方框。
  • 解决:确保指定了正确的中文字体路径(如simhei.ttf)。

3. 运行速度慢

  • 问题:处理大文本时程序运行缓慢。
  • 解决:优化代码逻辑,或对文本进行分段处理。

通过本项目,你可以轻松实现《红楼梦》的词频分析与可视化,快来试试吧!