马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
. l) w$ x6 f; ~1 t
hello!大家好,今天张老师来讲解词云的具体应用实例,7 [* b) T* Y5 w' T+ q. v
词云技术可以帮助我们进行数据分析,数据库静态可视化操作。
/ q. Z$ R6 [' m' e" \. e 在上课之前请同学们先了解两个优秀的Python第三方库,他们分别是 jieba 和 wordcloud , , q5 I# [* Q8 P) D- C
同学们有知道的吗?知道的同学请举个手! 其实在高中《信息技术》(必修一)中有提到过 jieba 库,这也是高中必修学习的课程,而 wordcloud 库是高中选修课程,好了,废话少说,直接上干货,如果有同学对这两个库还不太了解的,建议先脑补一下,老师提供了这两个库的学习帖子链接,登陆对应的 学习直通车 就可以参加在线学习,今天,老师以《新大榭python学习社区》数据分析为例进行案例讲解,让大家进一步了解 jieba 和 wordcloud 的详细应用及操作。
4 H5 u9 r4 I% p8 o- jieba 库 ------------【学习直通车】(高中必修)) R& I; R% L% H& g" I
- wordcloud 库 ----【学习直通车】(高中选修)
. v& i; R9 a' V* r: ?% Q* T
& `8 S0 ]& l$ q) q1 A0 P5 m
下面我们以《新大榭python学习社区》为例进行数据词云效果展示,5 R; h K& M6 W3 f: @; K
首先下载待分析数据原始本文,注意编码保存为 utf-8 文本格式(text.txt)
% r J+ R) a" U1 j6 |8 G
. Z. h. U c1 f0 }
0 m2 |! I" j4 z, b
图1: 未进行优化处理 - 原版效果图 ↑↑↑- T& r) B8 f" F S
: ~* f) k' k8 g" X5 ]/ A: L' l: L很明显默认高频词 的 在这里没有意义,所以需要过滤去除,类似的还有像“就”、“与”、“了”、“在”等等;- stop_words = ['的','就','与','了','在']
复制代码 同时通过for循环过滤词汇;把如下原默认代码
; C" n( @. V Q. P- w.generate(" ".join(jieba.lcut(text)))
复制代码 替换成$ Y7 g, }1 x8 g6 K" _
- w.generate(" ".join(k for k in jieba.lcut(text) if k not in stop_words))
复制代码 ) @+ s. m) O, Z) x
以上操作就是过滤关键词;
! o3 W3 v6 b: I! |# z7 I2 O反之还有一类词,计算器暂没收录,需要我们个性化收录,比如“仑中”,“蓝桥杯”,“第三方库” 等等
0 X. f; E) \. I$ P2 L" F# M9 }0 p- jieba.add_word("仑中")5 V2 Q6 U2 ^! \1 u9 `& q& t( Y
- jieba.add_word("蓝桥杯")0 g1 {$ ?' z7 \" p5 v' @
- jieba.add_word("第三方库")
复制代码
, o3 F5 V* K2 B/ B! p
# d' ?1 Y9 p+ d# A9 \& W% X/ Q图2: 已进行优化处理 - 效果图 ↑↑↑
; H& [1 k6 _: k" j9 |9 i% x( E6 k9 X% }! F$ M: ~
通过上述优化处理后我们不难发现数据标签云更加精准、概要,明了。8 T6 H( ~, X- U1 O/ i
这在数据分析统计学上我们称作过滤无效偏离量,使样本数据更准确! & L# e" b! \2 H- u% E3 P- w
2 a2 t8 x8 ^- _/ q# Q" e' n3 |) X
图3: 已进行优化处理 - 效果图(背景白色) ↑↑↑
( W* E+ M& V2 Y4 ] b+ P( K; o: W; e' o {9 l) {
核心代码片段如下 ↓↓↓
. P5 s2 a z3 T7 ?6 ], r' L- import jieba; o( {- J6 Q1 |2 m: Z' k, P9 Q* Q
- import wordcloud
% L! E5 S, R9 p" j, @
" a* T M6 ]. \" }6 k4 t$ I& d- # 引入数据文本文件
; ~+ o8 W8 M+ v - text = open('text.txt','r',encoding='UTF-8').read()8 j) c. M; R% h
9 K! q* b4 f* R1 w' S I- `- # 设置词云图片大小、字体及背景色(背景色默认黑色)
- l8 F Y3 [1 D# F- K7 T' b$ d - w=wordcloud.WordCloud(font_path="C:\\Windows\\Fonts\\simhei.ttf",width=1000,height=700,background_color="black") P' \8 L2 ?, S! [$ ? J
- #w=wordcloud.WordCloud(font_path="C:\\Windows\\Fonts\\simhei.ttf",width=1000,height=700,mode='RGBA',background_color=None) # 白色背景模板
$ L p, j3 a7 f6 q0 b - * M4 u/ B- P% K+ v4 q) I6 O2 H
- w.generate(" ".join(jieba.lcut(text)))
_ a. m/ S" W( c G1 b- g - w.to_file("新大榭python学习社区_未优化.png") # 输出未优化词云标签
$ t# D- a3 D. [' o" S. B- k Y
) z6 z; U+ C) V- S5 H0 u H" h5 r- # 新增关键字词汇, k5 e8 O3 f" b5 c$ _: J
- jieba.add_word("蓝桥杯")
9 U9 }5 D) `) w) c( ?8 M - jieba.add_word('仑中')
# ]" s2 m8 C& u - jieba.add_word('新高考'): B @' J5 A8 U {( b# W$ J8 c$ I: ~
- jieba.add_word('零基础')
0 J4 O6 x# R+ G' A, x K7 I# Y2 Q; O, O - jieba.add_word('第三方库'); P( e, K2 P [, I/ |6 ~
' Q! D. \" \7 _4 b7 F$ N* A7 J" D- # 过滤干扰词汇
0 y* D2 `- y L - stop_words = ['以上','来','指由','作为','组','是','级','对学','大','只要','这里','等','你','的','如','有','就','则','均','了','本','但','和','而','被','与','在','或','以','注','如未','仅限','并用','限','将','于','不','物','及','专为','已','端','高']# W9 d# M8 o/ p. _2 _+ S) ?
- w.generate(" ".join(k for k in jieba.lcut(text) if k not in stop_words))
4 r2 p) I/ g+ }. ?7 p: x; C - 8 D+ D; }* \% S8 G! {. B
- # 输出图文
+ P! O' n! K4 u7 y/ \# N; A - w.to_file("新大榭python学习社区_已优化.png") # 同时输出已优化词云标签
复制代码 注:当前课程已收录新大榭网校Python系列自编原创课程(*) |
-
-
7361-01.zip
896.18 KB, 下载次数: 219, 下载积分: 财富 -1 点
课件源代码免费下载
|