马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!
您需要 登录 才可以下载或查看,没有账号?注册
x
8 i3 t! l& E' F! g# G8 | hello!大家好,今天张老师来讲解词云的具体应用实例,
- G$ c& [7 s0 _1 f v0 f 词云技术可以帮助我们进行数据分析,数据库静态可视化操作。" {9 |+ e) l: D8 J. A" l B
在上课之前请同学们先了解两个优秀的Python第三方库,他们分别是 jieba 和 wordcloud , " x' V. h/ N- _- z" d
同学们有知道的吗?知道的同学请举个手! 其实在高中《信息技术》(必修一)中有提到过 jieba 库,这也是高中必修学习的课程,而 wordcloud 库是高中选修课程,好了,废话少说,直接上干货,如果有同学对这两个库还不太了解的,建议先脑补一下,老师提供了这两个库的学习帖子链接,登陆对应的 学习直通车 就可以参加在线学习,今天,老师以《新大榭python学习社区》数据分析为例进行案例讲解,让大家进一步了解 jieba 和 wordcloud 的详细应用及操作。
6 U2 k2 M9 R$ W: e/ W; ~: n- jieba 库 ------------【学习直通车】(高中必修)1 [: y) Y. s& D' M/ B) ~# T
- wordcloud 库 ----【学习直通车】(高中选修)
( \7 Z% d [5 O' x w, V6 J
1 e1 {) V& \9 ^
下面我们以《新大榭python学习社区》为例进行数据词云效果展示,
1 E5 h' E' o0 v: d首先下载待分析数据原始本文,注意编码保存为 utf-8 文本格式(text.txt)
6 K/ K7 z" n/ h, w. G$ n3 K# g7 d$ a6 Z* R( Y: H8 O# `
3 o7 \+ n5 Z! Y S图1: 未进行优化处理 - 原版效果图 ↑↑↑
9 W L& z, s* m, v2 h8 k! C* F' R
很明显默认高频词 的 在这里没有意义,所以需要过滤去除,类似的还有像“就”、“与”、“了”、“在”等等;- stop_words = ['的','就','与','了','在']
复制代码 同时通过for循环过滤词汇;把如下原默认代码
. ^, P$ F$ a+ ^. C, X; W; ?" v- w.generate(" ".join(jieba.lcut(text)))
复制代码 替换成
" O9 v4 T& X+ x- w.generate(" ".join(k for k in jieba.lcut(text) if k not in stop_words))
复制代码 % e. p" o) z6 A! M
以上操作就是过滤关键词;
# |# L& G/ y; m# X反之还有一类词,计算器暂没收录,需要我们个性化收录,比如“仑中”,“蓝桥杯”,“第三方库” 等等( }( R, R2 y4 o B4 R+ c
- jieba.add_word("仑中")
" h. H! [7 Y' x. D7 Q& ^8 u7 g7 m - jieba.add_word("蓝桥杯")
! c7 z( X+ I1 `* }" s5 s - jieba.add_word("第三方库")
复制代码
; A) a! }; D5 l- C% M N2 U6 B- b
/ t8 Z4 w8 [+ H* D1 z8 {
图2: 已进行优化处理 - 效果图 ↑↑↑- T* \9 @9 F; \$ H o9 d
" m! v5 x( t$ C0 k" b( y, g
通过上述优化处理后我们不难发现数据标签云更加精准、概要,明了。! g2 ^! [# N3 S# X' O
这在数据分析统计学上我们称作过滤无效偏离量,使样本数据更准确!
* Y* R* y2 Y1 a z' X
7 @. j& O& `5 ~9 G. [8 Q
图3: 已进行优化处理 - 效果图(背景白色) ↑↑↑. H" w0 S/ \# n( w0 j7 ]
1 K' U5 w/ S/ q: w8 g7 K
核心代码片段如下 ↓↓↓
6 X, b1 j. \1 `4 G& f) |- import jieba! {# K( W6 U, X/ C* i: I
- import wordcloud
) B1 y8 Q- X8 }* y0 E - 4 \- e+ L$ T: R5 l+ M
- # 引入数据文本文件' ~! H) m0 K# M1 c
- text = open('text.txt','r',encoding='UTF-8').read()
# W8 R5 c' N2 D9 P* Q2 V
4 g8 k3 _! p) h1 E" x- L; [6 r- # 设置词云图片大小、字体及背景色(背景色默认黑色)
' L# ]$ Z& [$ R - w=wordcloud.WordCloud(font_path="C:\\Windows\\Fonts\\simhei.ttf",width=1000,height=700,background_color="black")
" }0 T* i% n/ n/ [5 x6 S# | - #w=wordcloud.WordCloud(font_path="C:\\Windows\\Fonts\\simhei.ttf",width=1000,height=700,mode='RGBA',background_color=None) # 白色背景模板
; [' t% l# f( d6 C( I5 m5 b - ; f7 H% e+ @' D# H% u
- w.generate(" ".join(jieba.lcut(text)))5 c* s/ a3 S7 X0 \+ G! ~
- w.to_file("新大榭python学习社区_未优化.png") # 输出未优化词云标签
" D% R) @3 J5 |& f, ]8 u - - T" D& r) l' f9 h* S% N) V: ^# U8 r
- # 新增关键字词汇
' @. \( t# H3 e% ~. W - jieba.add_word("蓝桥杯")
5 M7 W$ n; a, ^& C- J, F2 i - jieba.add_word('仑中')
2 V* N4 S$ m1 ] - jieba.add_word('新高考')
' h4 u2 f/ C5 |# T- L; U+ D1 [ - jieba.add_word('零基础')
F% ?# ?* i- a, T9 Z: r$ i2 Y) j - jieba.add_word('第三方库')& e! [5 r) s3 o% a5 H- `/ |' J
' Y6 a3 m* j; R9 o6 a# J5 q, ?) Q- b- # 过滤干扰词汇! U+ e4 c3 ?: y' n2 Q
- stop_words = ['以上','来','指由','作为','组','是','级','对学','大','只要','这里','等','你','的','如','有','就','则','均','了','本','但','和','而','被','与','在','或','以','注','如未','仅限','并用','限','将','于','不','物','及','专为','已','端','高'], f0 t) e& X# E( }
- w.generate(" ".join(k for k in jieba.lcut(text) if k not in stop_words))
2 p5 {7 H( c) W
# l" D, d9 n: y& Y/ b- # 输出图文
) ~- a( a7 k! h, }9 V* Q4 L$ _ - w.to_file("新大榭python学习社区_已优化.png") # 同时输出已优化词云标签
复制代码 注:当前课程已收录新大榭网校Python系列自编原创课程(*) |
|