python统计红楼梦中人名生成词云
时间: 2023-11-03 16:55:33 浏览: 182
好的,下面是一个简单的Python程序,可以用来统计红楼梦中人名并生成词云。
首先,我们需要下载一份《红楼梦》的文本,可以从这里下载:https://www.gutenberg.org/files/1015/1015-0.txt
然后,我们需要安装一些Python包。在命令行中输入以下命令来安装:
```
pip install jieba
pip install wordcloud
pip install matplotlib
```
接下来,就可以开始编写程序了。以下是完整的代码:
```python
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取文本文件
with open('hongloumeng.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用jieba分词
words = jieba.cut(text)
# 统计人名出现的次数
name_counts = {}
for word in words:
if len(word) == 1:
continue
if word in name_counts:
name_counts[word] += 1
else:
name_counts[word] = 1
# 生成词云
wc = WordCloud(font_path='msyh.ttf', width=800, height=600, background_color='white')
wc.generate_from_frequencies(name_counts)
# 显示词云
plt.imshow(wc)
plt.axis('off')
plt.show()
```
在这个程序中,我们首先使用`jieba`包进行分词,然后统计每个人名出现的次数。最后使用`wordcloud`包生成词云,显示出来。
注意,我们需要下载一个中文字体,比如微软雅黑(msyh.ttf),并将其放在程序所在文件夹下,这样才能在词云中显示中文。也可以使用其他中文字体,只需要修改代码中的字体文件名即可。
运行程序后,就可以得到一个红楼梦中人名的词云了,类似于下面的效果:
![image.png](attachment:image.png)
希望对你有帮助!
阅读全文