Java實(shí)現(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原生的方式進(jìn)行代碼開發(fā)還是非常復(fù)雜的,需要一定的時間才能開發(fā)出來,費(fèi)時費(fèi)力,效果還不一定好。為此百度了大量資料,發(fā)現(xiàn)一個平臺“昂焱數(shù)據(jù)”(www.ayshuju.com),該平臺上的“代碼工具”一欄有Java版的詞云生成代碼工具,簡單調(diào)用一下方法就可以生成詞云圖,這里將該代碼工具的使用步驟做一下記錄。
第一步:下載并安裝jar到本地maven庫
登錄該網(wǎng)站,在“代碼工具”一欄找到“關(guān)鍵詞詞頻與詞云圖生成”代碼工具,代碼工具如下圖所示:

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


第二步:將該jar包的maven坐標(biāo)粘貼到項(xiàng)目的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="全面推進(jìn)鄉(xiāng)村振興是新時代建設(shè)農(nóng)業(yè)強(qiáng)國的重要任務(wù)。要把人力投入、物力配置、財力保障都轉(zhuǎn)移到鄉(xiāng)村振興上來,全面推進(jìn)產(chǎn)業(yè)、人才、文化、生態(tài)、組織“五個振興”。要認(rèn)真貫徹落實(shí)中央一號文件部署要求,堅持農(nóng)業(yè)農(nóng)村優(yōu)先發(fā)展,堅持城鄉(xiāng)融合發(fā)展,強(qiáng)化科技創(chuàng)新和制度創(chuàng)新,堅決守牢確保糧食安全、防止規(guī)模性返貧等底線,扎實(shí)推進(jìn)鄉(xiāng)村發(fā)展、鄉(xiāng)村建設(shè)、鄉(xiāng)村治理等重點(diǎn)工作。要抓緊抓好糧食和重要農(nóng)產(chǎn)品穩(wěn)產(chǎn)保供,加強(qiáng)農(nóng)業(yè)基礎(chǔ)設(shè)施建設(shè),強(qiáng)化農(nóng)業(yè)科技和裝備支撐,鞏固拓展脫貧攻堅成果,推動鄉(xiāng)村產(chǎn)業(yè)高質(zhì)量發(fā)展,拓寬農(nóng)民增收致富渠道,扎實(shí)推進(jìn)宜居宜業(yè)和美鄉(xiāng)村建設(shè),健全黨組織領(lǐng)導(dǎo)的鄉(xiāng)村治理體系,強(qiáng)化政策保障和體制機(jī)制創(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);
}
}運(yùn)行后,會在“D:/workplace/test”下生成一張“wordCloud.png”圖片,具體效果如下:

到此這篇關(guān)于Java實(shí)現(xiàn)快速生成詞云圖的示例代碼的文章就介紹到這了,更多相關(guān)Java生成詞云圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一篇文章帶你搞定SpringBoot不重啟項(xiàng)目實(shí)現(xiàn)修改靜態(tài)資源
這篇文章主要介紹了一篇文章帶你搞定SpringBoot不重啟項(xiàng)目實(shí)現(xiàn)修改靜態(tài)資源,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
SpringBoot+MinIO實(shí)現(xiàn)對象存儲方式
這篇文章主要介紹了SpringBoot+MinIO實(shí)現(xiàn)對象存儲方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
SpringDataRedis入門和序列化方式解決內(nèi)存占用問題小結(jié)
spring-data-redis是spring-data模塊的一部分,專門用來支持在spring管理項(xiàng)目對redis的操作,這篇文章主要介紹了SpringDataRedis入門和序列化方式解決內(nèi)存占用問題,需要的朋友可以參考下2022-12-12
SpringBoot監(jiān)聽Nacos動態(tài)修改日志級別的操作方法
線上系統(tǒng)的日志級別一般都是 INFO 級別,有時候需要查看 WARN 級別的日志,所以需要動態(tài)修改日志級別,微服務(wù)項(xiàng)目中使用 Nacos 作為注冊中心,我們可以監(jiān)聽 Nacos 配置,修改日志級別,這篇文章主要介紹了SpringBoot監(jiān)聽Nacos動態(tài)修改日志級別的操作方法,需要的朋友可以參考下2023-12-12
springboot配置多數(shù)據(jù)源(靜態(tài)和動態(tài)數(shù)據(jù)源)
在開發(fā)過程中,很多時候都會有垮數(shù)據(jù)庫操作數(shù)據(jù)的情況,需要同時配置多套數(shù)據(jù)源,本文主要介紹了springboot配置多數(shù)據(jù)源(靜態(tài)和動態(tài)數(shù)據(jù)源),感興趣的可以了解一下2023-09-09
SpringBoot集成quartz實(shí)現(xiàn)定時任務(wù)詳解
最為常用定時任務(wù)框架是Quartz,并且Spring也集成了Quartz的框架,Quartz不僅支持單實(shí)例方式還支持分布式方式。本文主要介紹Quartz,基礎(chǔ)的Quartz的集成案例本,以及實(shí)現(xiàn)基于數(shù)據(jù)庫的分布式任務(wù)管理和控制job生命周期2022-08-08
springboot項(xiàng)目mysql-connector-java默認(rèn)版本如何查看
這篇文章主要介紹了springboot項(xiàng)目mysql-connector-java默認(rèn)版本如何查看問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11

