程序员的浪漫--词云kumo

近期在找工作,再不是盲目裸辞的年纪。作为一个病不起死不起的90's,现在各大招聘网站上扫一圈,确认下行情。

就在浏览招聘网站的时候,发现林林总总的信息太难筛选,有什么办法能帮着做一下整理呢。很顺利成长的想到了写一个爬虫。关于如何写一个爬虫程序,可以参考本人之前写过的

webmagic是个神奇的爬虫(一)--如何创建webmagic项目

webmagic是个神奇的爬虫(二)-- webmagic爬取流程细讲

webmagic是个神奇的爬虫【三】—— 使用selenium模拟登陆

这几篇文章。

这下好了,岗位信息总算是有了,但还是感觉看起来不够直观,也不够酷炫。又想到了之前一直听说过但是没用过的词云功能,这次正好探索一下。

说干就干,由于是基于java开发,百度一阵之后决定使用kumo词云依赖进行开发。

以下是pom依赖

        <dependency>
            <groupId>com.kennycason</groupId>
            <artifactId>kumo-core</artifactId>
            <version>1.22</version>
        </dependency>

        <dependency>
            <groupId>com.kennycason</groupId>
            <artifactId>kumo-tokenizers</artifactId>
            <version>1.22</version>
        </dependency>

再然后就是参考了官方的例子和网上前人的教程,简单写了一个词云生成的程序

import com.kennycason.kumo.CollisionMode;
import com.kennycason.kumo.WordCloud;
import com.kennycason.kumo.WordFrequency;
import com.kennycason.kumo.bg.CircleBackground;
import com.kennycason.kumo.font.KumoFont;
import com.kennycason.kumo.font.scale.LinearFontScalar;
import com.kennycason.kumo.nlp.FrequencyAnalyzer;
import com.kennycason.kumo.nlp.tokenizers.ChineseWordTokenizer;
import com.kennycason.kumo.palette.LinearGradientColorPalette;

import java.awt.*;
import java.io.IOException;
import java.util.List;


public class WordCloudTest {
    public static void main(String[] args) throws IOException {
        //建立词频分析器,设置词频,以及词语最短长度,此处的参数配置视情况而定即可
        FrequencyAnalyzer frequencyAnalyzer = new FrequencyAnalyzer();
        frequencyAnalyzer.setWordFrequenciesToReturn(600);
        frequencyAnalyzer.setMinWordLength(2);
        //引入中文解析器
        frequencyAnalyzer.setWordTokenizer(new ChineseWordTokenizer());
        final List<WordFrequency> wordFrequencies = frequencyAnalyzer.load("D:\\job.txt");
        Dimension dimension = new Dimension(1920, 1080);
        WordCloud wordCloud = new WordCloud(dimension, CollisionMode.RECTANGLE);
        wordCloud.setPadding(0);
        java.awt.Font font = new java.awt.Font("STSong-Light", 2, 40);
        wordCloud.setBackgroundColor(new Color(255, 255, 255));
        wordCloud.setKumoFont(new KumoFont(font));
//        wordCloud.setBackground(new RectangleBackground(dimension));
        wordCloud.setBackground(new CircleBackground(255));
//        wordCloud.setBackground(new PixelBoundryBackground("D:\\lufei.jpg"));
        wordCloud.setColorPalette(new LinearGradientColorPalette(Color.RED, Color.BLUE, Color.GREEN, 30, 30));
        wordCloud.setFontScalar(new LinearFontScalar(10, 40));
        wordCloud.build(wordFrequencies);
        wordCloud.writeToFile("D:\\job.png");
    }
}

由于刚刚接触,kumo的一些功能还没有具体研究,包括自定义背景图片等功能还有待探索。下面是词云生成的效果词云

喜欢的同学还请点个赞~

发布了83 篇原创文章 · 获赞 58 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/qixinbruce/article/details/104076338