下面是“Python制作词云图代码实例”的完整攻略:
1. 准备工作
- 安装Python环境及相关的库:jieba,wordcloud
- 准备好需要生成词云图的文本
2. 数据预处理
首先,需要对文本进行预处理,将其中的无用字符剔除,只留下有效的文本部分,例如:
import jieba
# 读取文本文件
with open('input.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用jieba分词
word_list = jieba.cut(text)
3. 生成词频统计数据
其次,需要对分好词的文本进行统计,生成词频数据,可以使用Python中的Counter:
from collections import Counter
# 统计词频
word_count = Counter(word_list)
4. 生成词云图
生成词云图需要使用wordcloud库,先创建一个WordCloud对象,并设置相关参数:
from wordcloud import WordCloud
# 创建WordCloud对象
wc = WordCloud(
font_path='msyh.ttc', # 字体文件路径
max_words=200, # 最大词数
width=800, # 画布宽度
height=600, # 画布高度
background_color='white', # 背景色
)
然后,使用generate_from_frequencies方法,生成词云图:
# 生成词云图
wc.generate_from_frequencies(word_count)
# 显示词云图
import matplotlib.pyplot as plt
plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
plt.show()
示例说明1:生成一张简单的根据中文文本生成的词云图:
import jieba
from collections import Counter
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取文本文件
with open('input.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用jieba分词
word_list = jieba.cut(text)
# 统计词频
word_count = Counter(word_list)
# 创建WordCloud对象
wc = WordCloud(
font_path='msyh.ttc', # 字体文件路径
max_words=200, # 最大词数
width=800, # 画布宽度
height=600, # 画布高度
background_color='white', # 背景色
)
# 生成词云图
wc.generate_from_frequencies(word_count)
# 显示词云图
plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
plt.show()
示例说明2:在生成的词云图中添加自定义形状,使词云图呈现该形状:
import jieba
from PIL import Image
from collections import Counter
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取文本文件
with open('input.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用jieba分词
word_list = jieba.cut(text)
# 统计词频
word_count = Counter(word_list)
# 创建WordCloud对象
mask = np.array(Image.open('mask.png')) # 自定义形状
wc = WordCloud(
font_path='msyh.ttc', # 字体文件路径
max_words=200, # 最大词数
mask=mask, # 自定义形状
width=800, # 画布宽度
height=600, # 画布高度
background_color='white', # 背景色
)
# 生成词云图
wc.generate_from_frequencies(word_count)
# 显示词云图
plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
plt.show()
注意事项:
- 图片文件需要与python文件放在同一目录下或指定目录
- 如果使用的是中文文本,需要先安装中文字体,在WordCloud对象中设置font_path参数,保证词云图中的中文文本显示正常
- 另外需要注意的是,生成的词云图是基于词频统计的,因此,如果用于分析词汇语义,需要对文本进行一些更深入的处理,在此不再赘述。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python制作词云图代码实例 - Python技术站