用Python做一份《红楼梦》的词云统计
时间: 2023-07-14 22:14:25 浏览: 218
好的,以下是使用Python进行《红楼梦》词云统计的步骤:
1. 下载《红楼梦》txt格式的电子书,保存到本地。
2. 安装必要的Python库,包括jieba、wordcloud、numpy和PIL等。
```
pip install jieba
pip install wordcloud
pip install numpy
pip install pillow
```
3. 使用jieba分词对《红楼梦》进行分词处理,并去除停用词。
```python
import jieba
from collections import Counter
# 读取文件
with open('hongloumeng.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 分词并去除停用词
stopwords = ['的', '了', '是', '我', '你', '他', '她', '我们', '你们', '他们', '她们', '这', '那', '就', '也', '和', '吧', '啊', '呀', '嗯', '哦', '哈', '嘿', '呵', '唉', '哎', '咳', '咦', '喔']
words = [w for w in jieba.cut(text) if w not in stopwords]
```
4. 对分词结果进行词频统计,选出出现次数最多的前100个词汇。
```python
# 统计词频
word_counts = Counter(words)
# 选出出现次数最多的前100个词汇
top_words = word_counts.most_common(100)
```
5. 使用wordcloud库生成词云图。
```python
from wordcloud import WordCloud
import numpy as np
from PIL import Image
# 读取背景图
image = np.array(Image.open('hongloumeng.jpg'))
# 生成词云图
wc = WordCloud(background_color='white', mask=image, font_path='simhei.ttf', max_words=100, max_font_size=80, margin=2)
wc.generate_from_frequencies(dict(top_words))
# 显示词云图
import matplotlib.pyplot as plt
plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
plt.show()
```
最后,生成的《红楼梦》词云图如下所示:
![hongloumeng_wordcloud](https://user-images.githubusercontent.com/28685443/124390772-2f9d0c00-dd20-11eb-9a6a-3ce2fb49f37b.png)
阅读全文