L7-7 好玩的词云图(一)

一、课堂导入

上节课我们学习了制作神奇的验证码,各位同学完成的都很棒,本节课我们将继续深入探究数据处理中的一些操作。

在日常的工作、生活中,有时候需要将一些数据更加直观的展示,例如,分析出一篇新闻文章中出现次数最多的词,我们可以采用词云图来显示。

二、词云图

1.什么是词云图

# 词云又叫文字云,
# 是对文本数据中出现频率较高的“关键词”在视觉上的突出呈现,
# 形成关键词的渲染形成类似云一样的彩色图片,
# 从而一眼就可以领略文本数据的主要表达意思。

2.制作词云图

2.1 制作英文词云图

1.准备要处理的数据

将内容放至指定文件中

2.导入需要用到的库

# wordcloud的实现原理:
 # 1.文本预处理 
 # 2.词频统计 
 # 3.将高频词以图片形式进行彩色渲染
 # 注意:Python用wordcloud 这个库构建词云图

3.将数据处理成词云

import wordcloud
from wordcloud import WordCloud
# 打开文章
a=open(r"C:\Users\admin\Desktop\Tx\youth.txt","r").readlines()
b=str(a)
# 处理数据
en=WordCloud(font_path="simhei.ttf", # 中文必须要添加这个,否则会显示成框框
background_color="white",
width=1200,
height=800,
).generate(b) # 向wordcloud库中对象en加载文本
en.to_file(r"C:\Users\admin\Desktop\Tx\youth1.png")

2.2 制作中文词云图

在之前的基础上使用用jieba 库将文字切分成单个的词,因为在英文中每个词中间有空格无需分割。

1.join的用法

#  join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
str1 = "-";
seq = ("a", "b", "c")
print (str1.join( seq ))

2.jieba分词有三个模式

import jieba t = "明明知识点都熟记于心,可是在考试的时候脑\ 子一片空白,什么都想不起来了" 
list1 = jieba.cut(t)
list2 = jieba.cut(t , cut_all= True)
list3 = jieba.cut_for_search(t) 
print("精准模式:"+'/'.join(list1)) 
print("全模式:"+'/'.join(list2)) 
print("搜索引擎模式:"+'/'.join(list3))

 

3.中文词云图

import wordcloud
from wordcloud import WordCloud
import jieba
# 1.读出数据
text=open("C:\\Users\\admin\\Desktop\\Tx\\youth_chinese.txt","r").readlines()
new_text=str(text)
# 2.进行中文分词
cut_text=jieba.cut(new_text)
# print(cut_text)
# 3.必须给个符号分隔开分词结果
result="/".join(cut_text)
# 生成词云图
wc=WordCloud(
    font_path="simhei.ttf", # 字体路径
    background_color="white", # 背景颜色
    width=600, # 设置图片的宽、长
    height=600,
    margin=10, #  设置图片的边缘
    max_font_size=30, # 设置字体大小
    min_font_size=5, 
    max_words=1000
    ).generate(result)
# 保存图片
wc.to_file("C:\\Users\\admin\\Desktop\\Tx\\Chinese.png")

三、总结

# 词云又叫文字云,
# 是对文本数据中出现频率较高的“关键词”在视觉上的突出呈现,
# 形成关键词的渲染形成类似云一样的彩色图片,
# 从而一眼就可以领略文本数据的主要表达意思

 

posted @ 2020-02-23 11:49  小小_小花儿  阅读(345)  评论(0编辑  收藏  举报