Python如何使用Pyecharts+TextRank生成词云图?

news2024/11/15 19:48:21

Python如何使用Pyecharts+TextRank生成词云图?

  • 1 应用场景
  • 2 关于Pyecharts
    • 2.1 Pyecharts简介
    • 2.2 Pyecharts安装
    • 2.3 Pyecharts支持的图形
    • 2.4 Pyecharts的一个示例
  • 3 关于TextRank
    • 3.1 TextRank简介
    • 3.2 TextRank安装
  • 4 词云图的生成过程
    • 4.1 导入需要的包
    • 4.2 目标文件
    • 4.3 TextRank提取关键词
    • 4.4 输出关键词及权重
    • 4.5 Pyecharts生成词云图
    • 4.6 完整代码
    • 4.7 效果图

1 应用场景

  • 比如为了关注某产品质量,我们对用户基于产品的评论内容进行分析,提取关键词进行整理归纳,大致可以了解用户的需求;
  • 再比如需要对某个文章的进行分析,提取关键词,了解文章的一些基本关键核心点等;
  • 本文应用的技术是PythonPyecharts模块和TextRank算法。

2 关于Pyecharts

2.1 Pyecharts简介

  • Pyecharts 是一个 Python 可视化库,用于创建交互式和美观的图表。它基于著名的 JavaScript 可视化库 Echarts,通过在 Python 中调用 Echarts 的功能,使用户能够在 Python 环境中轻松地绘制各种类型的图表,包括折线图、柱状图、饼图、散点图等;
  • Pyecharts 提供了一个简单而直观的 API 接口,使得使用者无需了解复杂的 JavaScript 语法,即可通过 Python 代码实现高度定制化的图表设计。

2.2 Pyecharts安装

  • 直接使用命令:
pip install pyecharts

在这里插入图片描述

2.3 Pyecharts支持的图形

  • 从源码看Pyecharts支持大部分基本图形、复合图表、3D图形等;
  • 以下是部分源码:
# basic Charts
from ..charts.basic_charts.bar import Bar
from ..charts.basic_charts.bmap import BMap
from ..charts.basic_charts.boxplot import Boxplot
from ..charts.basic_charts.calendar import Calendar
from ..charts.basic_charts.custom import Custom
from ..charts.basic_charts.effectscatter import EffectScatter
from ..charts.basic_charts.funnel import Funnel
from ..charts.basic_charts.gauge import Gauge
from ..charts.basic_charts.geo import Geo
from ..charts.basic_charts.graph import Graph
from ..charts.basic_charts.heatmap import HeatMap
from ..charts.basic_charts.kline import Kline
from ..charts.basic_charts.line import Line
from ..charts.basic_charts.liquid import Liquid
from ..charts.basic_charts.map import Map
from ..charts.basic_charts.parallel import Parallel
from ..charts.basic_charts.pictorialbar import PictorialBar
from ..charts.basic_charts.pie import Pie
from ..charts.basic_charts.polar import Polar
from ..charts.basic_charts.radar import Radar
from ..charts.basic_charts.sankey import Sankey
from ..charts.basic_charts.scatter import Scatter
from ..charts.basic_charts.sunburst import Sunburst
from ..charts.basic_charts.themeriver import ThemeRiver
from ..charts.basic_charts.tree import Tree
from ..charts.basic_charts.treemap import TreeMap
from ..charts.basic_charts.wordcloud import WordCloud

# Composite Charts
from ..charts.composite_charts.grid import Grid
from ..charts.composite_charts.page import Page
from ..charts.composite_charts.tab import Tab
from ..charts.composite_charts.timeline import Timeline

# 3d charts
from ..charts.three_axis_charts.bar3D import Bar3D
from ..charts.three_axis_charts.graph_gl import GraphGL
from ..charts.three_axis_charts.line3D import Line3D
from ..charts.three_axis_charts.lines3D import Lines3D
from ..charts.three_axis_charts.map3D import Map3D
from ..charts.three_axis_charts.map_globe import MapGlobe
from ..charts.three_axis_charts.scatter3D import Scatter3D
from ..charts.three_axis_charts.surface3D import Surface3D

