好久没有写过博客了最近项目上的事情弄的很焦灼,最近有点空闲的时间就把项目中学到的东西多多的总结一下,这个词云是我之前写过的一些功能,当时是有一个这个需求自己搜集了一些可以用到的依赖和三方的包,好了话不多说直接开整,先整一张图
前端页面:词云效果图
首先呢:先从后端说起
后端采用了Kumo一个开源的Java词云工具,可以快速构建词云图片。
开源地址
- Github:GitHub - kennycason/kumo: Kumo - Java Word Cloud
- 码云:kumo: Kumo - Java Word Cloud
com.kennycason kumo-core1.13 com.kennycason kumo-tokenizers1.12
使用方法
首先创建一个FrequencyAnalyzer(词频分析)对象,该对象用来统计我们所需要构造词云数据的频率,主要包含以下方法:
采用kumo可以直接生成图片,这里为了省事不没有在后端生成,而是把数据转到了前端,
public Listwordcloud (String brainstormId) { // 新建FrequencyAnalyzer 对象 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
前端从后端接收到内容后展示并生成图片,这样我们的词云就完成了:



