如何才能自己做词云图

电子说

1.3w人已加入

描述

 

 

所谓词云图,又称文字云,是通过对一个或多个关键词进行重复的、字体大小颜色不一的、不规则的排列,使其看上去类似于某种形状的图片,是对文本中出现频率较高的“关键词”予以视觉化的展现。

词云图能过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨。

关键词云图生成器作为生成云图的一种工具,简化了制作过程。目前国内外有很多关键词云图在线生成器,普遍按月或按年收费,在付费时候尽量选择可靠性强的。小编之前就遇到过付费后,没多久网站就消失不见了。

那么如何才能自己来做词云图呢?有几种常见方法

1、使用WordArt   WordArt是国外网站,支持自定义字体、词云形状、颜色等,做出来的词云图酷炫、精美,但访问时响应会比较缓慢。 1.1 登录网站WordArt.com 1.2 点击Words-Import words导入事先准备好的关键词与其对应词频,或是直接在对话框中输入相应关键词。同时在频数,颜色,角度,字体中进行设计,以实现预设效果。 JAVA 说明:

Fonts:字体设置。该工具默认字体为英文,如果词云内容为英文可以使用素材提供的字体,而涉及到中文内容时我们需要选择自行添加字体或是选择素材库中的Noto Sans S Chinese(可以识别部分中文)。

Shapes:设计词云的形状。可以选择提供的素材库中的形状也可以选择Add Image/Add Text来自定义形状。这里选择输入数字“2020”并在选项卡中设计斜体、轮廓、字体、背景以及字体颜色,设计完成后单击Add将形状添加进来。

Layout:内容布局。在该选项卡中,可以更改设计文字方向和布局排列方式,该工具提供了许多现成的组合方案,只需按需加以勾选即可。同时,在Words amount ,Density中也可以对填充内容进行设计。

Style:词云设计,主要涉及关键词具体内容的编辑设计。通过参数调整,对背景以及底色进行编辑修改。

1.3 生成词云:单击Visualize,即可生成词云图并预览效果。 1.4 导出图片:点击DOWNLOAD (选择图片格式)即可下载词云图。 JAVA   2、借助开源软件   word-cloud是一款为 java 设计的云图生成工具。目前该项目开源,地址在https://github.com/houbb/word-cloud

特性

极简 api,一行代码搞定一切

支持自定义云图背景

支持中英文分词,默认对用户透明

支持停顿词过滤,默认对用户透明

支持各种用户自定义配置

Maven引入


com.github.houbb
word-cloud
1.2.2
使用
WordCloudHelper.wordCloud("该作讲述的是一个名为德特茅斯的衰落小镇下掩埋着一个古老的废弃王国,名叫圣巢。这个王国被瘟疫所侵蚀而废弃,废弃的原因则是因为名为辐光的光之古神,她可以通过思想来传播瘟疫,被瘟疫侵蚀的虫子都会被本能所支配,失去心智。
" +
"这个王国的主人——苍白之王,自然不会坐视不管,他在圣巢范围之下的深渊,利用另一种远古力量“虚空”可以压制光明的特性,制造了容器一族。其中一位被选中的容器用来封印瘟疫,并被命名为空洞骑士。为了封印的稳固,白王寻找了三个守梦人来进一步巩固封印,三位守梦人的名称分别为守望者 - 卢瑞恩,导师 - 莫诺蒙,野兽 - 赫拉。但之后苍白之王不知去向,不完美的容器的力量的也变得逐渐虚弱,最终被辐光控制。主角就要穿过圣巢的各地,在安息之地中,我们受到曾经辐光的信徒和眷族——飞蛾族唯一留下的族人的帮助,获得了和辐光力量同源的梦之武器——梦之钉。梦之钉可以读取生物内心的想法,并可以打破守梦人的保护,进入到其梦境之中杀死守梦人。杀死了三位守梦人并解开封印后,可选的结局有到达十字路里的黑卵神殿打败空洞骑士或去到在“寻神者”更新中新加入的地点“神居”并挑战圣巢万神殿。");
添加背景
//以鲸鱼的背景,可以让文字以图像的形式展现:
String imagePath = "backgrounds\whale_small.png";
WordCloudHelper.wordCloud(text, "out_bg.png", imagePath);
效果如下 JAVA3、使用python工具   使用Python库jieba,jieba是一个非常好用的中文工具,是以分词起家的,但是功能比分词要强大很多。 JAVA jieba分词有三种模式: JAVA jieba.cut返回的结构都是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语(unicode)。

 

jieba.cut 方法接受三个输入参数:

需要分词的字符串

cut_all 参数用来控制是否采用全模式,一般情况下,cut_all为False

HMM 参数用来控制是否使用 HMM 模型

示例: 使用“Star.jpg”作为模板图片和“myword.txt”文本制作词云图 Star.jpg

 

myword.txt

详细代码

###导入库
# 导入wordcloud词云制作第三方库,并导入WordCloud.ImageColorGenerator两个模块 from wordcloud import WordCloud.imageColorGenerator


# 导入imageio库
import imageio


# 导入jieba库
import jieba


### 图片处理
# 用imageio库中的imread函数读取本地图片
testmg = imageio.imread("Star.jpg")


# 调用 wordcloud库中的ImageColorGenerator函数
image_color = ImageColorGenerator(testimg)


# 给WordCloud函数传入参数设置图片相关属性
test = WordCloud(mask=testimg,  #将testng的值赋值给mask用作遮罩图
width=500,  #输出图片宽度为500px
height=500,  #输出图片高度为500px
background_color="white",  #输出图片背景颜色为白色
font-path="msyh.ttc"   #字体路径为微软雅黑
scale=15)  #画布放大比例为15


### 文本处理
# 引用外部文件,并用utf-8的编码方式
txt = open("myword.txt",encoding="utf-8").read()


# 调用词云对象test的generate方法,导入文本
# 使用jieba分词的精确模式为文本进行分词
test = test.recolor(color_func=image_color)


### 输出处理
# 将生成的词云保存为result.png图片文件,保存到当前文件夹中
test.to_file("result.png")
效果图

 

JAVA

  词云图不仅能用来突出关键词,减少信息冗余,还能用于用户图像分析,快来试试吧。  

      审核编辑:彭静
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分