Java實(shí)現(xiàn)快速生成詞云圖的示例代碼
“詞云”一詞最早是由美國(guó)西北大學(xué)新聞學(xué)副教授、新媒體專業(yè)主任里奇戈登(Rich Gordon)提出的。詞云(Word Cloud),又稱文字云、標(biāo)簽云(Tag Cloud)、關(guān)鍵詞云(Keyword Cloud),是對(duì)文本信息中一定數(shù)量的關(guān)鍵詞出現(xiàn)的頻率高低情況的一種可視化展現(xiàn)方式,它一般是由文本數(shù)據(jù)中提取的詞匯組成某些彩色的圖形。
在網(wǎng)絡(luò)上查了很多資料,如果用java原生的方式進(jìn)行代碼開發(fā)還是非常復(fù)雜的,需要一定的時(shí)間才能開發(fā)出來,費(fèi)時(shí)費(fèi)力,效果還不一定好。為此百度了大量資料,發(fā)現(xiàn)一個(gè)平臺(tái)“昂焱數(shù)據(jù)”(www.ayshuju.com),該平臺(tái)上的“代碼工具”一欄有Java版的詞云生成代碼工具,簡(jiǎn)單調(diào)用一下方法就可以生成詞云圖,這里將該代碼工具的使用步驟做一下記錄。
第一步:下載并安裝jar到本地maven庫(kù)
登錄該網(wǎng)站,在“代碼工具”一欄找到“關(guān)鍵詞詞頻與詞云圖生成”代碼工具,代碼工具如下圖所示:
下載該代碼工具并解壓,雙擊“”執(zhí)行,將提示的maven坐標(biāo)粘貼到項(xiàng)目的pom文件中即可。
第二步:將該jar包的maven坐標(biāo)粘貼到項(xiàng)目的pom文件中
第三步:完整的測(cè)試代碼如下
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í)代建設(shè)農(nóng)業(yè)強(qiáng)國(guó)的重要任務(wù)。要把人力投入、物力配置、財(cái)力保障都轉(zhuǎn)移到鄉(xiāng)村振興上來,全面推進(jìn)產(chǎn)業(yè)、人才、文化、生態(tài)、組織“五個(gè)振興”。要認(rèn)真貫徹落實(shí)中央一號(hào)文件部署要求,堅(jiān)持農(nóng)業(yè)農(nóng)村優(yōu)先發(fā)展,堅(jiān)持城鄉(xiāng)融合發(fā)展,強(qiáng)化科技創(chuàng)新和制度創(chuàng)新,堅(jiān)決守牢確保糧食安全、防止規(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è)科技和裝備支撐,鞏固拓展脫貧攻堅(jiān)成果,推動(dòng)鄉(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))); // 字號(hào)的大小范圍,最小是多少,最大是多少 wordCloudConfig.setFontScalar(new LinearFontScalar(9, 60)); // 顏色模板,不同頻率的顏色會(huì)不同 wordCloudConfig.setColorPalette(WordCloudEngine.buildRandomColorPalette(9)); // 設(shè)置偏轉(zhuǎn)角,角度為0時(shí),字體都是水平的 wordCloudConfig.setAngleGenerator(new AngleGenerator(0, 0, 2)); WordCloudUtil.getWordCloudPath(content,size,wordCloudConfig,outPath); } }
運(yùn)行后,會(huì)在“D:/workplace/test”下生成一張“wordCloud.png”圖片,具體效果如下:
到此這篇關(guān)于Java實(shí)現(xiàn)快速生成詞云圖的示例代碼的文章就介紹到這了,更多相關(guān)Java生成詞云圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一篇文章帶你搞定SpringBoot不重啟項(xiàng)目實(shí)現(xiàn)修改靜態(tài)資源
這篇文章主要介紹了一篇文章帶你搞定SpringBoot不重啟項(xiàng)目實(shí)現(xiàn)修改靜態(tài)資源,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09SpringBoot+MinIO實(shí)現(xiàn)對(duì)象存儲(chǔ)方式
這篇文章主要介紹了SpringBoot+MinIO實(shí)現(xiàn)對(duì)象存儲(chǔ)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08SpringDataRedis入門和序列化方式解決內(nèi)存占用問題小結(jié)
spring-data-redis是spring-data模塊的一部分,專門用來支持在spring管理項(xiàng)目對(duì)redis的操作,這篇文章主要介紹了SpringDataRedis入門和序列化方式解決內(nèi)存占用問題,需要的朋友可以參考下2022-12-12SpringBoot監(jiān)聽Nacos動(dòng)態(tài)修改日志級(jí)別的操作方法
線上系統(tǒng)的日志級(jí)別一般都是 INFO 級(jí)別,有時(shí)候需要查看 WARN 級(jí)別的日志,所以需要?jiǎng)討B(tài)修改日志級(jí)別,微服務(wù)項(xiàng)目中使用 Nacos 作為注冊(cè)中心,我們可以監(jiān)聽 Nacos 配置,修改日志級(jí)別,這篇文章主要介紹了SpringBoot監(jiān)聽Nacos動(dòng)態(tài)修改日志級(jí)別的操作方法,需要的朋友可以參考下2023-12-12springboot配置多數(shù)據(jù)源(靜態(tài)和動(dòng)態(tài)數(shù)據(jù)源)
在開發(fā)過程中,很多時(shí)候都會(huì)有垮數(shù)據(jù)庫(kù)操作數(shù)據(jù)的情況,需要同時(shí)配置多套數(shù)據(jù)源,本文主要介紹了springboot配置多數(shù)據(jù)源(靜態(tài)和動(dòng)態(tài)數(shù)據(jù)源),感興趣的可以了解一下2023-09-09SpringBoot集成quartz實(shí)現(xiàn)定時(shí)任務(wù)詳解
最為常用定時(shí)任務(wù)框架是Quartz,并且Spring也集成了Quartz的框架,Quartz不僅支持單實(shí)例方式還支持分布式方式。本文主要介紹Quartz,基礎(chǔ)的Quartz的集成案例本,以及實(shí)現(xiàn)基于數(shù)據(jù)庫(kù)的分布式任務(wù)管理和控制job生命周期2022-08-08springboot項(xiàng)目mysql-connector-java默認(rèn)版本如何查看
這篇文章主要介紹了springboot項(xiàng)目mysql-connector-java默認(rèn)版本如何查看問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11