您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Python词云图怎么生成
## 一、什么是词云图
词云图(Word Cloud)是一种数据可视化形式,通过不同大小、颜色和排列方式的文字来直观展示文本数据中的高频词汇。词频越高的词汇在图中显示越大,反之则越小。这种图表广泛应用于:
- 文本分析
- 社交媒体舆情监控
- 用户评论情感分析
- 文档关键词提取
## 二、Python生成词云图的必备工具
### 1. 核心库介绍
```python
# 主要依赖库
pip install wordcloud matplotlib jieba pillow numpy
from wordcloud import WordCloud
import matplotlib.pyplot as plt
text = """Python is an interpreted, high-level and general-purpose programming language.
Python's design philosophy emphasizes code readability with its notable use of significant whitespace."""
# 生成词云对象
wordcloud = WordCloud(width=800, height=400, background_color='white').generate(text)
# 显示词云
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off') # 隐藏坐标轴
plt.show()
参数 | 说明 | 示例值 |
---|---|---|
width | 图像宽度(像素) | 800 |
height | 图像高度 | 600 |
background_color | 背景色 | ‘white’, ‘black’ |
max_words | 最大显示词数 | 200 |
stopwords | 停用词集合 | set([‘the’, ‘and’]) |
colormap | 颜色映射 | ‘viridis’, ‘plasma’ |
font_path | 字体文件路径 | ‘msyh.ttc’(微软雅黑) |
import jieba
text = "自然语言处理是人工智能的重要方向之一。中文分词是处理中文文本的基础步骤。"
# 中文分词处理
seg_text = " ".join(jieba.cut(text))
from wordcloud import WordCloud
import jieba
import matplotlib.pyplot as plt
# 准备中文文本
text = """数据分析是指用适当的统计分析方法对收集来的大量数据进行分析...
Python在数据分析领域有pandas、numpy等优秀库支持"""
# 中文分词
text_cut = " ".join(jieba.cut(text))
# 配置中文字体(重要!)
font_path = 'msyh.ttc' # 微软雅黑字体
# 生成词云
wc = WordCloud(
font_path=font_path,
width=1000,
height=700,
background_color='white',
max_words=100
).generate(text_cut)
# 显示词云
plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
plt.show()
from PIL import Image
import numpy as np
# 加载形状蒙版
mask = np.array(Image.open('cloud_shape.png'))
wc = WordCloud(
mask=mask,
contour_width=3,
contour_color='steelblue'
).generate(text)
from wordcloud import ImageColorGenerator
# 基于图片的颜色方案
image_colors = ImageColorGenerator(mask)
wc.recolor(color_func=image_colors)
from collections import Counter
# 手动统计词频
words = jieba.cut(text)
word_counts = Counter(words)
# 过滤低频词
filtered_counts = {k:v for k,v in word_counts.items() if v > 2}
wc.generate_from_frequencies(filtered_counts)
import pandas as pd
# 读取电商评论数据
df = pd.read_csv('reviews.csv')
all_text = " ".join(df['comment'])
# 生成词云(略,同上)
# 使用jieba.analyse提取关键词
import jieba.analyse
tags = jieba.analyse.extract_tags(text, topK=100, withWeight=True)
word_freq = {tag[0]: tag[1] for tag in tags}
wc.generate_from_frequencies(word_freq)
中文显示为方框
font_path
参数词云形状不规则
mask
数组的阈值性能优化建议
max_words
数量scale
参数缩小画布比例"""
电商评论词云分析系统
1. 读取评论数据
2. 清洗与分词
3. 生成定制化词云
"""
import pandas as pd
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from collections import Counter
# 1. 数据加载
df = pd.read_csv('product_reviews.csv')
# 2. 文本预处理
def clean_text(text):
# 去除特殊字符、停用词等
return text
all_text = " ".join(df['comment'].apply(clean_text))
words = [word for word in jieba.cut(all_text) if len(word) > 1]
word_counts = Counter(words)
# 3. 生成词云
wc = WordCloud(
font_path='msyh.ttc',
width=1200,
height=800,
background_color='white',
colormap='viridis',
max_words=150
).generate_from_frequencies(word_counts)
# 4. 保存结果
plt.figure(figsize=(15, 10))
plt.imshow(wc)
plt.axis('off')
plt.savefig('wordcloud.png', dpi=300, bbox_inches='tight')
官方文档:
推荐书籍:
进阶方向:
通过本文介绍的方法,您可以快速掌握使用Python生成各种风格的词云图,并根据实际需求进行深度定制。词云不仅是文本分析的工具,更是数据故事讲述的有效手段。 “`
注:实际使用时请注意: 1. 需要根据系统环境配置中文字体 2. 示例中的数据文件路径需要替换为实际路径 3. 中文处理建议添加自定义词典和停用词表 4. 图片保存格式支持PNG/JPG/SVG等多种格式
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。