1. 程式人生 > >java詞雲推薦(KUMO)

java詞雲推薦(KUMO)

hello,各位,大年初二,給大家拜年了!

今天給大家介紹一下,使用java生成詞雲的方法和框架——KUMO(來自github),KUMO是一款使用java編寫,應用於詞頻分析,詞雲生成的開源技術。不過應用不算廣泛,畢竟現在python生成詞雲wordcloud太方便了,KUMO的出現方便了更擅長使用java的同學。那好,下面做簡單介紹:

1.準備詞語文字:例項如下

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
同時也歡迎大家關注我個人的微信公眾平臺,不定時為大家更新技術文章進行探討,也會為大家推出相應福利。

微信公共平臺:ITBird