# alias
Candlestick = Kline
  • 而本文我们主要用的是WordCloud词云图,即需要用到:
from ..charts.basic_charts.wordcloud import WordCloud

2.4 Pyecharts的一个示例

  • 我们简单写个示例,用一个折线图来显示几个产品的销售额;
  • 具体代码如下:
# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2023/11/15 
# 文件名称:test_charts.py
# 作用:Pyecharts使用
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelson

from pyecharts import charts
from pyecharts import options

ch = charts.Line()

# 横坐标、数据
ch.set_global_opts(title_opts=options.TitleOpts(title="产品销售额"))
ch.add_xaxis(["产品A", "产品B", "产品C", "产品D", "产品E", "产品F"])
ch.add_yaxis("销售(万)", [100, 300, 200, 400, 600, 200])

# 渲保存为HTML
ch.render("./chart.html")
# 直接渲染显示图表
ch.render_notebook()
  • 运行后如下:
    在这里插入图片描述
  • 这个简单说这么多,毕竟我们的目的不是这个的使用;
  • 可自行查看Pyecharts的官网。

3 关于TextRank

3.1 TextRank简介

  • TextRank算法是由Rada MihalceaPaul Tarau在2004年提出的;
  • 它基于PageRank算法,将文本转化为图形模型,使用图形排序来确定单词的重要;
  • TextRank算法的基本思想是使用单词之间的共现关系构建一个加权图,然后通过图的节点之间的链接来计算每个节点的重要性。
  • 本文是使用PythonTextRank算法提取关键词。

3.2 TextRank安装

  • 使用命令:
pip install jieba

在这里插入图片描述

  • 导入需要的包:
from jieba import analyse

# 调用
text_rank = analyse.textrank

4 词云图的生成过程

4.1 导入需要的包

from pyecharts.charts import WordCloud
from jieba import analyse

4.2 目标文件

  • 我们创建一个目标文件222.txt,在文本里写上以下内容;
  • 该文本内容来源网络,仅供学习参考。(100句美文)
