Java生成词云
今天给大家介绍一下,使用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.效果展示:
初级效果,不过已经满足本人需求。