通天战队|高大上的词云,其实很简单

大家好 , 我是【Python办公自动化】:闲暇之余分享点文字、编程、设计等干货 , 希望和你一起成长 。
一起学习Python办公自动化 , 教你快速学习Python的方法 , 可以站内私信我 。
在海量数据中提取有效的信息 , 词云不愧是一种有效解决此类问题的方法 , 它可以突出显示关键词 , 快速提取有价值的信息 。 Python制作词云很简单 , 一般几行代码就可以搞定 , 主要使用的库有jieba(结巴 , 一种分割汉语的分词库)和wordcloud库 。
1.jieba库jieba 是目前最好的Python中文分词组件 , 它支持3种分词模式:精确模式、全模式、搜索引擎模式 。
jieba.cut()方法接受两个输入参数 , 第一个参数为需要分词的字符串 , 第二个参数cut_all用来控制是否采用全模式 。 返回一个列表 。
jieba.lcut()方法接受两个输入参数 , 第一个参数为需要分词的字符串 , 第二个参数cut_all用来控制是否采用全模式 。 返回一个生成器 。 该方法与jieba.cut()方法返回切割的词是一致的 。
jieba.cut_for_search()方法接受一个参数 , 参数为需要分词的字符串,该方法适合用于搜索引擎构建倒排索引的分词 , 粒度比较细 。
从结果上看全模式是将所有词语分割出来 , 但会分割出我们不需要的词语 。 如果我们做词云 , 常使用精确模式 。 搜索引擎常使用搜索引擎模式 , 将句子切割成关键词 。
通过下段代码演示这3种模式的区别 。
import jieba
#全模式 , cut()方法返回列表
seg_list = jieba.cut("南京市长江大桥欢迎你 。 ", cut_all=True)
print(type(seg_list),seg_list)
#精确模式,lcut()方法返回生成器模式
seg_list1 = jieba.lcut("南京市长江大桥欢迎你 。 ", cut_all=False)
print(type(seg_list1),seg_list1)
#搜索引擎模式
seg_list2 = jieba.cut_for_search("南京市长江大桥欢迎你 。 ")
print(type(seg_list2),seg_list2)
print("全模式:" + "/ ".join(seg_list))
print("精确模式:" + "/ ".join(seg_list1))
print("搜索引擎模式:" + "/ ".join(seg_list2))
代码执行结果如下所示 。
['南京市', '长江大桥', '欢迎', '你', ' 。 ']

全模式:南京/ 南京市/ 京市/ 市长/ 长江/ 长江大桥/ 大桥/ 欢迎/ 你/。
精确模式:南京市/ 长江大桥/ 欢迎/ 你/。
搜索引擎模式:南京/ 京市/ 南京市/ 长江/ 大桥/ 长江大桥/ 欢迎/ 你/。
通天战队|高大上的词云,其实很简单2.wordcloud库wordcloud库是优秀的词云展示第三方库 , 主要功能是用文本词汇和词频以图片展示 。 直观形象反映词汇在所有文章中的比重 , 如:人物标签的特性、评论区情绪等等 。 通过图形可视化的方式 , 更加直观和艺术的展示文本 。
词云生成主要使用了wordcloud 库中的WordCloud类 , 可以根据文本中词语出现的频率等参数绘制词云 , 绘制词云的形状、尺寸和颜色均可设定 。
以WordCloud类为基础 , 配置参数、加载文本、输出文件 , 其语法格式如下 。
class wordcloud.WordCloud(font_path=None, width=400, height=200, margin=2, mask=None, scale=1, color_func=None, max_words=200, min_font_size=4, stopwords=None, random_state=None,background_color='black', max_font_size=None, font_step=1, mode='RGB')
其中常用参数font_path指字体路径或者字体名称 。
width指输出的画布宽度 , 默认400像素 。 height指输出的画布高度 , 默认200像素 。


推荐阅读