100句美文
 - 细数门前落叶,倾听窗外雨声,涉水而过的声音此次响起,你被雨淋湿的心,是否依旧。
 - 站在寒冬的冷风中,漫天的雪花正纷纷扬扬地包裹着这座寒冷的城市。想着逝去了的那份真挚的无价情义,我忍不住怆然泪下。
 - 你在雨中行走,你从不打伞;你有自己的天空,它从不下雨。
 - 那段岁月,无论从何种角度读你,你都完美无缺,你所缺少的部分,也早已被我用想象的画笔填满。
 - 回首往事,日子中竟全是斑斓的光影,记忆的屏障中,曾经心动的声音已渐渐远去。
 - 往事是尘封在记忆中的梦,而你是我唯一鲜明的记忆,那绿叶上的水珠,是思念的泪滴。
 - 相信优美的生命,就是一曲无字的挽歌,漫过心际的孤独,早已蔚然成冰,而你,是这个季节最美丽的音符。
 - 酒般的思念,一饮就醉,醉时就用全部的热情读这忧伤的月色。于是,月醉了,夜醉了,我也醉了
 - 谁与我醉明月,愁在夕阳中。
 - 融进银河,就安谧地和明月为伴,照亮长天;没入草莽,就微笑着同清风合力,染绿大地。这样,才算得上善待生命,不负年华。
 - 她忧伤而美丽的面容,是我一辈子都读不厌倦的诗
 - 爱是一种牵挂,无论步迹到哪里,心却系在那披肩秀发的发梢。
 - 人生不能缺乏的是雨夜——淅沥地,独自的雨夜。这样的雨夜里,天有泪,烛有泪。天泪有声,烛泪有形,唯有斯人面上簌簌流下的,是点点无声无形的热泪。
 - 云一样的思绪,飘过来又飘过去,最终还是落在我的手掌上。绚丽如霓霞,哀怨如晨雾。我看得清你,你看得清我,我们在同一地平线,做着不同的梦,我的梦白如花朵,你的梦红如晚霞。
 - 童年的那一个个追逐嬉笑的日子,有如行云流水般在我的生命的旅途中流淌。
 - 曾在阳光下幻想着云游四海,浪迹天涯。
 - 别让别人徘徊的脚步踩碎你明天美好的梦想,天下没有不散的宴席。也许这人间真的只有朦朦胧胧才是真。
 - 思念,是一种幸福的忧伤,是一种甜蜜的惆怅,是一种温馨的痛苦。思念是对昨日悠长的沉淀和对未来美好的向往。也正是因为有了思念,才有了久别重逢的欢畅,才有了意外邂逅的惊喜,才有了亲友相聚时的举杯庆祝。
 - 我常常以为,记忆是最容易模糊的东西,在时间的流逝里,它会一团团的淡去。而中学生活的一日日枯燥的翻转,也慢慢淡去。刻骨的,只有那么几个回眸,牢不可破地粘在了记忆里。
 - 在人生和世界的激流中,他必然会像初冬从树上飘落下来的最后一片枯叶,在西风残照中孤零零地漫无目的地飘舞。
 - 一个秋风萧瑟的寒夜,当天边那弯孤独徘徊的月儿轻轻告诉了我该如何描绘心中最美的风景之后,我便不再抱怨为什么人生总是有太多的遗憾,不再感叹生命的尽头总是轻烟。
 - 一个人走在城市的黄昏,孤独被斜阳摇曳成猎猎的旗,招摇在四周的暮云里。走在行色匆匆的人流中,忽然发现自己失去了方向。在异乡的街头,我突然那么强烈地渴望你能不经意地走来,牵着我的手,陪我,走一段漆黑的路。
 - 在这世间,有些路是非要一个人去面对,单独一个人去跋涉的。
 - 谁的指间滑过了千年的时光,谁在反反复复中追问,可曾遗忘了我。等你用尽了我所有的哀伤,而你眼中却有我所不懂的凄凉。
 - 人生一世,白云悠悠,漂走的是多少沧桑与眼泪;人生苦短,汗流尽,沉淀的又是多少往事与回忆。
 - 单调而沉闷的空气窒息着我幼小的心灵,缠绕着我飞翔的翅膀。
 - 我的少年的日子是寂寞的,寂寞的让我现在想起来都心冷,只有单调的影子与我一起看流岚,听松风,闻花香。
 - 在一个个五光十色的希望肥皂泡中蹉跎岁月,浪费青春年华。
 - 一轮孤月下一株孤独的树,这是一种不可企及的妩媚。
 - 夜夜难眠,天天泪痕,泪水淹没日月,混淆乾坤,也无法挽回流失的岁月,重返最初之净泊。
 - 我想,我还会架一支鱼竿,独钓岁月那一边的故事。
 - 孤独是一种无奈的选择,孤独是因为没有找到适合的同行者,孤独是为了孤独背后的解脱。孤独的过程,就是一个寻求真爱的过程。
 - 平淡而不平庸,平凡而能平静,在离群索居,无伴独处中思索,追求创造,高瞻远瞩,洞幽烛微。
 - 爱那一场场繁华落尽后的曲终人散。
 - 喜欢那种被岁月沉淀后的沉静和忧郁。
 - 我现在能做的,便是以一段拙劣的文字来祭奠我那段流逝的岁月。
 - 自己是蓝色的,音乐是悠扬的,心情是透明的,灵魂是飞舞的。
 - 在别人的轨迹里看到自己曾经那么认真,那么虔诚,可是却无比悲凉的足迹,想到自己一路这么千山万水地跋涉过来,我就想哭。
 - 岁月的洪流,卷走了青春,卷走了年华,剩下的只是一个被岁月刻下深深印痕的伤痕累累的躯壳和一颗沧桑的心。
 - 太阳的光芒远远胜过月亮,但太阳永远只能独自天马行空,而月亮却有星星相伴。世间万物中,其实太阳最寂寞。
 - 千古佳人,荷笠斜阳,最终都不过是红颜怅老,青山远归。真正能在心中美丽永恒的,唯有刻骨的一刹那记忆而已。(摘自《武侠》)
 - 青春结伴,我已有过,是感恩,是满足,没有遗憾。
 - 人生,有时轻似风,淡如水,有时浓如油,烈如酒。
 - 当有一天你走出人生的迷茫,在夕阳下回首,你身后那串歪歪斜斜,磕磕绊绊的步履,便构成了你生命年轮中极珍贵的一瞥,时刻回想起来都会令自己无限感动和无限欣慰,铭刻心中挥之不去。
 - 平庸,使人走漫长的路。
 - 遥远的距离使我相思成灰,阴阳的间隔使我欲哭无泪。
 - 世上没有十全十美的文章,如同世上没有彻头彻尾的绝望。
 - 感谢上天让我孤单,忍受灵魂的磨难。
 - 也许曲终人散之后,离开的离开,忘记的忘记,然而旋律最好的时候,感谢上天让我们是在一起的。
 - 随着时间的围困,我的步伐越来越沉重缓慢,时间仿佛把我逼到了死角,让我陷入了绝地,我无力挽回些什么,只有忍着痛,步履维艰地一步一步往前走。
 - 到了一定的时候,我身边的人纷纷离去。当一个个熟悉和离去的越来越快的时候,我发现已经很久没有遇见以前朝夕相伴的人了。
 - 其实有人扮演别人时,不自觉表露的正是自己。
 - 我记忆中童年的太阳已经从记忆的洞穴和幽谷上沉落。
 - 春天是死亡的高发季节,但不朽的灵魂总能泅过时间的潮水,屹立在永生的彼岸。
 - 那些素面朝天的城市,那些洗尽铅华的容颜。
 - 总是在老歌里,我才会充分意识到自己的温情。流金岁月,配上简单的老歌,也便配上了真实的悲欢。
 - 我是那么虔诚地喜欢着旅行,也是那么执着地厌恶着囚禁。
 - 城市颓败的霓虹倒映在我灰色的瞳仁里,显得更加颓败。
 - 那些我们以为永远都不会忘记的事情,就在我们念念不忘的过程中,被我们忘记了。
 - 我们的心,早已死在最繁花锦簇的时刻。
 - 原谅我凌乱的文字,原谅我破碎的时光。
 - 路灯和我之间,究竟谁是谁的过客,谁是谁生命的点缀。
 - 我匍匐了一百年,微笑着焚烧了一百年,只等待与你灰飞湮灭的重逢,因为你的快乐,是我生命里全部的信仰。
 - 人应有点远见,这样才能拯救自己,让自己的心,安详的存在。
 - 生命令你这样的快乐与绝望。
 - 因为爱字,所以放任,因为放任,所以成全。
 - 当你想起旅途中某次惊艳,那个转身而去的女子其实早已老去。只有记忆像雾一样停留,而流逝的时间,就是那个远去的女子。
 - 他转身的时候,我看到的是一个老人的背影,我知道,时间在老去。
 - 河在我记忆中是个忧伤的符号。
 - 有一段时间,我一直在故事中漂流,像一根草屑。
 - 如同一部黑白片在河流的背景下回放着。
 - 从她的眼神中看到一种光芒与堕落,看见时光在闪回,像蝴蝶一样冷艳。
 - 去的旅程隔着无数的季节,无数坠落的经历。
 - 我成长过程渐渐偏离真实轨迹,最早是从谎言开始的。
 - 其实每一朵花,都有它自己的生命。当花儿枯萎的时候,就是它生命终结的时候,而它的种子,就是它生命的延续,在这个世界上继续承受风,经受雨,面对另一个轮回。
 - 一个人早年的癖性,即便让岁月的尘掩了又掩,也还是要不时地表露出来。
 - 静静地流淌的青春也会让人受伤吗
 - 我感觉我生命中的某些东西,也在沿着轨道静静地行驶。
 - 四周一片漆黑。亲爱的,我一无所有。
 - 黑夜里被风吹着的蜡烛,怎样才能等到日出。
 - 我们恐惧墓地,尽管我们日夜兼程。
 - 偶尔,我一个人站在黄昏的荒野,代替你主持夕阳的葬礼。
 - 对于人类来说,友谊是一种交换行为。没有下次交换,友谊便不再继续。
 - 童年,只有在回忆中显现时,才成就了那份完美。
 - 回忆能远离平淡,能使本来平淡的日子背叛现实做一次超越的飞翔。
 - 夜晚的城市像一朵即将枯萎的花朵,努力地开放出最后一缕艳丽。
 - 在远离了熟悉的城市和人群的地方,灵魂不再受任何束缚。
 - 当一个人喜欢孩子的时候,他便已不再是孩子。
 - 生命,总会有一些令人回眸的空白。
 - 火车就是这样离我们很近,又离我们很远,中间像是留有期待,留有着人生注定需要的某种时间。
 - 同一天的周而复始,若不在哪里留下折痕,说不定会产生错觉。
 - 我想,不管多老,自己始终都是一个善感的男人,一首歌,一片叶,一泓水,都是我忧伤的片段,别人的一举一动,一笑一颦,都会让我不由自主地沉沦在茫茫的思想旅程。
 - 青春不过是一种挥霍,我们在一起,我们仿佛无始无终般地在一起。
 - 青春是阵偶尔滑过的风,不经意间,已吹得我泪流满面。
 - 我想我不会孤独,因为我还有音乐。我想我将一直孤独,因为我只有音乐。
 - 我放下钢笔,轻轻地合上我的日记,整个一年就这样在一个午后被我轻轻地合上,结束了。
 - 孤独从一开始就注定要用一生去承担,无人能懂。
 - 不知道表达感情的人,只能走很长很长的路。
 - 雨滴从玻璃上滑落的样子,原来是有迹可循的。
 - 在时间里面,我们什么也不能留下。包括痛苦,快乐,和生命。

