在线生成词云图

  • WordArt
    定制性比较强,支持中文,但是图中的词需要手动输入。
    https://wordart.com/

Python生成词云图

本文介绍使用Python程序生成词云图,它依赖的三方库wordcloud需要编译C++库,在Windows搭建环境比较复杂,建议在Linux系统中安装使用。

下例中使用了urllib库从抓取网页内容,jieba库用于分词,wordcould库用于生成词云,代码如下:

import matplotlib.pyplot as plt
import jieba
from wordcloud import WordCloud
import urllib.request 
import html2text
%matplotlib inline

#url = 'https://mp.weixin.qq.com/s/Pr04533M2chdA3pVA8idNA'
url = 'http://baijiahao.baidu.com/s?id=1645663163087703799&wfr=spider&for=pc'
page = urllib.request.urlopen(url)
contents = page.read().decode()
h = html2text.HTML2Text()
h.ignore_links=True # 去掉超链接
text = h.handle(contents)
text = text.replace(' ', '')
text = text.replace('*', '')
text = text.replace('\n', ' ')
cut_text = jieba.cut(text) # 分词
result = " ".join(cut_text)
print(result)
wc = WordCloud(
    font_path='simhei.ttf',
    background_color='white',
    width=1000,
    height=600,
    max_font_size=50,
    min_font_size=10,
    max_words=200,
    mask=plt.imread('star.jpg')  #mask图片
)
wc.generate(result)
wc.to_file('ciyun.png')  #图片保存
plt.imshow(wc) # 显示图片
plt.axis('off') #关闭坐标
plt.show()

读者替换网址后,重新运行即可生成词云图。其中的mask图片用于设置词云的形状,本例中使用了背景为白色,前景为黑色的图片star.jpg(注意使用jpg格式图片),效果如下图所示(左侧为mask,右侧为生成的词云图):

posted on 2019-09-26 14:20  xieyan0811  阅读(66)  评论(0编辑  收藏  举报