专栏首页菲宇利用jieba和wordcloud从新闻中生成词云

利用jieba和wordcloud从新闻中生成词云

接上一篇文章利用jieba和pyecharts做新闻关键词统计可视化

wordcloud 是一个python实现的高效词频可视化工具,除了可以使用各种mask和颜色提供个性化的掩膜,还可以通过api便捷的挑战获得个性化的词云输出。 安装

pip install wordcloud

wordcloud 包含三个主要api

  • WordCloud([font_path, width, height, …]) 最重要的函数生成和描绘词云.
  • ImageColorGenerator(image[, default_color]) 通过输入rgb图像获得色彩信息.
  • random_color_func([word, font_size, …]) 随机渲染颜色.

wordcloud库把词云当作一个WordCloud对象

  • wordcloud.WordCloud()代表一个文本对应的词云
  • 可以根据文本中词语出现的频率等参数绘制词云
  • 绘制词云的形状、尺寸和颜色都可以设定

wordcloud库常规方法

w = wordcloud.WordCloud()
  • 以WordCloud对象为基础
  • 配置参数、加载文本、输出文件

方法

描述

w.generate(txt)

向WordCloud对象w中加载文本txt,w.generate("Python and WordCloud")

w.to_file(filename)

将词云输出为图像文件,.png或.jpg,w.to_file("outfile.png")

w.fit_words(frequencies)

根据词频生成词云

w.generate_from_text(text)

根据文本生成词云

process_text(text)