4.3 TextRank提取关键词

  • 直接基于TextRank算法从文本中提取关键词:
# 基于TextRank算法从文本中提取关键词
text_rank = analyse.textrank
text = open('./222.txt', 'r', encoding='gbk').read()
keywords = text_rank(text)
print(keywords)
  • 我们可以看下提取的关键词keywords 内容:
['生命', '没有', '记忆', '人生', 
'时候', '时间', '灵魂', '城市', 
'太阳', '忧伤', '淡去', '留有', 
'青春', '过程', '日子', '季节', 
'忘记', '放任', '微笑', '光芒']

4.4 输出关键词及权重

  • 我们创建一个空的列表,用于存储提取的关键词及权重;
text_list = []
# 输出提取的关键词
for keyword, weight in text_rank(text, withWeight=True):
    print('%s %s' % (keyword, weight))
    text_list.append((keyword, weight)) 
  • 看下输出的内容:
生命 1.0
没有 0.5943892405908553
记忆 0.5689110873940524
人生 0.5452975913557881
时候 0.5394331425728667
时间 0.5085631353385073
灵魂 0.4333041943806468
城市 0.36699812479404703
太阳 0.3221520571823969
忧伤 0.3027380139043756
淡去 0.3015866931533294
留有 0.28791663307041154
青春 0.28328783208533515
过程 0.277546913046032
日子 0.27008268093325627
季节 0.26805446984522774
忘记 0.2671507371559548
放任 0.25896014019039154
微笑 0.2509216716600613
光芒 0.24862435402105676

