|
马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
& Z. f# h9 B4 x
hello!大家好,今天张老师来讲解词云的具体应用实例,9 s/ r; ^5 `- m* k9 T) K
词云技术可以帮助我们进行数据分析,数据库静态可视化操作。
# r' E7 R+ }2 f! L/ r Q( H 在上课之前请同学们先了解两个优秀的Python第三方库,他们分别是 jieba 和 wordcloud ,
% d6 [5 l1 a# O d1 Q \$ q3 c 同学们有知道的吗?知道的同学请举个手! 其实在高中《信息技术》(必修一)中有提到过 jieba 库,这也是高中必修学习的课程,而 wordcloud 库是高中选修课程,好了,废话少说,直接上干货,如果有同学对这两个库还不太了解的,建议先脑补一下,老师提供了这两个库的学习帖子链接,登陆对应的 学习直通车 就可以参加在线学习,今天,老师以《新大榭python学习社区》数据分析为例进行案例讲解,让大家进一步了解 jieba 和 wordcloud 的详细应用及操作。
# v! \8 f% B/ W9 J' X$ \ @- jieba 库 ------------【学习直通车】(高中必修)8 I5 \% E* k5 S* i
- wordcloud 库 ----【学习直通车】(高中选修)
& ^+ `$ q# a" H: M" u: ?, @6 o
6 d5 M7 X' d2 Q' T. r下面我们以《新大榭python学习社区》为例进行数据词云效果展示," ]" W. ^" R, I8 U! G2 Z; t. x
首先下载待分析数据原始本文,注意编码保存为 utf-8 文本格式(text.txt)
* {9 V K& U2 f* d# A/ J( O3 j
! {" }" O9 C, `0 m7 f
# x; {6 L* C: \图1: 未进行优化处理 - 原版效果图 ↑↑↑' B2 k. t% w( y2 b* ^( [+ V9 A
* u5 Y/ N6 s: t+ ?7 f- O很明显默认高频词 的 在这里没有意义,所以需要过滤去除,类似的还有像“就”、“与”、“了”、“在”等等;- stop_words = ['的','就','与','了','在']
复制代码 同时通过for循环过滤词汇;把如下原默认代码
0 g, ]" n1 c8 f" u% u% K; Z- w.generate(" ".join(jieba.lcut(text)))
复制代码 替换成
) g# m0 u, w$ _- w.generate(" ".join(k for k in jieba.lcut(text) if k not in stop_words))
复制代码 / ?) b1 z# ]' j2 I6 ^3 q2 [* v) P
以上操作就是过滤关键词;
% A' ~& g) p8 w反之还有一类词,计算器暂没收录,需要我们个性化收录,比如“仑中”,“蓝桥杯”,“第三方库” 等等- r9 ^9 U' G# H' r8 ~1 G% w
- jieba.add_word("仑中")
4 R) I/ V5 ~/ D+ i& B- x4 e - jieba.add_word("蓝桥杯")
. I" z+ t! _$ p: m! P/ P - jieba.add_word("第三方库")
复制代码 6 H2 m* A* j/ G' L# w4 E
- t) V5 B6 R# |$ S
图2: 已进行优化处理 - 效果图 ↑↑↑1 N0 S6 r0 r) @2 P: E+ g; ?& h3 R7 a
" N2 \) ^& ~. w7 A' f0 E
通过上述优化处理后我们不难发现数据标签云更加精准、概要,明了。
8 L a% d# g* v) l/ R0 m这在数据分析统计学上我们称作过滤无效偏离量,使样本数据更准确!
4 S+ `" z, r+ b5 f9 d
, y' D, x1 k) P
图3: 已进行优化处理 - 效果图(背景白色) ↑↑↑
8 r. M) ?. r) x4 u/ m& T' g* q5 g% g, L
核心代码片段如下 ↓↓↓
% @) ~' [$ P, J+ G) V( L- import jieba# U+ Q3 Y+ E7 a/ D# y/ A
- import wordcloud
" r# f- E3 e8 a4 J4 J* S( I
3 G/ P3 c8 e/ t1 I- # 引入数据文本文件2 U0 z+ O, ~5 Y8 m5 Z9 e* {
- text = open('text.txt','r',encoding='UTF-8').read()# Y# j A6 A: u* g' g
- * `, k1 s; W* D: u# O9 S
- # 设置词云图片大小、字体及背景色(背景色默认黑色)4 o& r, A0 ]% A) ~
- w=wordcloud.WordCloud(font_path="C:\\Windows\\Fonts\\simhei.ttf",width=1000,height=700,background_color="black")3 c7 a- h L) K. W. }! u
- #w=wordcloud.WordCloud(font_path="C:\\Windows\\Fonts\\simhei.ttf",width=1000,height=700,mode='RGBA',background_color=None) # 白色背景模板* G2 ]6 K0 B& s {1 S
- 4 u4 J5 h3 z6 j' U' y: s# |2 }/ B2 J
- w.generate(" ".join(jieba.lcut(text)))7 c5 d) Q, F% F. a/ [
- w.to_file("新大榭python学习社区_未优化.png") # 输出未优化词云标签+ T; a! h- X6 i/ K
. n# t7 V) z3 ], f& F c) I! `; Y) O- # 新增关键字词汇% u- P3 b+ B* G9 {& k7 e9 }
- jieba.add_word("蓝桥杯")7 G6 A. h) y( S I( G$ d/ Y3 Q
- jieba.add_word('仑中')
$ e7 x1 J! v8 ^ - jieba.add_word('新高考')
7 r6 I6 y6 x5 f& I7 ~3 `( `& K/ J2 v - jieba.add_word('零基础')
+ i4 C8 w y( R1 v" M W - jieba.add_word('第三方库')
w8 W) O# L" O) _3 y6 w
6 \$ P! b7 ~0 \. Z! p! `- # 过滤干扰词汇6 e% H- r- K4 Q1 c
- stop_words = ['以上','来','指由','作为','组','是','级','对学','大','只要','这里','等','你','的','如','有','就','则','均','了','本','但','和','而','被','与','在','或','以','注','如未','仅限','并用','限','将','于','不','物','及','专为','已','端','高']: b0 ]2 Y: N* l4 R" \6 R9 ?
- w.generate(" ".join(k for k in jieba.lcut(text) if k not in stop_words))
: ?) e& t6 [% h - : Z0 W/ c# {$ i+ x# X
- # 输出图文8 i; o. J4 k. ~' o
- w.to_file("新大榭python学习社区_已优化.png") # 同时输出已优化词云标签
复制代码 注:当前课程已收录新大榭网校Python系列自编原创课程(*) |
|