java+vue实现词云生成+展示(kumo+echarts-wordcloud )

      好久没有写过博客了最近项目上的事情弄的很焦灼,最近有点空闲的时间就把项目中学到的东西多多的总结一下,这个词云是我之前写过的一些功能,当时是有一个这个需求自己搜集了一些可以用到的依赖和三方的包,好了话不多说直接开整,先整一张图

前端页面:词云效果图

java+vue实现词云生成+展示(kumo+echarts-wordcloud )_第1张图片

首先呢:先从后端说起

后端采用了Kumo一个开源的Java词云工具,可以快速构建词云图片。

开源地址

  • Github:GitHub - kennycason/kumo: Kumo - Java Word Cloud
  • 码云:kumo: Kumo - Java Word Cloud

Maven:


    com.kennycason
    kumo-core
    1.13


    com.kennycason
    kumo-tokenizers
    1.12

使用方法
首先创建一个FrequencyAnalyzer(词频分析)对象,该对象用来统计我们所需要构造词云数据的频率,主要包含以下方法:

java+vue实现词云生成+展示(kumo+echarts-wordcloud )_第2张图片

 采用kumo可以直接生成图片,这里为了省事不没有在后端生成,而是把数据转到了前端,

    public List wordcloud (String brainstormId)  {

       // 新建FrequencyAnalyzer 对象(这块是强引用,并发的情况下会造成oom!!!改为弱引用即可)
       FrequencyAnalyzer frequencyAnalyzer = new FrequencyAnalyzer();
       // 设置分词返回数量(频率最高的600个词)
       frequencyAnalyzer.setWordFrequenciesToReturn(600);
       // 最小分词长度
        frequencyAnalyzer.setMinWordLength(2);
        // 引入中文解析器
        frequencyAnalyzer.setWordTokenizer(new ChineseWordTokenizer());
        // 可以直接从文件中读取
        final List wordFrequencies = frequencyAnalyzer.load(BrainstormList);
        return wordFrequencies;
    }

(备注:BrainstormList为需要处理的数据)

前端

 在vue中引入echarts-wordcloud

npm install  echarts-wordcloud --save;
npm install echarts --save


前端从后端接收到内容后展示并生成图片,这样我们的词云就完成了:

java+vue实现词云生成+展示(kumo+echarts-wordcloud )_第3张图片

你可能感兴趣的:(java学习,java,vue.js,前端)