4.5 Pyecharts生成词云图

word_cloud = WordCloud()
word_cloud.add(series_name='热点分析', data_pair=text_list, word_size_range=[15,90], shape='cardioid', height=600,width=800)
word_cloud.render('word_clound.html')
  • 会在指定目录生成一个word_clound.html,打开即可。

4.6 完整代码

# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2023/11/15
# 文件名称:test_wordcloud.py
# 作用:Pyecharts+TextRank生成词云图
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelson

from pyecharts.charts import WordCloud
from jieba import analyse


# 基于TextRank算法从文本中提取关键词
text_rank = analyse.textrank
text = open('./222.txt', 'r', encoding='gbk').read()
keywords = text_rank(text)
print(keywords)

text_list = []
# 输出提取的关键词
for keyword, weight in text_rank(text, withWeight=True):
    print('%s %s' % (keyword, weight))
    text_list.append((keyword, weight))

word_cloud = WordCloud()
word_cloud.add(series_name='热点分析', data_pair=text_list, word_size_range=[15,90], shape='cardioid', height=600,width=800)
word_cloud.render('word_clound.html')

4.7 效果图

  • 效果图有多种,支持的图形可以看源码:
SHAPES = ("cardioid", "diamond", "triangle-forward", 
"triangle", "pentagon", "star")
  • cardioid形状:
    在这里插入图片描述
  • diamond形状:
    在这里插入图片描述
  • triangle-forward形状:
    在这里插入图片描述
  • triangle形状:
    在这里插入图片描述
  • pentagon形状:
    在这里插入图片描述
  • star形状:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1212008.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023.11.16 hivesql之条件函数,case when then

