目录
第1关:词云的绘制
任务描述
本关任务:使用KUMO框架绘制一个简单的词云。
相关知识
KUMO是一款使用java编写,应用于词频分析,词云生成的开源技术。
为了完成本关任务,你需要掌握:1.什么是词云? 2.如何绘制词云。
词云
词云就是由词汇组成类似云的彩色图形,如下图:
如何绘制词云
绘制一个简单的词云总的下来只需5个主要操作:
创建词频分析器,设置词频,此处的参数配置视情况而定即可。
FrequencyAnalyzer frequencyAnalyzer = new FrequencyAnalyzer();
frequencyAnalyzer.setWordFrequenciesToReturn(200);
加载文本文件路径,生成词频集合。
List<WordFrequency> wordFrequencyList = frequencyAnalyzer.load("wordcloud.txt");
设置图片分辨率。
Dimension dimension = new Dimension(500,312);
生成词云对象,此处的设置采用内置常量即可。
WordCloud wordCloud = new WordCloud(dimension,CollisionMode.PIXEL_PERFECT);
生成词云并写入图片。
wordCloud.build(wordFrequencies);
wordCloud.writeToFile("wordcloud.png");
编程要求
在右侧编辑器Begin-End处补充代码,读取wordcloud.txt文件生成词云,要求图片分辨率为500 × 312,生成图片存放路径和名称为 imgs/wordcloud_img.png 。
效果如下:
代码
package com.showdata;
import java.awt.Dimension;
import java.io.IOException;
import java.util.List;
import com.kennycason.kumo.CollisionMode;
import com.kennycason.kumo.WordCloud;
import com.kennycason.kumo.WordFrequency;
import com.kennycason.kumo.nlp.FrequencyAnalyzer;
public class WordCloud_img {
public WordCloud get() throws IOException {
/********** Begin **********/
//1.为实例化词云做准备
FrequencyAnalyzer frequencyAnalyzer = new FrequencyAnalyzer();
frequencyAnalyzer.setWordFrequenciesToReturn(200);
List<WordFrequency> wordFrequencies = frequencyAnalyzer.load("wordcloud.txt");
Dimension dimension = new Dimension(500, 312);
//2.修改词云的实例化
WordCloud wordCloud = new WordCloud(dimension, CollisionMode.PIXEL_PERFECT);
//3.生成词云并写入图片
wordCloud.build(wordFrequencies);
wordCloud.writ