龙空技术网

词云图的生成--详细解析及关键python代码

XieHS 169

前言:

今天你们对“词图云生成器”大致比较看重,大家都需要知道一些“词图云生成器”的相关内容。那么小编在网络上汇集了一些对于“词图云生成器””的相关内容,希望大家能喜欢,看官们快快来学习一下吧!

生成云图的主要函数为: 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()

下面这幅图就是根据《三生三世十里桃花》电影短评词语图。电影短评词是通过爬虫获取的,后续再介绍。

标签: #词图云生成器