python字典生成词云
时间: 2023-12-15 14:32:16 浏览: 87
为了生成词云,我们需要先读取文本文件并进行分词。然后,我们可以使用Python中的字典来保存需要去重的词,并计算每个词出现的次数。最后,我们可以使用第三方库wordcloud来生成词云。
以下是一个简单的Python程序,用于生成三国演义中常见人名的词云:
```python
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取文本文件
with open('threekingdoms.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 对文本进行分词
words = jieba.cut(text)
# 创建一个空字典
word_dict = {}
# 遍历分词结果,统计每个词出现的次数
for word in words:
if len(word) < 2:
continue
if word in word_dict:
word_dict[word] += 1
else:
word_dict[word] = 1
# 生成词云
wc = WordCloud(background_color='white', font_path='msyh.ttc', width=800, height=600)
wc.generate_from_frequencies(word_dict)
# 显示词云
plt.imshow(wc)
plt.axis('off')
plt.show()
# 输出词频最高的5个词
top_words = sorted(word_dict.items(), key=lambda x: x[1], reverse=True)[:5]
print('词频最高的5个词:')
for word, frequency in top_words:
print(word, frequency)
```
在这个程序中,我们首先使用jieba库对文本进行分词,并创建一个空字典来保存需要去重的词。然后,我们遍历分词结果,统计每个词出现的次数,并将结果保存到字典中。接下来,我们使用wordcloud库生成词云,并使用matplotlib库显示词云。最后,我们输出词频最高的5个词。
阅读全文