目录 一.Conditional Functions条件函数 二.空值相关函数 三:使用注意事项 3.1 then后面不能接子查询 3.2 then后面只能是结果值 3.3 then后面能不能接两列 四.用于建表新增字段使用场景 一.Conditional Functions条件函数 -- 演示条件函数 -- if(条件判断,t…

【软考篇】中级软件设计师 第三部分(一)

中级软件设计师 第三部分(一) 十七. I/O管理软件十八. 输入/输出技术十九. 总线系统二十. 磁盘管理20.1 移臂调度算法20.2 缓冲区 二十一. 操作系统二十二. 数据库22.1 三级模式-两级映射22.2 数据库设计22.3 规范化理论22.4 范式判断22.5 模式分解 十七…

探索arkui(1)--- 布局(线性/层叠/弹性)

前端开发布局是指前端开发人员宣布他们开发的新网站或应用程序正式上线的活动。在前端开发布局中,开发人员通常会展示新网站或应用程序的设计、功能和用户体验,并向公众宣传新产品的特点和优势。前端开发布局通常是前端开发领域的重要事件,吸…

如何用SaleSmartly集成WhatsApp账号(内含WhatsApp个人号、商业号、API号对比图)

用SaleSmartly集成WhatsApp账号 如果企业有多个WhatsApp账号,无论是个人账号还是工作账号,员工操作起来可能会觉得难以管理和切换。SaleSmartly就可以解决这个问题,让员工在一个平台上同时使用多个WhatsApp账号,不需要频繁地登录和…

C++初阶,详解类和对象(2)

详解类和对象(2) 一,前言二,构造函数2.1构造函数概念2.2构造函数特性 三,析构函数3.1析构函数概念3.2析构函数特性 一,前言 上一篇我们讲了类的大体框架,这篇内容我们要重点来说一说类的几个默…

iis特殊字符的轉義問題解決

今天發現有個問題,部分圖片的靜態資源帶有號,導致無法直接在瀏覽器獲取圖片,百度了一下,修改了注冊表,發現沒什麽軟用,最後找到一篇博客,解決了 解決

k8s的error: metrics not available yet问题处理

kubectl top node报错处理 解决步骤环境说明问题现象初次排查问题解决版本兼容性metric-server.yaml 问题验证 解决步骤 因项目要求,需在k8s集群中使用 kubectl top node命令,但是一直报error: metrics not available yet错误。为了更好的复现问题&…

【知识增强】A Survey of Knowledge-Enhanced Pre-trained LM 论文笔记

A Survey of Knowledge-Enhanced Pre-trained Language Models Linmei Hu, Zeyi Liu, Ziwang Zhao, Lei Hou, Liqiang Nie, Senior Member, IEEE and Juanzi Li 2023年8月的一篇关于知识增强预训练模型的文献综述 论文思维导图 思维导图网页上看不清的话,可以存…

如果使用Vue要做根据已有的图形填入到指定的单元格中,你会怎么做?

这里写自定义目录标题 如果使用Vue要做根据已有的图形填入到指定的单元格中&#xff0c;你会怎么做&#xff1f;先看效果图上代码 如果使用Vue要做根据已有的图形填入到指定的单元格中&#xff0c;你会怎么做&#xff1f; 先看效果图 上代码 <template><div class&q…

算法--搜索与图

这里写目录标题 主要内容DFS思想 BFS思想 DFS与BFS的比较一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 主要内容 DFS 思想 会优先向深处搜索 一旦到达最深处 那么会回溯 但是在回溯的过程中 会边回溯边观察是否有能继…

Springboot项目返回数据统一封装

Springboot项目返回数据统一封装,支持swagger。 正常swagger会根据数据库表的注释显示对应的参数释义等。但当我们使用统一接口返回map时&#xff0c;部分注释等信息会被掩盖消失。在此提供三个java类即可满足统一封装返回接口&#xff0c;也可显示对应的swagger释义等。 1.Er…

Arthas应用诊断

一、介绍 rthas 是一款线上监控诊断产品&#xff0c;通过全局视角实时查看应用 load、内存、gc、线程的状态信息&#xff0c;并能在不修改应用代码的情况下&#xff0c;对业务问题进行诊断&#xff0c;包括查看方法调用的出入参、异常&#xff0c;监测方法执行耗时&#xff0c…

全数字系列-麦克风K歌模组-搭配投影仪专业方案

麦克风学名传声器&#xff0c;是将声音信号转换为电信号的能量转换器件&#xff0c;也称话筒、微音器&#xff1b;主要包括拾音面和信号放大电路&#xff1b;利用微机械加工技术制作出来的电能换声器&#xff0c;具有体积小、频响特性好、噪声低、高集成度和适于大批量生产的特…

每日一题----昂贵的婚礼

#include <iostream> #include <algorithm> #include <cstring> #include <queue> #include <vector> using namespace std; //本题酋长的允诺也算一个物品,最后一定要交给酋长&#xff0c;那么等级不能超过酋长的等级范围const int N 150 * 15…

简单理解路由重分发(用两路由器来理解)

相关命令&#xff1a; default-information originate //*重分发默认路由 redistribute rip subnets //*重分发rip redistribute ospf 1 metric 3 //*重分发ospf&#xff08;其中&#xff1a;1是ospf进程id 3是跳数&#xff09; redistribute sta…

asp.net core mvc之 过滤器

过滤器允许我们在Action执行之前和执行之后去执行一下业务代码 一、过滤器的作用域 1、全局过滤器&#xff0c; 在Startup.cs文件中注册 2、控制器过滤器&#xff0c; 在控制器类上面使用标注 3、action过滤器 二、全局过滤器使用 1、在 core 目录&#xff0c;添加 TestA…

LeetCode反转链表的五种Java实现方式

给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]示例 2&#xff1a; 输入&#xff1a;head [1,2] 输出&#xff1a;[2,1]示例 3&#xff1a; 输入&a…

Mysql中的JDBC编程

JDBC编程 1.JDBC的数据库编程2.JDBC工作原理3.JDBC使用3.1JDBC开发案例3.2JDBC使用步骤总结 4.JDBC API4.1数据库连接Connection4.2 Statement对象4.3 ResultSet对象4.4 释放 5.Java代码操作数据库 1.JDBC的数据库编程 JDBC&#xff0c;即Java Database Connectivity&#xff0…

Java中生成指定字体的印章

文章目录 1.引入字体2.Windows环境下3. Linux环境下 生成印章测试类绘制方章测试类 1.引入字体 2.Windows环境下 如果在Windows上安装JAVA环境时&#xff0c;没有安装单独的jre1.8.0_141的话。那么字体就只放到\jdk1.8.0_141\jre\lib\fonts目前下。 3. Linux环境下 cat /etc…

11111

#include <iostream> #include <vector> #include <queue> #include <algorithm>using namespace std;// 边的结构体 struct Edge {int src, dest, weight;// 按照权重进行排序bool operator<(const Edge& other) const {return weight < ot…