图云的制作

图云的制作

传统方式的图云制作非常麻烦,需要广泛的技术支持,这里借用java中的Kumo
GitHub链接戳这里
码云链接戳这里

第一步引入依赖

<dependency>
  <groupId>com.kennycason</groupId>
  <artifactId>kumo-core</artifactId>
  <version>1.17</version>
</dependency>
<!-- 下面tokenizers是为了中文分词引入 -->
<dependency>
  <groupId>com.kennycason</groupId>
  <artifactId>kumo-tokenizers</artifactId>
  <version>1.17</version>
</dependency>

引用工具类WordCloudUtil

public class WordCloudUtil {

  /**
   * 生成词云
   *
   * @param artistId 歌单id
   * @param texts 文本
   */
  public static void generate(String artistId, List<String> texts) {

    FrequencyAnalyzer frequencyAnalyzer = new FrequencyAnalyzer();
    //设置返回的词数
    frequencyAnalyzer.setWordFrequenciesToReturn(500);
    //设置返回的词语最小出现频次
    frequencyAnalyzer.setMinWordLength(4);

    //引入中文解析器
    frequencyAnalyzer.setWordTokenizer(new ChineseWordTokenizer());
    //输入文章数据,进行分词
    final List<WordFrequency> wordFrequencyList = frequencyAnalyzer.load(texts);
    //设置图片分辨率大小
    Dimension dimension = new Dimension(600, 600);
    //此处的设置采用内置常量即可,生成词云对象
    WordCloud wordCloud = new WordCloud(dimension, CollisionMode.PIXEL_PERFECT);
    //设置边界及字体
    wordCloud.setPadding(2);
    // 设置字体,字体必须支持中文,不能随便改
    wordCloud.setKumoFont(new KumoFont("阿里巴巴普惠体 Light", FontWeight.PLAIN));
    //设置词云显示的三种颜色,越靠前设置表示词频越高的词语的颜色
    wordCloud.setColorPalette(
        new ColorPalette(new Color(0x4055F1), new Color(0x408DF1), new Color(0x40AAF1),
            new Color(0x40C5F1), new Color(0x40D3F1), new Color(0xFFFFFF)));
    wordCloud.setFontScalar(new SqrtFontScalar(10, 70));
    //设置背景图层为圆形
    wordCloud.setBackground(new CircleBackground(300));
    //生成词云
    wordCloud.build(wordFrequencyList);
    //输出到图片文件,用当前的毫秒数作为文件名
    Long milliSecond = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
    //输出到图片文件
    wordCloud.writeToFile("wordCloud-" + artistId + ".png");
  }
}

调用工具类生成词云

WordCloudUtil.generate(artistId, contents);

注:本例是生成歌曲评论的词云,artistId是歌单的Id,contentList<String>集合,每个元素都是一个条评论,执行成功会在工程目录下生成wordCloud-歌单Id.png的图片。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值