Java實現(xiàn)快速生成詞云圖的示例代碼
“詞云”一詞最早是由美國西北大學新聞學副教授、新媒體專業(yè)主任里奇戈登(Rich Gordon)提出的。詞云(Word Cloud),又稱文字云、標簽云(Tag Cloud)、關(guān)鍵詞云(Keyword Cloud),是對文本信息中一定數(shù)量的關(guān)鍵詞出現(xiàn)的頻率高低情況的一種可視化展現(xiàn)方式,它一般是由文本數(shù)據(jù)中提取的詞匯組成某些彩色的圖形。
在網(wǎng)絡上查了很多資料,如果用java原生的方式進行代碼開發(fā)還是非常復雜的,需要一定的時間才能開發(fā)出來,費時費力,效果還不一定好。為此百度了大量資料,發(fā)現(xiàn)一個平臺“昂焱數(shù)據(jù)”(www.ayshuju.com),該平臺上的“代碼工具”一欄有Java版的詞云生成代碼工具,簡單調(diào)用一下方法就可以生成詞云圖,這里將該代碼工具的使用步驟做一下記錄。
第一步:下載并安裝jar到本地maven庫
登錄該網(wǎng)站,在“代碼工具”一欄找到“關(guān)鍵詞詞頻與詞云圖生成”代碼工具,代碼工具如下圖所示:
下載該代碼工具并解壓,雙擊“”執(zhí)行,將提示的maven坐標粘貼到項目的pom文件中即可。
第二步:將該jar包的maven坐標粘貼到項目的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)村振興是新時代建設農(nóng)業(yè)強國的重要任務。要把人力投入、物力配置、財力保障都轉(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)村建設、鄉(xiāng)村治理等重點工作。要抓緊抓好糧食和重要農(nóng)產(chǎn)品穩(wěn)產(chǎn)保供,加強農(nóng)業(yè)基礎設施建設,強化農(nóng)業(yè)科技和裝備支撐,鞏固拓展脫貧攻堅成果,推動鄉(xiāng)村產(chǎn)業(yè)高質(zhì)量發(fā)展,拓寬農(nóng)民增收致富渠道,扎實推進宜居宜業(yè)和美鄉(xiāng)村建設,健全黨組織領導的鄉(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)); // 設置字體 wordCloudConfig.setKumoFont(new KumoFont(new Font("楷體", Font.BOLD, 9))); // 字號的大小范圍,最小是多少,最大是多少 wordCloudConfig.setFontScalar(new LinearFontScalar(9, 60)); // 顏色模板,不同頻率的顏色會不同 wordCloudConfig.setColorPalette(WordCloudEngine.buildRandomColorPalette(9)); // 設置偏轉(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)文章
一篇文章帶你搞定SpringBoot不重啟項目實現(xiàn)修改靜態(tài)資源
這篇文章主要介紹了一篇文章帶你搞定SpringBoot不重啟項目實現(xiàn)修改靜態(tài)資源,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09SpringBoot+MinIO實現(xiàn)對象存儲方式
這篇文章主要介紹了SpringBoot+MinIO實現(xiàn)對象存儲方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08SpringDataRedis入門和序列化方式解決內(nèi)存占用問題小結(jié)
spring-data-redis是spring-data模塊的一部分,專門用來支持在spring管理項目對redis的操作,這篇文章主要介紹了SpringDataRedis入門和序列化方式解決內(nèi)存占用問題,需要的朋友可以參考下2022-12-12SpringBoot監(jiān)聽Nacos動態(tài)修改日志級別的操作方法
線上系統(tǒng)的日志級別一般都是 INFO 級別,有時候需要查看 WARN 級別的日志,所以需要動態(tài)修改日志級別,微服務項目中使用 Nacos 作為注冊中心,我們可以監(jiān)聽 Nacos 配置,修改日志級別,這篇文章主要介紹了SpringBoot監(jiān)聽Nacos動態(tài)修改日志級別的操作方法,需要的朋友可以參考下2023-12-12springboot配置多數(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-09SpringBoot集成quartz實現(xiàn)定時任務詳解
最為常用定時任務框架是Quartz,并且Spring也集成了Quartz的框架,Quartz不僅支持單實例方式還支持分布式方式。本文主要介紹Quartz,基礎的Quartz的集成案例本,以及實現(xiàn)基于數(shù)據(jù)庫的分布式任務管理和控制job生命周期2022-08-08springboot項目mysql-connector-java默認版本如何查看
這篇文章主要介紹了springboot項目mysql-connector-java默認版本如何查看問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11