马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x

0 _ \8 Z5 F! n hello!大家好,今天张老师来讲解词云的具体应用实例,
7 f, j: l# e% z 词云技术可以帮助我们进行数据分析,数据库静态可视化操作。
, a O( x1 S" A& L# z 在上课之前请同学们先了解两个优秀的Python第三方库,他们分别是 jieba 和 wordcloud , + ~8 L O) E" i3 c6 h0 K
同学们有知道的吗?知道的同学请举个手! 其实在高中《信息技术》(必修一)中有提到过 jieba 库,这也是高中必修学习的课程,而 wordcloud 库是高中选修课程,好了,废话少说,直接上干货,如果有同学对这两个库还不太了解的,建议先脑补一下,老师提供了这两个库的学习帖子链接,登陆对应的 学习直通车 就可以参加在线学习,今天,老师以《新大榭python学习社区》数据分析为例进行案例讲解,让大家进一步了解 jieba 和 wordcloud 的详细应用及操作。
$ b5 f# _8 M0 r- m* _- jieba 库 ------------【学习直通车】(高中必修)
: A. ?# [& k7 w+ c
- wordcloud 库 ----【学习直通车】(高中选修)2 b: ]/ N$ O M1 x) f$ I% l
% T0 `$ N5 V3 X( n
下面我们以《新大榭python学习社区》为例进行数据词云效果展示,
3 T( i: x: V$ f, i4 b8 L( K首先下载待分析数据原始本文,注意编码保存为 utf-8 文本格式(text.txt)0 f8 n8 ?- W R/ k
9 P8 _$ y( e: Y% B i8 F
- y M9 y. q, q0 ^) F
图1: 未进行优化处理 - 原版效果图 ↑↑↑4 R0 Y$ g8 C+ l
, s9 A: `! K8 k
很明显默认高频词 的 在这里没有意义,所以需要过滤去除,类似的还有像“就”、“与”、“了”、“在”等等;- stop_words = ['的','就','与','了','在']
复制代码 同时通过for循环过滤词汇;把如下原默认代码
" W4 G6 s; _5 L' W3 h! j0 Q- w.generate(" ".join(jieba.lcut(text)))
复制代码 替换成" q( b+ K$ w2 y# ?
- w.generate(" ".join(k for k in jieba.lcut(text) if k not in stop_words))
复制代码 # s/ Y/ _) ]6 k3 l W
以上操作就是过滤关键词;
6 J* G. P" C+ P% ~4 v& ?反之还有一类词,计算器暂没收录,需要我们个性化收录,比如“仑中”,“蓝桥杯”,“第三方库” 等等0 I# U- {+ z7 _- X8 G
- jieba.add_word("仑中")& Y& l/ a) U5 z$ r$ r# O
- jieba.add_word("蓝桥杯")6 g) M% |" x5 r* d6 V1 a* Q0 v: W
- jieba.add_word("第三方库")
复制代码 ' Y+ b" e( {% D# ?
2 W" @" {3 @2 P: q X& E7 |
图2: 已进行优化处理 - 效果图 ↑↑↑
' ?! c+ T" B4 m* h( F$ d( ?. C5 ^1 _! a2 `
通过上述优化处理后我们不难发现数据标签云更加精准、概要,明了。' R+ L ^. ]! ]- R, {
这在数据分析统计学上我们称作过滤无效偏离量,使样本数据更准确! 4 o! v3 V a1 G: O& F# j& B% d2 t/ E
7 Q( K; ]' p! P/ c
图3: 已进行优化处理 - 效果图(背景白色) ↑↑↑
0 Q8 C4 @3 _3 x( i$ g
5 n3 R2 e' B9 d9 L: g核心代码片段如下 ↓↓↓0 W& |- L8 W* E5 v& ]: K7 x7 ?1 V% n
- import jieba+ B# D9 G9 `& `- T) n6 [
- import wordcloud
3 K' A' G* S& S0 y0 Y, N; i V
: z) ]7 U* O% G+ X M5 N- # 引入数据文本文件; H, D7 k. W" E1 M
- text = open('text.txt','r',encoding='UTF-8').read()) z N9 |0 c1 F/ K
- 7 D `( I$ [/ K9 g
- # 设置词云图片大小、字体及背景色(背景色默认黑色)
& |- E0 r" B2 g - w=wordcloud.WordCloud(font_path="C:\\Windows\\Fonts\\simhei.ttf",width=1000,height=700,background_color="black")
% l$ w+ K) _' Y! b# e - #w=wordcloud.WordCloud(font_path="C:\\Windows\\Fonts\\simhei.ttf",width=1000,height=700,mode='RGBA',background_color=None) # 白色背景模板( C! X& R4 s" \! W5 t) I& ^
- - N- a% ]: s4 E. a+ Q" B" N: `" c" h; c
- w.generate(" ".join(jieba.lcut(text)))9 \( r; X, z; E. T1 F- Z% `" h
- w.to_file("新大榭python学习社区_未优化.png") # 输出未优化词云标签' @; d! _- y, S& Z8 M# D h
8 _) _- a- \/ r" `- # 新增关键字词汇% | o+ C. z5 h6 M
- jieba.add_word("蓝桥杯")
6 f( D, m5 c* H% ~: w3 ` - jieba.add_word('仑中')
6 m3 p' {" l8 ?* @: M: j3 J - jieba.add_word('新高考'), s& n+ Z1 Q9 x; W( _5 `
- jieba.add_word('零基础'); H/ v$ g6 X8 ?0 P
- jieba.add_word('第三方库'): ` L9 ]" J+ j& Z* t1 O
- ) K V1 @. K3 R% v! H' t
- # 过滤干扰词汇
* |( E" B6 B7 I7 ~- S3 u1 R6 c1 c9 z - stop_words = ['以上','来','指由','作为','组','是','级','对学','大','只要','这里','等','你','的','如','有','就','则','均','了','本','但','和','而','被','与','在','或','以','注','如未','仅限','并用','限','将','于','不','物','及','专为','已','端','高']
" o0 q* F! T8 ~% u: w - w.generate(" ".join(k for k in jieba.lcut(text) if k not in stop_words))4 d0 G( b4 V, a c- B
- ! e1 `2 s. x& a0 n2 q+ x' e" ?
- # 输出图文! d& b H" t$ N3 T) \: @
- w.to_file("新大榭python学习社区_已优化.png") # 同时输出已优化词云标签
复制代码 注:当前课程已收录新大榭网校Python系列自编原创课程(*) |
-
-
7361-01.zip
896.18 KB, 下载次数: 219, 下载积分: 财富 -1 点
课件源代码免费下载
|