失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 词云加载慢 有水印?作为程序员 教你如何使用Java Python和JS生成词云!

词云加载慢 有水印?作为程序员 教你如何使用Java Python和JS生成词云!

时间:2019-09-30 09:49:01

相关推荐

词云加载慢 有水印?作为程序员 教你如何使用Java Python和JS生成词云!

声明:本文转载huaairen作者一文《制作词云库图片》,如有侵权,请联系删除。

前言

某天心血来潮,想搞搞词云这玩意,网上很多在线生成词云的网站,但是加载都比较慢,或者有水印,再或者是无水印却背景颜色不喜欢。心想,这玩意不难,应该有开源代码库可以使用的吧?网上一搜,虽然方法不多,但是也总有一些好使的,特意摘取huaairen一文,加以提取出使用Python、Java和JS生成词云的方法,转载内容如下:

1. python生成词云图

简单的代码示例如下:

# coding=utf-8from wordcloud import WordCloudf = open(u'txt/file.txt','r').read()wordcloud = WordCloud(background_color="white",width=1000, height=860, margin=2).generate(f)# width,height,margin可以设置图片属性# generate 可以对全部文本进行自动分词,但是他对中文支持不好#wordcloud = WordCloud(font_path = r'D:\Fonts\simkai.ttf').generate(f)# 你可以通过font_path参数来设置字体集#background_color参数为设置背景颜色,默认颜色为黑色import matplotlib.pyplot as pltplt.imshow(wordcloud)plt.axis("off")plt.show()wordcloud.to_file('out.png')

效果图如下:

小总结:

这只是一个简单的例子。你可根据自己的需求设置字体,设置形状,设置颜色,倾斜度等属性。

基于Python的词云生成类库,很好用,而且功能强大。

个人强力推荐:github /amueller/word_cloud

官方地址:https://amueller.github.io/word_cloud/

2. Java生成词云图

需要添加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>

java代码如下:

//建立词频分析器,设置词频,以及词语最短长度,此处的参数配置视情况而定即可FrequencyAnalyzer frequencyAnalyzer = new FrequencyAnalyzer();frequencyAnalyzer.setWordFrequenciesToReturn(600);frequencyAnalyzer.setMinWordLength(2);//引入中文解析器frequencyAnalyzer.setWordTokenizer(new ChineseWordTokenizer());//指定文本文件路径,生成词频集合final List<WordFrequency> wordFrequencyList = frequencyAnalyzer.load("E:\\ciyun/wordcloud.txt");//设置图片分辨率Dimension dimension = new Dimension(1920,1080);//此处的设置采用内置常量即可,生成词云对象WordCloud wordCloud = new WordCloud(dimension,CollisionMode.PIXEL_PERFECT);//设置边界及字体wordCloud.setPadding(2);java.awt.Font font = new java.awt.Font("STSong-Light", 2, 20);//设置词云显示的三种颜色,越靠前设置表示词频越高的词语的颜色wordCloud.setColorPalette(new LinearGradientColorPalette(Color.RED, Color.BLUE, Color.GREEN, 30, 30));wordCloud.setKumoFont(new KumoFont(font));//设置背景色wordCloud.setBackgroundColor(new Color(255,255,255));//设置背景图片//设置背景图层为圆形wordCloud.setBackground(new CircleBackground(255));wordCloud.setFontScalar(new SqrtFontScalar(12, 45));//生成词云wordCloud.build(wordFrequencyList);wordCloud.writeToFile("D:\\ciyun/ciyun1.png");

运行效果:

小总结:

使用这个方法需要安装java的jdk环境,同时还需要引入两个包,有环境和熟悉的可以尝试使用此方法

3. Js生成词云图

js代码如下:

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><script src="/wordcloud2.js/1.1.0/wordcloud2.js"></script><script src="/jquery/3.3.1/jquery.min.js"></script></head><body><div id="canvas-container" align="center"><canvas id="canvas" width="600px" height="400px"></canvas></div></body></html><script>var options = eval({"list": [['Google', 10],['Tencent', 9],['Alibaba', 7],['Baidu', 6],['NetEase', 4],['JD', 5],['Youku', 4],['Meituan', 3],['Douban', 3]],"gridSize": 16, // size of the grid in pixels"weightFactor": 10, // number to multiply for size of each word in the list"fontWeight": 'normal', // 'normal', 'bold' or a callback"fontFamily": 'Times, serif', // font to use"color": 'random-light', // 'random-dark' or 'random-light'"backgroundColor": '#333', // the color of canvas"rotateRatio": 1 // probability for the word to rotate. 1 means always rotate});var canvas = document.getElementById('canvas');WordCloud(canvas, options);</script>

运行效果:

小总结:

这个方法最简单,只需新建一个文件文本,命名为world-cloud.html,然后将代码复制进去,用浏览器运行world-cloud.html文件即可生成词云。

官网在线体验地址:https://wordcloud2-/#love

项目源码地址:/timdream/wordcloud

项目源码地址:/timdream/wordcloud2.js

总结:如需看更详细的文章内容,请看原文,链接如下:

/huaairen/p/12203143.html

如果觉得《词云加载慢 有水印?作为程序员 教你如何使用Java Python和JS生成词云!》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。