我们在上网冲浪的时候经常可以看到非常炫酷的词云图
比如这样:
这样:
再比如:
很多小伙伴会觉得,哇塞,好厉害的图!做起来是不是很难啊!
词云图,也就是文字云,是对文本中出现的频率较高的关键词予以视觉化的展示。其优点显而易见啦,可以使读者只要一眼扫过就可以领略文本的重要信息。词云图其实并不是很难,用python第三方模块很容易实现的。
下载第三方模块
主要用到的模块有wordcloud和jieba
wordcloud
这是生成词云展示的核心第三方库,以词语为基本单位,将词语进行可视化展示
wordcloud.WordCloud()代表一个文本岁对应的词云对象
通常,创建词云对象的时候可以配置的参数如下:
参数 | 描述 |
---|---|
width | 指定词云对象生成图片的宽度,默认400像素 |
height | 指定词云对象生成图片的高度,默认200像素 |
min_font_size | 指定词云中字体的最小字号,默认4号 |
max_font_size | 指定词云中字体的最大字号,根据高度自动调节 |
font_step | 指定词云中字体字号的步进间隔,默认为1 |
font_path | 指定字体文件的路径,默认None |
max_words | 指定词云显示的最大单词数量,默认200 |
stop_words | 指定词云的排除词列表,即不显示的单词列表 |
mask | 指定词云形状,默认为长方形,需要引用imread()函数 |
background_color | 指定词云图片的背景颜色,默认为黑色 |
jieba
在创建词云对象之前,我们要进行分词操作
jieba是一款很棒的Python第三方中文分词库
jieba分词算法
基于统计词典,构造前缀词典,基于前缀词典对句子进行切分,得到所有切分可能
根据 切分位置,构造一个有向无环图(DAG)基于DAG图,采用动态规划计算最大概率路径(最有可能的分词结果),根据最大概率路径分词
对于新词(词库中没有的词),采用有汉字成词能力的HMM模型进行切分
import jieba content = "现如今,机器学习和深度学习带动人工智能飞速的发展,并在图片处理、语音识别领域取得巨大成功。" seg_1 = jieba.cut(content,cut_all=False) # print(seg_1) print("/".join(seg_1))
- 全模式:将语句中所有可能是词的词语都切分出来,速度很快,但是存在冗余数据
seg_3 = jieba.cut(content,cut_all = True) print("/".join(seg_3<