php生成云图,教程:用Python生成词云图

一. 词云图

“词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。

3555

二. 前期准备

Python+jieba库+wordcloud库

如果需要自定义图像,还需要scipy库

jieba库

jieba库是用于中文分词的,可以将中文长文本切分成词组列表。jieba库提供三种分词模式:精确模式、全模式和搜索引擎模式。在生成词云图中,我们一般采用精确模式。其一般用法为:lst=jieba.lcut(txt)

txt代表要分词的文本。有别于更常用的jieba.cut函数返回的是迭代器,jieba.lcut函数返回分词结果的列表。

需要特别注意的是,待分词的文本建议为UTF-8编码格式,GBK编码格式文本可能产生无法预料的错误。

如需了解更多,可参考jieba库官方文档

安装方法

可以在cmd中使用pip指令进行安装。安装语句为:pip isntall jieba

wordcloud库

wordcloud库是Python中用于生成词云图的第三方库。其本身支持对英文的分词,但对中文分词效果较差,故需结合jieba库使用。

一般用法

我们使用wordcloud库中的WordCloud对象w=wordcloud.WordCloud()

来实例化一个词云

之后使用generate方法将分词后的文本导入词云中w.genetare(txt)

最后通过to_file方法将词云图导出为图片w.to_file(path+pic_name)

如需了解更多,可参考官方文档

安装方法

第一种方法

可以采用pip指令安装pip install wordcloud

但考虑到国内的网络因素,可能会安装失败。

第二种方法

可以下载编译好的.whl文件进行本地安装

这里推荐一个由UCI的lfd实验室汇总的网页,里面整理了众多经过编译的python第三方库包可供下载。

在其中下载适合python版本的wordcloud包后,进入cmd窗口。首先cd 至包所在的路径,然后使用pip指令安装该文件。例:cd c://users//admin//downloads

pip install wordcloud-1.5.0-cp37-cp37m-win_amd64.whl

三. 生成词云图

这里直接给出源码,再逐一解释其用法。import os

import jieba

from wordcloud import WordCloud

from scipy.misc import imread

file_dir=r"C:\Users\xmy\Documents\Code\Data\wordcloud"

file_name="党校资料.txt"

pic_dir=r"C:\Users\xmy\Pictures\Python"

pic_name="chinamap.jpg"

path=os.path.join(file_dir,file_name)

to_path=os.path.join(pic_dir,os.path.basename(file_name).split(".")[0]+".png")

with open(path,"r",encoding="utf-8") as f:

t=f.read()

ls=jieba.lcut(t)

txt=" ".join(ls)

mask=imread(os.path.join(pic_dir,pic_name))

w=WordCloud(font_path="msyh.ttc",mask=mask)

w.generate(txt)

w.to_file(to_path)

核心代码从open部分开始:使用with open语句打开.txt文件,再利用read()读取全部文本。

需要提醒的是,请特别注意编码格式。

调用jieba.lcut函数对文本进行分词并返回列表

" ".join(ls)将分词得到的列表用空格分隔开生成一段新文本

*imread用于读取图片(如不需要自定义图形,可忽略该语句)

w.WordCloud实例化词云(如需自定义图形,将mask参数选为imread读取的图片)

需要注意,如果是生成中文词云,需指定中文字体格式,否则无法显示中文。我们使用的是系统自带的微软雅黑字体,即“msyh.ttc”。

w.generate(txt)将分词后的文本导入词云中

w.to_file()将词云图导出为本地图片

这样,就完成了代码部分。

运行后,稍等片刻,即会在本地生成词云图片。

3555

使用的底图是:

3555

四. 尾巴

先讲讲踩过的坑:

最初确认wordcloud库安装完成后,运行代码总报ImportError:cannot import name ‘WordCloud’

解决方案很简单,代码文件名不能是wordcloud,和库名一致导致代码无法正确运行。

Ending

这篇教程只是生成简单的词云图,实现更多丰富功能可以参考wordcloud库的参考文档。祝大家Happy Coding!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值