用Python统计红楼梦中与贾宝玉最亲密的十个人物并制作词云图
时间: 2024-04-30 09:17:21 浏览: 112
可以使用Python中的jieba和wordcloud库来实现。
首先,需要读入红楼梦文本文件。将文本文件中的内容存储到一个字符串中。
```python
with open('红楼梦.txt', 'r', encoding='utf-8') as f:
content = f.read()
```
接着,使用jieba库来进行中文分词,并进行词频统计。筛选出与贾宝玉关系较亲密的十个人物。
```python
import jieba
from collections import Counter
jieba.add_word('贾宝玉')
# 进行中文分词
words = jieba.cut(content)
# 筛选出与贾宝玉关系较亲密的人物
target_list = ['贾宝玉', '林黛玉', '薛宝钗', '王熙凤', '史湘云', '李纨', '贾母', '贾琏', '贾探春', '贾惜春']
count = Counter()
for word in words:
if word in target_list:
count[word] += 1
```
最后,使用wordcloud库生成词云图。
```python
from wordcloud import WordCloud
# 以字典形式存储词频
word_dict = dict(count)
# 生成词云图
wc = WordCloud(background_color='white', width=800, height=600, font_path='msyh.ttc')
wc.generate_from_frequencies(word_dict)
wc.to_file('wordcloud.png')
```
运行以上代码,即可生成一张以贾宝玉为中心的词云图,显示了与其关系较亲密的十个人物。
阅读全文