词云(附带操作实例)

一、主要目的:

学会词云图的制作方法,要求熟悉jieba分词库的使用,会使用word cloud绘图,以及了解.generate()和.fit_words()方法的区别。

二、主要内容:

1.问题描述

“词云”是对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本,就可以领略文本的主旨。

2.文本词云图

词云是将感兴趣的词语放在一副图像中,可以控制词云的位置、大小、字体等。通常使用字体的大小来反映词语出现的频率。出现的频率越高,在词云中词的字体越大。

3.背景轮廓词云图的制作
(1)数据准备

首先做如下数据准备工作:

①以百度上抓取的帖子标题文本作为制作词云的数据。

(2)分词

文本挖掘的第一步就是将文本分词,对于中文,这里使用jieba分词。

(3)构建词云

接下来构建词云,这里使用工具wordcloud。

词云(附带操作实例)_第1张图片

三、关键源码附件及解释说明:

#使用pandas进行词频统计

word_list=['july','可爱','傻fufu','聪明','好可爱','精致','猪猪女孩','猪猪女孩','聪明','聪明']

df=pd.DataFrame(word_list,columns=['word'])

result=df.groupby(['word']).size()

freqlist=result.sort_values(ascending=False)

freqlist[:30]

>>word

  聪明       3

  猪猪女孩   2

  精致       1

  好可爱     1

  可爱       1

  傻fufu     1

  july       1

  dtype: int64

#使用NLTK进行词频统计

import nltk

word_list=['july','可爱','傻fufu','聪明','好可爱','精致','猪猪女孩','猪猪女孩','聪明','聪明']

fdlist=nltk.FreqDist(word_list)

print("聪明的词频:",fdlist['聪明'])#查看某个词的频数

print("词条列表:",fdlist.keys())#列出词条列表

print("前五个高频词及其频次为:",fdlist.most_common(5))#输出前五个高频词及其频次

fdlist#输出全部词频统计结果

#fdlist.tabulate(5)#输出前五个高频词,以列表形式输出

>>聪明的词频: 3

  词条列表: dict_keys(['july', '可爱', '傻fufu', '聪明', '好可爱', '精致', '猪猪女孩'])

  前五个高频词及其频次为: [('聪明', 3), ('猪猪女孩', 2), ('july', 1), ('可爱', 1), ('傻fufu', 1)]

  FreqDist({'聪明': 3, '猪猪女孩': 2, 'july': 1, '可爱': 1, '傻fufu': 1, '好可爱': 1, '精致': 1})

import wordcloud

font='C:/Windows/Fonts/simhei.ttf'#默认不支持中文,这里要从自己电脑上找到喜欢的字体

text='july,可爱,傻fufu,聪明,好可爱,精致,猪猪女孩'

mycloud=wordcloud.WordCloud(font_path=font).generate(text)

print(mycloud)

>>

#更改参数

mycloud=wordcloud.WordCloud(font_path=font,width=150,height=150,mode='RGBA',background_color=None).generate(text)

plt.imshow(mycloud)

plt.axis("off")#隐藏坐标轴

plt.show()

mycloud.to_file("猪猪词云.png")

四、心得体会:

   本次实验通过matplotlib,jieba,worldcloud等库文件实现数据到图标的直接转化,转换过程中我人为首先需要注意的是对源数据的处理,在最开始的的时候,使用了上次爬虫爬取贴吧的数据生成词云后,一些固定格式的信息占据了较大位置,例如贴子标题,贴子作者等。后对源数据经行了一定的修改,成功使用词云获得了标题里重复度较高的词语。

    在使用轮廓图绘制时,尝试过在网络上寻找一些图片,但效果都不是很明显,我推测时对应的库对于图片中主体物品的轮廓提取还是存在的偏差,最后使用了一张白底,主题人物和背景差别较大的图片完成了实验。

你可能感兴趣的:(大数据,python,数据分析,人工智能)