学了下怎么用wordcloud。

以imet的数据集为例

https://www.kaggle.com/c/imet-2019-fgvc6

读取“train.csv”,”label.csv”文件,得到id2name[] (label的id和label名称对应) 和 attribute_count(label出现次数统计)两个dict。

import matplotlib.pyplot as plt
import numpy as np import osimport csv lines=csv.reader(open("train.csv"))
train_content = []
head_row =next(lines)
for line in lines:
train_content.append(line) attribute_ids = []
for line in train_content:
attributes = line[1].split()
for a in attributes:
attribute_ids.append(a) lines=csv.reader(open("labels.csv"))
attribute_content = []
head_row =next(lines)
for line in lines:
attribute_content.append(line)
id2name = {}
for line in attribute_content:
if line[0] not in id2name:
id2name.update({line[0]:line[1]})
def count_list(lt):
d={}
for i in lt:
if (i in d.keys()):
continue
count = lt.count(i)
d[i] = count
return d
attribute_count = count_list(attribute_ids)

对attribute_count进行排序,输出出现次数较多的标签(前十个)

sorted_attribute= sorted(attribute_count.items(),key = lambda item :item[1],reverse = True)
for i in range(10):
print (sorted_attribute[i][0],': ',id2name[sorted_attribute[i][0]])
print (sorted_attribute[i][1])

结果为

然而这样还不够直观,使用wordcloud可以更直观展示词频。

需要的python库

seaborn、wordcloud

准备好dict

culture_count_dict = {}
tag_count_dict = {}
for i in range(1103):
idx = str(i)
if (id2name[idx][0:5] == 'tag::'):
tag_count_dict.update({id2name[idx][5:]:attribute_count[idx]})
else:
culture_count_dict.update({id2name[idx][9:]:attribute_count[idx]})

  wordcloud 生成图像

import seaborn as sns
from wordcloud import WordCloud culture_cloud = WordCloud(background_color='Black', colormap='Paired', width=1600, height=800, random_state=123).generate_from_frequencies(culture_count_dict)
tag_cloud = WordCloud(background_color='Black', colormap='Paired', width=1600, height=800, random_state=123).generate_from_frequencies(tag_count_dict) plt.figure(figsize=(24,24))
plt.subplot(211)
plt.imshow(culture_cloud,interpolation='bilinear')
plt.axis('off') plt.subplot(212)
plt.imshow(tag_cloud, interpolation='bilinear')
plt.axis('off') plt.tight_layout()
plt.show()

wordcloud使用的更多相关文章

  1. python wordcloud 对电影《我不是潘金莲》制作词云

    上个星期五(16/11/18)去看了冯小刚的最新电影<我不是潘金莲>,电影很长,有点黑色幽默.看完之后我就去知乎,豆瓣电影等看看大家对于这部电影的评价.果然这是一部很有争议的电影,无论是在 ...

  2. R语言之词云:wordcloud&wordcloud2安装及参数说明

    一.wordcloud安装说明 install.packages("wordcloud"); 二.wordcloud2安装说明 install.packages("dev ...

  3. python wordcloud

    python wordcloud 对电影<我不是潘金莲>制作词云 上个星期五(16/11/18)去看了冯小刚的最新电影<我不是潘金莲>,电影很长,有点黑色幽默.看完之后我就去知 ...

  4. [R] Draw a wordcloud

    # 加载rJava.Rwordseg库 library(rJava); library(Rwordseg); library(RColorBrewer); # == 读入数据 lecture=read ...

  5. Rweibo , wordcloud

    利用Rweibo ,wordcloud做词云 #导入需要的包,不存在则下载 require(Rweibo) #必须先调用rJava不然Rwordseg 无法使用 library(rJava) requ ...

  6. 使用 wordcloud 构建词云图

    from wordcloud import WordCloudfrom matplotlib import pyplot as pltfrom PIL import Imageimport numpy ...

  7. 爬取豆瓣电影影评,生成wordcloud词云,并利用监督学习根据评论自动打星

    本文的完整源码在git位置:https://github.com/OceanBBBBbb/douban-ml 爬取豆瓣影评 爬豆瓣的影评比较简单,豆瓣没有做限制,甚至你都不用登陆就可以看全部,我这里用 ...

  8. 使用jieba库与wordcloud库第三方库进行词频统计

    一.jieba库与wordcloud库的使用 1.jieba库与wordcloud库的介绍 jieba 库的分词原理是利用一个中文词库,将待分词的内容与分词词库进行比对,通过图结构和动态规划方法找到最 ...

  9. win 10 的wordcloud的安装

    这两天为了安装wordcloud库可谓是“一把辛酸”,各种出错 jieba什么就不说了,安装和使用都很简单只需要一句代码就可以实现了,而wordcloud在安装之前,本以为也像jieba那样的简单,但 ...

  10. 词云wordcloud入门示例

    整体简介: 词云图,也叫文字云,是对文本中出现频率较高的“关键词”予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨. 基于Python的词云生成类库 ...

随机推荐

  1. Unitity 常用工具类

    ylbtech-Unitity_C#: Unitity 常用代码 1.A,效果图返回顶部   1.B,源代码返回顶部 1,日期字符串 using System; using System.Xml; / ...

  2. python数据类型学习心得

    python中的数据类型 数字:整型,长整形,布尔型,浮点型,复数 整型:普通的整数,在32位的操作系统中范围在-2的-32次方到2的32次方-1,64位的操作系统则为-2的64次方到2的64次方-1 ...

  3. HDOJ 3359 Kind of a Blur

    用高斯消元对高斯模糊的图像还原.... Kind of a Blur Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/327 ...

  4. Solidworks如何在装配图中保存单独的一个零件

    如下图所示,我想要保存装配体的一个单独的零部件   选中该零件后点击编辑零部件   然后点击顶部的文件-另存为,弹出"解决模糊情形"对话框,询问你要保存装配体还是零部件   点击确 ...

  5. ACdreamoj 1011(树状数组维护字符串hash前缀和)

    题目链接:http://acdream.info/problem? pid=1019 题意:两种操作,第一种将字符串某个位置的字符换为还有一个字符.另外一种查询某个连续子序列是否是回文串: 解法:有两 ...

  6. Activity和Service交互之bindService(回调更新UI)

    一.回调接口 public interface OnProgressListener { void onProgress(int progress); } 二.Service代码 public cla ...

  7. python 搭建环境

    直接命令行里面 1.进入相应的目录 ,然后python,然后python setup.py 2.或者直接python C:\Python27\Lib\site-packages\xlrd-0.9.3\ ...

  8. Odoo many2many command

    CREATE = lambda values: (0, False, values) // (0,False, Values) //创建 UPDATE = lambda id, values: (1, ...

  9. JDK与adb/android环境变量配置完整教程

    在这篇文章中.主要解决一个在Java或者Android开发中第一步须要解决的问题,那就是环境变量的配置.因为这部分在网上有非常多教程.參差不齐.我这里主要是对JDK与adb/android两者的环境变 ...

  10. 关于解决 http 状态码200,php 文件有输出,但是不显示模板文件的问题

    一 问题 给公司搭建一个在线测试站点之后,在浏览器地址栏输入 "http://xxx.xxx.xxx/index.php",页面什么都没显示.调出浏览器的开发者工具查看,http ...