Java實現(xiàn)快速生成詞云圖的示例代碼
“詞云”一詞最早是由美國西北大學(xué)新聞學(xué)副教授、新媒體專業(yè)主任里奇戈登(Rich Gordon)提出的。詞云(Word Cloud),又稱文字云、標(biāo)簽云(Tag Cloud)、關(guān)鍵詞云(Keyword Cloud),是對文本信息中一定數(shù)量的關(guān)鍵詞出現(xiàn)的頻率高低情況的一種可視化展現(xiàn)方式,它一般是由文本數(shù)據(jù)中提取的詞匯組成某些彩色的圖形。
在網(wǎng)絡(luò)上查了很多資料,如果用java原生的方式進行代碼開發(fā)還是非常復(fù)雜的,需要一定的時間才能開發(fā)出來,費時費力,效果還不一定好。為此百度了大量資料,發(fā)現(xiàn)一個平臺“昂焱數(shù)據(jù)”(www.ayshuju.com),該平臺上的“代碼工具”一欄有Java版的詞云生成代碼工具,簡單調(diào)用一下方法就可以生成詞云圖,這里將該代碼工具的使用步驟做一下記錄。
第一步:下載并安裝jar到本地maven庫
登錄該網(wǎng)站,在“代碼工具”一欄找到“關(guān)鍵詞詞頻與詞云圖生成”代碼工具,代碼工具如下圖所示:

下載該代碼工具并解壓,雙擊“”執(zhí)行,將提示的maven坐標(biāo)粘貼到項目的pom文件中即可。


第二步:將該jar包的maven坐標(biāo)粘貼到項目的pom文件中

第三步:完整的測試代碼如下
package com.example.demo.test;
import com.angyan.tool.wordcloud.dto.WordCloudConfig;
import com.angyan.tool.wordcloud.util.WordCloudUtil;
import com.angyan.tool.wordcloud.wordcolud.WordCloudEngine;
import com.kennycason.kumo.CollisionMode;
import com.kennycason.kumo.bg.CircleBackground;
import com.kennycason.kumo.font.KumoFont;
import com.kennycason.kumo.font.scale.LinearFontScalar;
import com.kennycason.kumo.image.AngleGenerator;
import java.awt.*;
public class Test {
public static void main(String[] args) {
String content="全面推進鄉(xiāng)村振興是新時代建設(shè)農(nóng)業(yè)強國的重要任務(wù)。要把人力投入、物力配置、財力保障都轉(zhuǎn)移到鄉(xiāng)村振興上來,全面推進產(chǎn)業(yè)、人才、文化、生態(tài)、組織“五個振興”。要認真貫徹落實中央一號文件部署要求,堅持農(nóng)業(yè)農(nóng)村優(yōu)先發(fā)展,堅持城鄉(xiāng)融合發(fā)展,強化科技創(chuàng)新和制度創(chuàng)新,堅決守牢確保糧食安全、防止規(guī)模性返貧等底線,扎實推進鄉(xiāng)村發(fā)展、鄉(xiāng)村建設(shè)、鄉(xiāng)村治理等重點工作。要抓緊抓好糧食和重要農(nóng)產(chǎn)品穩(wěn)產(chǎn)保供,加強農(nóng)業(yè)基礎(chǔ)設(shè)施建設(shè),強化農(nóng)業(yè)科技和裝備支撐,鞏固拓展脫貧攻堅成果,推動鄉(xiāng)村產(chǎn)業(yè)高質(zhì)量發(fā)展,拓寬農(nóng)民增收致富渠道,扎實推進宜居宜業(yè)和美鄉(xiāng)村建設(shè),健全黨組織領(lǐng)導(dǎo)的鄉(xiāng)村治理體系,強化政策保障和體制機制創(chuàng)新。";
int size = 60;
String outPath="D:\\workplace\\test\\wordCloud.png";
// --詞云圖配置--
WordCloudConfig wordCloudConfig = new WordCloudConfig();
// 寬度(px像素)
wordCloudConfig.setWidth(300);
// 高度(px像素)
wordCloudConfig.setHeight(300);
// 碰撞模式
wordCloudConfig.setCollisionMode(CollisionMode.PIXEL_PERFECT);
// 調(diào)節(jié)詞云的稀疏程度,越高越稀疏
wordCloudConfig.setPadding(2);
// 背景顏色
wordCloudConfig.setBackgroundColor(new Color(0, 0, 0));
// 詞云形狀,如圓形,半徑為寬度的一半
wordCloudConfig.setBackground(new CircleBackground(150));
// 設(shè)置字體
wordCloudConfig.setKumoFont(new KumoFont(new Font("楷體", Font.BOLD, 9)));
// 字號的大小范圍,最小是多少,最大是多少
wordCloudConfig.setFontScalar(new LinearFontScalar(9, 60));
// 顏色模板,不同頻率的顏色會不同
wordCloudConfig.setColorPalette(WordCloudEngine.buildRandomColorPalette(9));
// 設(shè)置偏轉(zhuǎn)角,角度為0時,字體都是水平的
wordCloudConfig.setAngleGenerator(new AngleGenerator(0, 0, 2));
WordCloudUtil.getWordCloudPath(content,size,wordCloudConfig,outPath);
}
}運行后,會在“D:/workplace/test”下生成一張“wordCloud.png”圖片,具體效果如下:

到此這篇關(guān)于Java實現(xiàn)快速生成詞云圖的示例代碼的文章就介紹到這了,更多相關(guān)Java生成詞云圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java多線程執(zhí)行處理業(yè)務(wù)時間太久解決方法代碼示例
這篇文章主要介紹了Java多線程執(zhí)行處理業(yè)務(wù)時間太久解決方法代碼示例的相關(guān)資料,具有一定借鑒價值,需要的朋友可以參考下。2017-12-12
java調(diào)用python代碼的兩種實現(xiàn)方式:Runtime.exec()和Jython
在Java中調(diào)用Python代碼有多種方法,包括使用Runtime.exec()和第三方庫如Jython,Runtime.exec()通過系統(tǒng)命令執(zhí)行Python腳本,適用于簡單的調(diào)用場景,Jython則是一個Python的Java實現(xiàn),允許在Java中直接運行Python代碼,適用于更深層次的集成需求2025-01-01
解析java基本數(shù)據(jù)類型傳遞與引用傳遞區(qū)別
這篇文章主要介紹了java基本數(shù)據(jù)類型傳遞與引用傳遞區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
spring的UnexpectedRollbackException事務(wù)嵌套示例解析
這篇文章主要為大家介紹了spring的UnexpectedRollbackException事務(wù)嵌套示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09
MyBatis-Plus?updateById更新不了空字符串或null的解決方法
本文主要介紹了MyBatis-Plus?updateById更新不了空字符串或null的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03

