Java实现快速生成词云图的示例代码

 更新时间:2023年02月19日 14:22:55   作者:我要飞的更高  
词云(Word Cloud),又称文字云、标签云(Tag Cloud)、关键词云(Keyword Cloud),是对文本信息中一定数量的关键词出现的频率高低情况的一种可视化展现方式。本文将用Java代码实现快速生成词云图,需要的可以参考一下

“词云”一词最早是由美国西北大学新闻学副教授、新媒体专业主任里奇戈登(Rich Gordon)提出的。词云(Word Cloud),又称文字云、标签云(Tag Cloud)、关键词云(Keyword Cloud),是对文本信息中一定数量的关键词出现的频率高低情况的一种可视化展现方式,它一般是由文本数据中提取的词汇组成某些彩色的图形。

在网络上查了很多资料,如果用java原生的方式进行代码开发还是非常复杂的,需要一定的时间才能开发出来,费时费力,效果还不一定好。为此百度了大量资料,发现一个平台“昂焱数据”(www.ayshuju.com),该平台上的“代码工具”一栏有Java版的词云生成代码工具,简单调用一下方法就可以生成词云图,这里将该代码工具的使用步骤做一下记录。

第一步:下载并安装jar到本地maven库

登录该网站,在“代码工具”一栏找到“关键词词频与词云图生成”代码工具,代码工具如下图所示:

下载该代码工具并解压,双击“”执行,将提示的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="全面推进乡村振兴是新时代建设农业强国的重要任务。要把人力投入、物力配置、财力保障都转移到乡村振兴上来,全面推进产业、人才、文化、生态、组织“五个振兴”。要认真贯彻落实中央一号文件部署要求,坚持农业农村优先发展,坚持城乡融合发展,强化科技创新和制度创新,坚决守牢确保粮食安全、防止规模性返贫等底线,扎实推进乡村发展、乡村建设、乡村治理等重点工作。要抓紧抓好粮食和重要农产品稳产保供,加强农业基础设施建设,强化农业科技和装备支撑,巩固拓展脱贫攻坚成果,推动乡村产业高质量发展,拓宽农民增收致富渠道,扎实推进宜居宜业和美乡村建设,健全党组织领导的乡村治理体系,强化政策保障和体制机制创新。";
        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);
        // 调节词云的稀疏程度,越高越稀疏
        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));
        // 设置偏转角,角度为0时,字体都是水平的
        wordCloudConfig.setAngleGenerator(new AngleGenerator(0, 0, 2));
        WordCloudUtil.getWordCloudPath(content,size,wordCloudConfig,outPath);
    }
}

运行后,会在“D:/workplace/test”下生成一张“wordCloud.png”图片,具体效果如下:

到此这篇关于Java实现快速生成词云图的示例代码的文章就介绍到这了,更多相关Java生成词云图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java多线程执行处理业务时间太久解决方法代码示例

    Java多线程执行处理业务时间太久解决方法代码示例

    这篇文章主要介绍了Java多线程执行处理业务时间太久解决方法代码示例的相关资料,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • java调用python代码的两种实现方式:Runtime.exec()和Jython

    java调用python代码的两种实现方式:Runtime.exec()和Jython

    在Java中调用Python代码有多种方法,包括使用Runtime.exec()和第三方库如Jython,Runtime.exec()通过系统命令执行Python脚本,适用于简单的调用场景,Jython则是一个Python的Java实现,允许在Java中直接运行Python代码,适用于更深层次的集成需求
    2025-01-01
  • 解析java基本数据类型传递与引用传递区别

    解析java基本数据类型传递与引用传递区别

    这篇文章主要介绍了java基本数据类型传递与引用传递区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • 四种引用类型在JAVA Springboot中的使用详解

    四种引用类型在JAVA Springboot中的使用详解

    这篇文章主要介绍了springboot的四种引用类型,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • spring的UnexpectedRollbackException事务嵌套示例解析

    spring的UnexpectedRollbackException事务嵌套示例解析

    这篇文章主要为大家介绍了spring的UnexpectedRollbackException事务嵌套示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • 如何在springboot中使用定时任务

    如何在springboot中使用定时任务

    这篇文章主要介绍了如何在springboot中使用定时任务,帮助大家更好的理解和使用springboot框架,感兴趣的朋友可以了解下
    2020-12-12
  • 浅谈mybatis中SQL语句给boolean类型赋值问题

    浅谈mybatis中SQL语句给boolean类型赋值问题

    这篇文章主要介绍了浅谈mybatis中SQL语句给boolean类型赋值问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • MyBatis-Plus updateById更新不了空字符串或null的解决方法

    MyBatis-Plus updateById更新不了空字符串或null的解决方法

    本文主要介绍了MyBatis-Plus updateById更新不了空字符串或null的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Java中ReUtil正则表达式工具库的使用

    Java中ReUtil正则表达式工具库的使用

    ReUtil是Hutool库中的正则表达式工具类,提供了多种常用正则表达式操作方法,下面就来介绍一下ReUtil的使用,具有一定的参考价值,感兴趣的可以了解一下
    2025-02-02
  • Java数组(Array)最全汇总(下篇)

    Java数组(Array)最全汇总(下篇)

    这篇文章主要介绍了Java数组(Array)最全汇总(下篇),本文章内容详细,通过案例可以更好的理解数组的相关知识,本模块分为了三部分,本次为下篇,需要的朋友可以参考下
    2023-01-01

最新评论