用python制作词云
用python制作词云
运行环境: python3.x
需要的模块:wordcloud 、 PIL 、 jieba 、 numpy
注意:PIL安装需要使用 pip install Pillow 命令
过程:
1.首先需要把文本中的词语先分割出来
使用jieba.cut()方法可以将一段文本中的中文词条切割
2.选择一张图片作为词云的背景(要求轮廓清晰)
使用numpy.array()方法把图片转化成数组形式,为最终生成词云做铺垫
此处图片需要使用Image.open()方法打开图片作为上一个函数的对象
3.将统计好的词按照频率放入到指定的图片轮廓中
使用WordCloud()方法设置背景、字体、最多词数、过滤噪音文字等 实例化
转化成图片然后保存为图片
代码:
from wordcloud import WordCloud # 词云库
import PIL.Image as Image # 图片处理库
import jieba # 中文文字处理库
import numpy # 图片渲染
stopwords = {"的"} # 定义过滤字
# 定义一个中文的分词函数
def chinese_word(text):
worldlist_jieba = jieba.cut(text) # 将文本中的词条切割开来,生成的是一个迭代器
wd_space_slipt = " ".join(worldlist_jieba) # 将分割开来的各个词语用空格连接起来
return wd_space_slipt # 返回处理结果
with open("news.txt", encoding="utf-8") as f: # 打开文本文档
text = f.read() # 读取文档内容
cn_text = chinese_word(text) # 调用中文分词函数,将中文词条切割
mask_pic = numpy.array(Image.open("china.jpg")) # 加载图片
# 生成词云的核心代码,可以指定背景颜色,字体,背景图片,最多词数,过滤噪音文字
worldcloud = WordCloud(background_color='white', font_path='simkai.ttf', mask=mask_pic, max_words=3000,
stopwords=stopwords).generate(text)
image = worldcloud.to_image() # 转化成图片
image.show() # 显示生成的图片
worldcloud.to_file("pic.jpg") # 存储为文件