kumo
hello,各位,大年初二,给大家拜年了!
今天给大家介绍一下,使用java生成词云的方法和框架——KUMO(来自github),KUMO是一款使用java编写,应用于词频分析,词云生成的开源技术。不过应用不算广泛,毕竟现在Python生成词云wordcloud太方便了,KUMO的出现方便了更擅长使用java的同学。那好,下面做简单介绍:
1.准备词语文本:实例如下
您可能会问,这么多词语哪里去找?如果你看了我的上一篇博文2018 02 11 告别选择困难症——webmagic爬虫爬取拉勾网职位信息,那么你就会找到答案。
2.引入KUMO的maven ID(当然了,你一定要建maven项目,这里推荐大家使用IDEA编译器)
<dependency>
<groupId>com.kennycason</groupId>
<artifactId>kumo-core</artifactId>
<version>1.13</version>
</dependency>
<dependency>
<groupId>com.kennycason</groupId>
<artifactId>kumo-tokenizers</artifactId>
<version>1.12</version>
</dependency>
3.调用接口,生成词云图片:
//建立词频分析器,设置词频,以及词语最短长度,此处的参数配置视情况而定即可
FrequencyAnalyzer frequencyAnalyzer = new FrequencyAnalyzer();
frequencyAnalyzer.setWordFrequenciesToReturn(600);
frequencyAnalyzer.setMinWordLength(2);
//引入中文解析器
frequencyAnalyzer.setWordTokenizer(new ChineseWordTokenizer());
//指定文本文件路径,生成词频集合
final List<WordFrequency> wordFrequencyList = frequencyAnalyzer.load("E:\\爬虫/wordcloud.txt");
//设置图片分辨率
Dimension dimension = new Dimension(1920,1080);
//此处的设置采用内置常量即可,生成词云对象
WordCloud wordCloud = new WordCloud(dimension,CollisionMode.PIXEL_PERFECT);
//设置边界及字体
wordCloud.setPadding(2);
java.awt.Font font = new java.awt.Font("STSong-Light", 2, 20);
//设置词云显示的三种颜色,越靠前设置表示词频越高的词语的颜色
wordCloud.setcolorpalette(new LinearGradientColorPalette(Color.RED, Color.BLUE, Color.GREEN, 30, 30));
wordCloud.setKumoFont(new KumoFont(font));
//设置背景色
wordCloud.setbackgroundcolor(new Color(255,255,255));
//设置背景图片
//wordCloud.setBackground(new PixelBoundryBackground("E:\\爬虫/Google.jpg"));
//设置背景图层为圆形
wordCloud.setBackground(new CircleBackground(255));
wordCloud.setFontScalar(new SqrtFontScalar(12, 45));
//生成词云
wordCloud.build(wordFrequencyList);
wordCloud.writeToFile("E:\\爬虫/wy.png");
此处也仅仅是进行了简单的配置,简单生成圆形的词云,如果大家感兴趣,可以深度研究源码。
4.效果展示:
初级效果,不过已经满足本人需求。
_____________________________________________________________________________________________________________
2018 02 18 更新:(加大了文本词语数,同样生成圆形)
写在最后:
非常希望和大家进行交流探讨技术,也欢迎大家提出宝贵建议。大家有问题可以留言交流,一起学习。
QQ:3091485316
微信:wangye889905
也欢迎大家加入我创建的技术交流群,希望同大家共同进步:
qq:717633216
同时也欢迎大家关注我个人的微信公众平台,不定时为大家更新技术文章进行探讨,也会为大家推出相应福利。
微信公共平台:
相关阅读
工程师为消费类设备开发了这种语言,并使其与当时适度的CPU兼容时保持了简单性。从那时起,这种面向对象的语言已用于创建简单到
JavaScript主要作用是什么呢?学习编程的同学对JavaScript并不陌生,JavaScript是前端技术中非常重要的内容,是网站搭建必不可少的
java.lang.UnsupportedClassVersionError
截图: 错误日志: Exception in thr
学了一段时间Java了,但是还是很菜,看到反射这一节的时候,就有点厌烦,看不下去了,过了一段时间后我又翻了回来,因为要学习后面的,所以反射
Java 混淆器就是给.class加密以防止反编译的工具 开源的 RetroGuard http://www.retrologic.com/ IBM的 JAX