-->

制作词云库图片

2020-01-16 20:19发布

站内文章 / 后端开发
231 0 0

超简单:3分钟制作惊艳的词云图

本篇先来解释一个名词“词云”,“词云”就是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。 词云图,很牛逼的存在,最近几天我也研究了一下,本篇将带领大家生成漂亮的词云图。词云的生成依据权重较高低, 词的倾斜角度、字体、颜色等属性来控制生成的词云图 。话不多说,先来看一些我生成的例子。

实用的词云网站

1.https://wordart.com/

国外版的词云图制作网站,网站操作页面如下图,你可以导入文本,或者导入网页内容,设置词云图要生成的图形,字体,布局,样式等。生成出的词云图你也可以对它进行编辑,根据自己需求进行改动。(注:默认不支持中文,需导入中文字体)

2.https://minitagcloud.cn/create.html

国产词云制作网站,内容比较丰富,包含上一款制作词云的所有功能。(国产更适合国民使用习惯)

3.https://worditout.com/

网站很人性,还给用户解释什么是词云以及词云的作用等信息。它操作简单,进入网站后只需要输入一段文本,然后就可以生成各种样式的“云”文字。用户可以根据自己的需要对WordItOut进行再设计,比如颜色、字符、字体、背景、文字位置等,保存下载后,可以复制。

4.http://yciyun.com/

易词云又一款国产强大的词云制作网站。里面的强大欢迎自己去体验。

代码生成词云图

在为找到上面那么多优秀的词云图制作网站而兴奋的时候,我突然意识到一点,我是程序员额!于是我搜罗如何通代码完成上述功能。Goooooogle一下,有很多通过程序生成云词图的实例,我看到主要有两类,python,Java和Js的实现。

1.python生成词云图

简单的代码示例如下:

# coding=utf-8
from wordcloud import WordCloud

f = 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 plt
plt.imshow(wordcloud)
plt.axis("off")
plt.show()
wordcloud.to_file('out.png')

效果图如下:

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

基于Python的词云生成类库,很好用,而且功能强大.个人强力推荐 

github https://github.com/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");

运行效果:

3.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="https://cdn.bootcss.com/wordcloud2.js/1.1.0/wordcloud2.js"></script>
    <script src="https://cdn.bootcss.com/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>

运行效果:

官网在线体验地址:https://wordcloud2-js.timdream.org/#love

项目源码地址:https://github.com/timdream/wordcloud

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

结语

好了,一个生成词云图的功能,我扒出了这么多东西。意外的发现让我觉得词云图很好玩,就Gooogle了一下,没想到有一堆网站。3分钟对工具网站的喜爱后,我尝试通过技术手段来实现。没想到有多种生成词云图的方式,着时让我震惊。回头看我发现词云的这个过程,让我想起了一句话“以为的不是你以为的”,互联网时代是信息大爆炸的时代,只有不断学习,不断提升认知,才能让你立于不败之地!

标签:

收藏的人(0)

Ta的文章 更多文章
  • Redis持久化
    Redis持久化
  • 如何在 VS Code 中调试 LeetCode 代码
    如何在 VS Code 中调试 LeetCode 代码
  • 仅使用CSS就可以提高页面渲染速度的4个技巧
    仅使用CSS就可以提高页面渲染速度的4个技巧
  • 测试用例管理的工具
    测试用例管理的工具
  • 公钥加密 私钥解密
    公钥加密 私钥解密
  • 分类---Logistic  Regression
    分类---Logistic Regression
  • 用栈完成 一个表达式运算
    用栈完成 一个表达式运算
  • 如何使用SSH远程命令登录香橙派开发板
    如何使用SSH远程命令登录香橙派开发板
登录 后发表评论
0条评论
还没有人评论过~

深圳SEO优化公司黔西网站关键词优化价格辽阳网站优化网站优化怎么设置关键词密度许昌网站优化推广多少钱网站优化快速推广昆山盐城网站优化企业虎丘网站优化推广方法关键词网站优化哪家有名网站快速优化优联火星赞优化外链对网站有什么影响凌源网站seo优化怎样优化自己的网站排名靠前徐汇区企业网站优化机构定制网站优化公司湖北网站优化一年多少钱网站布局优化许昌靠谱网站优化公司优化网站排名瘸疟云速捷强大刂怎样优化网站地址菏泽网站优化出售庄河网站搜索优化安阳县网站优化哪家公司正规鹤壁seo网站优化银川怎样优化网站网站优化怎样做富阳企业网站优化推广岳阳网站优化有哪些公司行车无锡网站优化维修保养网站叁优化公司怀安县网站优化公司歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化