java 词云推荐(KUMO)

今天给大家介绍一下,使用 java 生成词云的方法和框架——KUMO(来自 github),KUMO 是一款使用 java 编写,应用于词频分析,词云生成的开源技术。不过应用不算广泛,毕竟现在 python 生成词云 wordcloud 太方便了,KUMO 的出现方便了更擅长使用 java 的同学。那好,下面做简单介绍:

1. 准备词语文本:实例如下

null

您可能会问,这么多词语哪里去找?如果你看了我的上一篇博文 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. 效果展示:
null