十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
创新互联公司凭借在网站建设、网站推广领域领先的技术能力和多年的行业经验,为客户提供超值的营销型网站建设服务,我们始终认为:好的营销型网站就是好的业务员。我们已成功为企业单位、个人等客户提供了做网站、成都网站设计服务,以良好的商业信誉,完善的服务及深厚的技术力量处于同行领先地位。这篇文章主要介绍用python创建词云图片的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
Python实现词云的库有很多,较为常见的就是wordcloud,这个库基于PIL,PIL是必不可少的,需要用的还有matplotlib和numpy。
本文使用解释器为python2.7.13 32位。
安装
pip install wordcloud
使用
针对库示例做了一个简单修改,直接使用generate_from_frequencies方法,而没有使用generate()方法。有这样几个原因,generate_from_frequencies是基础的方法,generate()仍然还是要调用generate_from_frequencies方法;实验比较直接。
库的使用方法很简单,但是中文使用的话会有几个问题,一个是字符编码问题,二是字体问题,默认的字体不支持中文,因此需要加入font_path = "simfang.ttf"指定字体,这是把字体指定为同一个文件夹下的simfang.ttf。
示例:
#encoding=utf-8 from os import path from wordcloud import WordCloud import sys reload(sys) sys.setdefaultencoding('utf-8') fre={"哈哈".decode('utf-8'): 1.2,"呵呵".decode('utf-8'):6} wordcloud = WordCloud(font_path = "simfang.ttf").generate_from_frequencies(fre) import matplotlib.pyplot as plt plt.imshow(wordcloud, interpolation='bilinear') plt.axis("off") plt.show()
效果如下:
先抽取网页的文本,然后再进行分词,将分词结果根据频率作为字典传给generate_from_frequencies,生成词云。
更简单,比如直接抽取文章的关键词,比如博客每篇文章就有关键词,用Counter库,直接生成频率调用。
使用背景图片生成词云
对上面的代码做了一点简单的改动:
#encoding=utf-8 from os import path from wordcloud import WordCloud import sys reload(sys) sys.setdefaultencoding('utf-8') d = path.dirname(__file__) text = open(path.join(d, 'constitution.txt')).read().decode('utf-8') import numpy as np from PIL import Image football = np.array(Image.open(path.join(d, "timg.jpg"))) fre={"哈哈".decode('utf-8'): 1.2,"呵呵".decode('utf-8'):6,"咯咯".decode('utf-8'):6, "呵呵".decode('utf-8'):6,"咯咯".decode('utf-8'):6, "啦啦".decode('utf-8'):1,"哦哦".decode('utf-8'):6, "恩恩".decode('utf-8'):3,"呃呃".decode('utf-8'):6, "饿饿".decode('utf-8'):3,"嗯嗯".decode('utf-8'):6, "哼哼".decode('utf-8'):5,"丽丽".decode('utf-8'):6, "咔咔".decode('utf-8'):7,"咳咳".decode('utf-8'):6, "乐乐".decode('utf-8'):6,"呐呐".decode('utf-8'):6, "嘎嘎".decode('utf-8'):6,"嘻嘻".decode('utf-8'):6} #wordcloud = WordCloud(font_path = "simfang.ttf").generate(text) wordcloud = WordCloud(font_path = "simfang.ttf",mask=football).generate_from_frequencies(fre) import matplotlib.pyplot as plt plt.imshow(wordcloud, interpolation='bilinear') plt.axis("off") plt.show()
效果如下:
以上是用python创建词云图片的方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联-成都网站建设公司行业资讯频道!