云图详细解析笔记

说明:本文是参看大牛代码后总结的笔记,不清楚的地方可参看大牛源码

大牛源码地址:https://www.zhihu.com/question/28975391/answer/100796070

生成云图的主要函数为: WordCloud方法里面的generate函数

eg: my_wordcloud=WordCloud().generate(txt)

txt:将要显示的文字

WordCloud():wordcloud方法,里面的参数可以配置

eg: wordcloud = WordCloud(font_path=path, background_color="black", margin=5, width=1800, height=800,mask=alice_mask,max_words=2000,max_font_size=60,random_state=42)

wordcloud = wordcloud.generate(txt)

mask 英语意思为面具,这里就是在云图上面套上这样一个面具,让其显示为面具图片的形状

和词云图相关的知识

1、文字清洗

2、结巴分词

3、去除无用的词

4、PIL包打开面具图片

--------------------------------------------------

文字清洗

1、去除多余的符号,利用re包筛选出中文汉字

import re

pattern=re.compile(‘[\u4e00-\u9fa5]‘)

ls=re.findall(pattern,txt字符串类型),返回列表类型,单个中文字

1.2、将单个字组合成为没有空格的字符串,用join比较方便,当然也可以用for循环实现

words_str=‘‘.join(ls)

2、结巴分词 import jieba jieba.cut(words_str),返回生成器对象,需要转化成list类型

cleaned_word=list(jieba.cut(words_str))

3、去除无用的词(比如,的,很 诸如此类的副词)

去除无用词需要用到 stopwords.txt(可以在网上下载),将stopwords.txt中存在的词,从cleaned_word中剔除

stopwords=pd.read_csv("D:\Python34\stopwords.txt",index_col=False,quoting=3,sep="\t",names=[‘stopword‘], encoding=‘gbk‘)

words_df=words_df[~words_df.segment.isin(stopwords.stopword)]

words_df为DateFrame类型,segment为中文这一列的名字,或者叫索引

4、PIL包打开面具图片

alice_mask = np.array(PIL.Image.open(‘D:/Python34/coding/pachong/1.png‘)) 打开一幅图片,将图片矩阵数据赋值给WorldCloud的参数mask

wordcloud = WordCloud(font_path=path, background_color="black", margin=5, width=1800, height=800,mask=alice_mask,max_words=2000,max_font_size=60,random_state=42)

用wordcloud.generate(txt)方法显示词云图 。

注: 如果词放在txt文件里面,则首先需要将文件打开为 字符串类型 txt=open(r‘D:\Python34\coding\pachong\neiwu.txt‘,‘r‘).read()

来源自:https://www.zhihu.com/question/28975391/answer/100796070

时间: 2024-08-01 17:36:19

云图详细解析笔记的相关文章

算法面试课程笔记000 玩转算法面试 leetcode题库分门别类详细解析

算法面试课程笔记 =============================================================================== 本文地址 : =============================================================================== liuyubobobo老师 <<玩转算法面试 leetcode题库分门别类详细解析>> 为了面试,更为了提升你的算法思维 http:/

linux配置网络详细解析,上外网

备注:具体操作详细解析见:http://www.wtoutiao.com/a/2362248.html 简要步骤: 一.在虚拟机选择网桥模式: 二.配制网络,使虚拟机和主机,虚拟机和虚拟机之间能够网络互通: 1.使用setup工具进行配置: 2.或者选择编辑文本进行配置: vi /etc/sysconfig/network-scripts/ifcfg-eth0 service network restart; //配置完成后,需重启网络才能生效: [[email protected] ~]$ c

linux中的压缩命令详细解析(二)

我们在<Linux中的压缩命令详细解析(一)>中已经讲解了常见的三种压缩命令,下面我们开始讲解工作中最常用到的tar命令. 为了使压缩和解压缩变得简单,tar命令就应运而生了.那么究竟该如何使用呢? tar.gz格式: 压缩命令: tar -zcvf 压缩文件名 源文件名 举例: 把abc文件压缩成后缀为tar.gz格式的文件 tar -zcvf abc.tar.gz abc 解压缩命令: 举例:解压缩abc.tar.gz文件 tar -zxvf abc.tar.gz tar.bz2格式: 压

【转】UML中的几种关系详细解析

UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务.一个类可以有多种职责,设计得好的类一般只有一种职责,在定义类的时候,将类的职责分解成为类的属性和操作(即方法). 3) 类的属性即类的数据职责,类的操作即类的行为职责 一.依赖关系(Dependence) 依

字符数组的定义与使用详细解析

1. 字符数组的定义: 用来存放字符量的数组称为字符数组. 形式数值数组相同.例如: char c[10]; 由于字符型和整型通用,也可以定义为int c[10],但这时每个数组元素占2个字节的内存单元. 字符数组也可以是二维或多维数组.例如: char c[5][10]; 即为二维字符数组. 2. 字符数组的初始化 第一种方法是分别对每一个元素进行赋值操作: 字符数组也允许在定义时作初始化赋值.例如: char c[10]={'c', '  ', 'p', 'r','o', 'g', 'r',

MFC画图程序解析笔记一

这是 //if not define的简写,是宏定义的一种,它可以根据是否已经定义了一个变量来进行分支选择,一般用于调试等等.实际上确切的说这应该是预处理功能中三种(宏定义,文件包含和条件编译)中的一种----条件编译. 目录 1定义 2内容 3作用 4形式 1定义编辑 #define x ... #endif C语言在对程序进行编译时,会先根据预处理命令进行"预处理".C语言编译系统包括预处理,编译和链接等部分. #ifndef x //先测试x是否被宏定义过 #define x 程

【剧透高亮】最最最完整剧透加剧情详细解析

在美国看的,IMAX大厅爆满!只能缩在角落里的位置看,但是还是不影响观影过程,被震撼到不行!看到最后黑洞的情节都快哭出来跪在地上了!Hans Zimmer的配乐太结棍了啊! 就像诺兰所有的电影一样,Interstellar是一部烧脑+解读人性+看完后需要阅读大量相关资料补课的大片!尤其是马修麦康纳那mumbling的口音简直听得人更加confused神烦啊!伐碍紧!我们来把剧情从头到尾理一遍! OK废话不多say了,直接上剧情解析   在未来的世界,由于科技太发达,人类对于能源的过度开发导致地球

ADO.NET详细学习笔记

[1]ADO.NET和ADO的区别: ADO以Recordset存储,而ADO.NET则以DataSet表示.Recordset看起来更像单表,如果让Recordset以多表的方式表示就必须在SQL中进行多表连接.反之,DataSet可以是多个表的集合.ADO 的运作是一种在线方式,这意味着不论是浏览或更新数据都必须是实时的.ADO.NET则使用离线方式,在访问数据的时候ADO.NET会利用XML制作数据的一份幅本,ADO.NET的数据库连接也只有在这段时间需要在线. 由于ADO使用COM技术,

Java当中的堆与栈详细解析

总结第一句话:Java语言使用内存的时候,栈内存主要保存以下内容:基本数据类型和对象的引用,而堆内存存储对象,栈内存的速度要快于堆内存.总结成一句话就是:引用在栈而对象在堆. Java疯狂讲义的一段对话作为开场白. 一个问题:为什么有栈内存和堆内存之分? 答:当一个方法执行时,每个方法都会简历自己的内存栈,在这个方法内定义的变量将会逐个放入这块栈内存里,随着方法的执行结束,这个方法的内存栈也将自然销毁.因此,所有在方法中创建一个对象时,这个对象将被保存到运行时数据区中,以便利用(因为对象的创建成