云图详细解析笔记

                                云图详细解析笔记

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

大牛源码地址: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)方法显示词云图 。

5、最后可以将制作的云图放入本地磁盘

wordcloud.to_file('d:/jieba/she2.jpg')

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

posted @ 2017-08-25 15:16  XieHS  阅读(1407)  评论(0编辑  收藏  举报