将长文本分词并去除屏蔽词(此处指英语,使用上面的 fit_words(frequencies)

recolor([random_state, color_func, colormap])

对现有输出重新着色。重新上色会比重新生成整个词云快很多。

to_array()

转化为 numpy array

  • 步骤1:配置对象参数
  • 步骤2:加载词云文本
  • 步骤3:输出词云文件

配置对象参数

w = 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

指定词云图片的背景颜色,默认为黑色

prefer_horizontal : float (default=0.90)

词语水平方向排版出现的频率,默认 0.9 (所以词语垂直方向排版出现频率为 0.1 )

scale : float (default=1)

按照比例进行放大画布,如设置为1.5,则长和宽都是原来画布的1.5倍。

stopwords : set of strings or None

设置需要屏蔽的词,如果为空,则使用内置的STOPWORDS

mode : string (default=”RGB”)

当参数为“RGBA”并且background_color不为空时,背景为透明。

relative_scaling : float (default=.5)

词频和字体大小的关联性

color_func : callable, default=None

生成新颜色的函数,如果为空,则使用 self.color_func

regexp : string or None (optional)

使用正则表达式分隔输入的文本

collocations : bool, default=True

是否包括两个词的搭配

colormap : string or matplotlib colormap, default=”viridis”

给每个单词随机分配颜色,若指定color_func,则忽略该方法。

生成新闻前十个关键词的词云代码

新闻原文链接

import jieba
import re
from collections import Counter
cut_words=""
for line in open('text',encoding='utf-8'):
    line.strip('\n')
    line = re.sub("[A-Za-z0-9\'\:\·\—\,\。\“ \”\n\u3000\?\、\'*\',\']", "", line)
    seg_list=jieba.cut(line,cut_all=False)
    cut_words+=(" ".join(seg_list))
all_words=cut_words.split()
# print(all_words)
c=Counter()
for x in all_words:
    if len(x)>1 and x != '\r\n':
        c[x] += 1

print('\n词频统计结果:')
dict={}
for (k,v) in c.most_common(10):# 输出词频最高的前10个词
    dict[k]=v
    print("%s:%d"%(k,v))

keyList,valueList = [],[]
for k,v in dict.items():
    keyList.append(k)
    valueList.append(v)
print(keyList,valueList)
print(str(keyList).replace("'", ""))
import matplotlib.pyplot as plt  #导入画图包
from wordcloud import WordCloud  #导入wordcloud api
wordcloud = WordCloud(font_path='msyh.ttc', width=800, height=600, mode='RGBA', background_color=None,).generate(text = str(keyList).replace("'", ""))  #利用text生成词云

#显示词云
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()

# 保存到文件
wordcloud.to_file('wordcloud.png')

效果如下

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 深度有趣 | 03 高端又一般的词云

    以《西游记》为例,可以看到结果中会出现各种双字、三字和四字等,但很多并不是合理的词语

    张宏伦
  • 爬虫(104)教你词云分析拉勾网数百个职位招聘详

    昨天我们分析了某 girl 的 QQ 空间,之后想想还是不过瘾啊,感觉还可以深度挖掘词云这个库,于是在网上找了一个实际例子又来波

    公众号---人生代码
  • 拿来就用能的Python词云图代码|wordcloud生成词云详解

    词云也叫文字云,是一种可视化的结果呈现,常用在爬虫数据分析中,原理就是统计文本中高频出现的词,过滤掉某些干扰词,将结果生成一张图片,直观的获取数据的重点信息。今...

    吾非同
  • Python 词云生成

    https://www.lfd.uci.edu/~gohlke/pythonlibs/

    arcticfox
  • WordCloud生成卡卡西忍术词云

    本想果断的说,卡卡西是火影里面最帅的人物。但是出于对大家的尊重,我把这句话改成:“卡卡西是动漫界最帅的人物”,不接受任何反驳。

    ZackSock
  • python抓取数据构建词云

    词云图,也叫文字云,是对文本中出现频率较高的“关键词”予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨。

    周小董
  • Python基于jieba, wordcloud库生成中文词云

    砸漏
  • WordCloud 中英文词云图绘制,看这一篇就够了

    摘要: 当我们手中有一篇文档,比如书籍、小说、电影剧本,若想快速了解其主要内容是什么,则可以采用绘制 WordCloud 词云图,显示主要的关键词(高频词)这种...

    数据森麟
  • WordCloud 中英文词云图绘制,看这一篇就够了

    摘要: 当我们手中有一篇文档,比如书籍、小说、电影剧本,若想快速了解其主要内容是什么,则可以采用绘制 WordCloud 词云图,显示主要的关键词(高频词)这种...

    小小詹同学
  • 学习使用Jieba1.Jieba2. 特点3.功能4.安装5.使用6.其他中文分词工具

    1.Jieba 相信大多数知道NLP的人都知道什么是Jieba,但对于像我这样的新手而言,也仅限于知道而已,并没有学习过它,使用过它,打算用几天的时间来记录自己...

    JasonhavenDai
  • 10行Python代码的词云

    词云又叫文字云,是对文本数据中出现频率较高的“关键词”在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思。

    半吊子全栈工匠
  • WordCloud 中英文词云图绘制,看这一篇就够了

    摘要: 当我们手中有一篇文档,比如书籍、小说、电影剧本,若想快速了解其主要内容是什么,则可以采用绘制 WordCloud 词云图,显示主要的关键词(高频词)这种...

    sergiojune
  • 词云图源代码

    #**使用“结巴”分词库进行文本分词,再结合“词云图”库,用指定的图片作为蒙版,分词出的关键字进行填充。**#**#

    用户6184845
  • 新闻联播也可以拿来做数据分析?

    在Tushare Pro数据开放平台上,最近上线了近10年CCTV新闻联播文本数据,以及各大财经网站的即时资讯文本。

    龙哥
  • 手把手教你几种生成词云的方式

    在数据可视化方面,词云一直是一种视觉冲击力很强的方式。对输入的一段文字进行语义分割,得到不同频度的词汇,然后以正比于词频的字体大小无规则的集中显示高频词,简洁直...

    1480
  • 赘婿词云图制作

    之前的文章我们已经介绍了如何使用wordcloud库制作中英文词云图,并介绍了中英文停用词的使用方法,介绍了如何美化词云图,例如换字体背景颜色,背景换成图片等,...

    罗罗攀
  • 词云图的几种制作方法评测,你pick哪款

    大家好,不知道大家会在什么场合使用词云图,对我来说词云图的优点除了它可以展示大量文本数据。从而让读者快速抓住重点,更重要的是词云图好看啊

    刘早起
  • Python实现Wordcloud生成词云图的示例

    wordcloud是Python扩展库中一种将词语用图片表达出来的一种形式,通过词云生成的图片,我们可以更加直观的看出某篇文章的故事梗概。

    砸漏
  • 十分钟视频,手把手教你用Python撒情人节狗粮的正确姿势

    大数据文摘

扫码关注云+社区

领取腾讯云代金券