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

前端页面:词云效果图

首先呢:先从后端说起

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

开源地址

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

Maven:

<dependency><groupId>com.kennycason</groupId><artifactId>kumo-core</artifactId><version>1.13</version>
</dependency>
<dependency><groupId>com.kennycason</groupId><artifactId>kumo-tokenizers</artifactId><version>1.12</version>
</dependency>

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

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

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

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

前端

在vue中引入echarts-wordcloud

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

<template><divid="mywordcloud":style="{ width: '100%', height: '300px' }":data="datalist"></div>
</template>
<script>
import * as echarts from "echarts";
import "echarts-wordcloud/dist/echarts-wordcloud";
import "echarts-wordcloud/dist/echarts-wordcloud.min";
import { WordCloud } from "@/api/brainstorm/brainstorm";
export default {name: "VueWordCloud",data() {return {datalist:[{name:"",value:0}],};},methods: {   dataworcloud(brainstormId) {WordCloud(brainstormId).then((res) => {var result =res.resultfor (let i = 0; i < result.length; i++) {this.datalist.push({name:result[i].word,value:result[i].frequency})}this.initChart();});},initChart() {this.chart = echarts.init(document.getElementById("mywordcloud"));const option = {series: [{type: "wordCloud",//用来调整词之间的距离gridSize: 12,// 形状 circle 圆,cardioid  心, diamond 菱形,shape: "circle",//用来调整字的大小范围sizeRange: [30, 60],//用来调整词的旋转方向,,[0,0]--代表着没有角度,也就是词为水平方向,需要设置角度参考注释内容rotationRange: [0, 0],//位置相关设置left: "center",top: "center",right: null,bottom: null,width: "200%",height: "200%",drawOutOfBound: false,//随机生成字体颜色// maskImage: maskImage,textStyle: {color: function () {return ("rgb(" +Math.round(Math.random() * 256) +", " +Math.round(Math.random() * 256) +", " +Math.round(Math.random() * 256) +")");},emphasis: {shadowBlur: 10,shadowColor: "#2ac",},},//数据data: this.datalist,},],};this.chart.setOption(option);},},
};
</script>

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

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

  1. java词云生成,kumo项目详解

    0. 前言 需要在后端生成一个词云图给小程序. 使用kumo项目实现. 1. demo 首先新建maven项目,prom.xml中加入以下依赖.加完之后记得reload. 要确保自己电脑或者服务器安装 ...

  2. java词云生成Kumo

    1,先前在网上寻找Java词云生成包kumo 在gitthub上导入 1)核心包 <dependency><groupId>com.kennycason</groupId ...

  3. 深度学习项目实战——1.基于WordCloud词云生成

    深度学习项目实战--1.基于WordCloud词云生成 准备 安装依赖库 pip install wordcloud matplotlib jieba pillow WordCloud()可选的参数 ...

  4. java词云推荐(KUMO)

    hello,各位,大年初二,给大家拜年了! 今天给大家介绍一下,使用java生成词云的方法和框架--KUMO(来自github),KUMO是一款使用java编写,应用于词频分析,词云生成的开源技术.不 ...

  5. Python编程:实现词云生成(附详细源码)

    Python编程:实现词云生成(附详细源码) 词云是一种数据可视化的方式,它可以用来展示某个主题下的主要关键词汇.在Python中,我们可以使用 wordcloud 库来实现词云的生成.本文将带您一步 ...

  6. bilibili怎么设置弹幕数量_python爬虫:bilibili弹幕爬取+词云生成

    如果你懒得看下边的文字,我录了一个完整的教学视频在b站上. 我的B站教学:https://www.bilibili.com/video/av75377135?p=2 工作原理 b站是提供弹幕接口的,所 ...

  7. python中文词云生成_Python 词云生成

    图片来自网络所谓"词云"就是对网络文本中出现频率较高的"关键词"予以视觉上的突出,形成"关键词云层"或"关键词渲染",从 ...

  8. python爬取bilibili弹幕_python爬虫:bilibili弹幕爬取+词云生成

    如果你懒得看下边的文字,我录了一个完整的教学视频在b站上. 我的B站教学:https://www.bilibili.com/video/av75377135?p=2 工作原理 b站是提供弹幕接口的,所 ...

  9. 词云生成库WordCloud详解(一):概述、ImageColorGenerator类

    当前wordcloud版本:1.81 项目地址:https://github.com/amueller/word_cloud API.案例地址:https://amueller.github.io/w ...

最新文章

  1. 代理 设置wsl_第一次使用WSL我做了什么
  2. 中国碳酸氢钠干粉灭火剂市场产销分析与盈利前景策略报告2022年
  3. 征稿 | JIST 2019 Regular Technical Papers
  4. 【Git】GitHub设置README.md引用本repo目录下的图片
  5. 【汇编优化】之arm32汇编优化
  6. Node Introduce
  7. 力扣-56 合并区间
  8. 关掉计算机usb接口,bios中不小心把电脑的USB接口给关闭了,怎么样开启
  9. 代码审计jizhiCMS 后台getshell
  10. 【北亚数据恢复】MSSQL 2000 出现“823”报错信息的数据恢复案例
  11. 通知 | 关于组织开展湖北省2022年度高新技术企业认定工作的通知
  12. 什么是流程引擎,F2BPM
  13. PCIE数据采集软件使用
  14. 硬件安装——联想笔记本安装固态硬盘
  15. Xcode10适配之libstdc++.6.0.9.tdb
  16. 【大数据AI人工智能】创造意义的是人类,不是机器
  17. 贝格尔编排法的PHP实现
  18. 构建一个透明的activity
  19. 搭建私有云maven文档(超详细)超级容易上手
  20. opencv获取bbox

热门文章

  1. Cisco Packet Tracer汉化
  2. refind两个linux,rEFInd (简体中文)
  3. 重定位——重定位的简介与操作(涉及位置无关码)
  4. 支付宝SDK下载地址
  5. 【Java 并发编程】我们为什么要学并发编程?
  6. 个人收款码和个人经营收款码的区别,你知道吗
  7. 2023年我终于进阿里了,阿里offer五面经验与总结
  8. 面向对象:想和你一起看夕阳,还有好多想去的地方,希望能与你同行
  9. 多智能体强化学习入门(三)——矩阵博弈中的分布式学习算法
  10. 超简单EventBus使用