python利用jieba wordcloud词云图怎么做
时间: 2024-05-03 21:22:56 浏览: 178
1. 安装jieba和wordcloud库
```python
!pip install jieba
!pip install wordcloud
```
2. 导入所需库
```python
import jieba
import wordcloud
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
```
3. 读取文本并使用jieba进行分词
```python
with open('text.txt', 'r', encoding='utf-8') as f:
text = f.read()
words = jieba.lcut(text) # 使用jieba进行分词
```
4. 根据词频生成词云图
```python
# 统计词频
word_counts = {}
for word in words:
if len(word) == 1:
continue
if word not in word_counts:
word_counts[word] = 1
else:
word_counts[word] += 1
# 生成词云图
wc = wordcloud.WordCloud(
font_path='msyh.ttc', # 字体文件路径
background_color='white', # 背景颜色
width=800, # 宽度
height=600, # 高度
max_words=200, # 最大显示的单词数
max_font_size=100, # 最大字体大小
scale=8, # 缩放比例
random_state=42 # 随机状态
).generate_from_frequencies(word_counts)
# 显示词云图
plt.imshow(wc)
plt.axis('off')
plt.show()
```
5. 可以根据需要自定义词云图的形状
```python
# 读取图片
mask = np.array(Image.open('mask.png'))
# 生成词云图
wc = wordcloud.WordCloud(
font_path='msyh.ttc',
background_color='white',
width=800,
height=600,
max_words=200,
max_font_size=100,
mask=mask, # 以图片形状为背景
contour_width=2, # 设置轮廓线宽度
contour_color='steelblue', # 设置轮廓线颜色
random_state=42
).generate_from_frequencies(word_counts)
# 显示词云图
plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
plt.show()
```
其中,mask.png是自定义的图片,可以是任意形状的图片。
阅读全文