如何實現一款好用的雲圖(word-cloud)生成工具?

老馬嘯西風發表於2021-07-06

創作背景

可以隨時生成一副很酷的雲圖,一直是個人的夢想。

很久以前,寫過一個簡單版本:houbb.github.io/tools/wordC…

效果如下:

在這裡插入圖片描述

不過存在一些小問題:

  1. 無法自動分詞

  2. 無法根據詞頻設定字型大小

於是自己在 github 上逛了一圈,發現了 kumo 這一款開源工具, 入門體驗發現要寫 10 多行程式碼才能實現一個最基本的雲圖。

這很不優雅,於是決定基於 kumo 實現一個更加易用的版本。

word-cloud

word-cloud 是一款為 java 設計的雲圖生成工具。

特性

  • 極簡 api,一行程式碼搞定一切

  • 支援自定義雲圖背景

  • 支援中英文分詞,預設對使用者透明

  • 支援停頓詞過濾,預設對使用者透明

  • 支援各種使用者自定義配置

變更日誌

快速開始

maven 引入

<dependency>
     <groupId>com.github.houbb</groupId>
     <artifactId>word-cloud</artifactId>
     <version>1.2.2</version>
</dependency>
複製程式碼

使用

WordCloudHelper.wordCloud("該作講述的是一個名為德特茅斯的衰落小鎮下掩埋著一個古老的廢棄王國,名叫聖巢。這個王國被瘟疫所侵蝕而廢棄,廢棄的原因則是因為名為輻光的光之古神,她可以通過思想來傳播瘟疫,被瘟疫侵蝕的蟲子都會被本能所支配,失去心智。\n" +
                "這個王國的主人——蒼白之王,自然不會坐視不管,他在聖巢範圍之下的深淵,利用另一種遠古力量“虛空”可以壓制光明的特性,製造了容器一族。其中一位被選中的容器用來封印瘟疫,並被命名為空洞騎士。為了封印的穩固,白王尋找了三個守夢人來進一步鞏固封印,三位守夢人的名稱分別為守望者 - 盧瑞恩,導師 - 莫諾蒙,野獸 - 赫拉。但之後蒼白之王不知去向,不完美的容器的力量的也變得逐漸虛弱,最終被輻光控制。主角就要穿過聖巢的各地,在安息之地中,我們受到曾經輻光的信徒和眷族——飛蛾族唯一留下的族人的幫助,獲得了和輻光力量同源的夢之武器——夢之釘。夢之釘可以讀取生物內心的想法,並可以打破守夢人的保護,進入到其夢境之中殺死守夢人。殺死了三位守夢人並解開封印後,可選的結局有到達十字路里的黑卵神殿打敗空洞騎士或去到在“尋神者”更新中新加入的地點“神居”並挑戰聖巢萬神殿。");
複製程式碼

效果:

在這裡插入圖片描述

支援背景

我們以鯨魚的背景,可以讓文字以影像的形式展現:

String imagePath = "backgrounds\\whale_small.png";
WordCloudHelper.wordCloud(text, "out_bg.png", imagePath);
複製程式碼

效果如下:

在這裡插入圖片描述

Road-Map

  • 預設的形狀,圖片。

  • 引入圖片背景

  • 預設的字型優化

  • image 居中

開源

本來是抱著自娛自樂的目的寫了這個小工具,但是感覺還是應該把這個應用開源出來。

因為沒有 kumo 的開源,也就沒有這一款工具。

開源地址:github.com/houbb/word-…

如果喜歡,不妨給個 star 鼓勵一下作者。

希望和你一起,見證最好用的雲圖工具的成長。

相關文章