|
|

楼主 |
发表于 2021-8-8 21:15:28
|
显示全部楼层
【拓展篇 - 生成个性化词云】(暂未优化) , o5 p+ l- z8 a2 a) ^
/ @$ J/ J5 m& k. ^; f+ ?7 m+ v/ X$ W# Z0 Z+ Q- w
1 n4 l6 F1 v* d. F% S- # -*- coding: utf-8 -*-3 _' C3 }0 U# S( t( H& j
- import pickle & s% j D# P& `2 X# h
- from os import path
) b/ Z/ b# S& S& f' m8 J; m - import jieba 6 l( V; ^' l* Y! c
- import matplotlib.pyplot as plt ' k3 c" Y! S( P8 k8 Y
- from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator / `2 y9 [& f- p
- text ='' , \2 B4 w1 ? B7 i1 Q0 s
- with open('text.txt', 'r', encoding='utf8') as fin:
' M8 A! |" o+ G0 C& V3 v' d, k5 k - for line in fin.readlines():
6 H# ~' t8 A3 F# J; n - line = line.strip('\n') 2 c. L5 |6 M2 t g. A; a. Q/ P! t
- # sep’.join(seq)以sep作为分隔符,将seq所有的元素合并成一个新的字符串 # e" p. h* j, ?& D
- text += ' '.join(jieba.cut(line)) 2 Y6 h7 n. o s$ d- ?
- backgroud_Image = plt.imread('遮罩.jpg') #此处不能使用PNG图片 0 D9 n& G# x# n2 P; I5 a# w# e
- print('加载图片成功!')
& [: z$ z% @( n) p8 a! l
6 x5 R( s7 I1 A' A% ?: Q- '''设置词云样式'''
% L) n7 c5 N% s! s - wc = WordCloud(
9 u; L0 i. D( @2 Z9 O - background_color='white',# 设置背景颜色 " s9 S; `2 U, _
- mask=backgroud_Image,# 设置背景图片
6 p, l8 S" P" t( n: N# o } i - font_path='C:\Windows\Fonts\STZHONGS.TTF',# 若有中文的话,这句代码必须添加,不然会出现方框,不显示汉字
2 d3 G4 b9 |) ^# ]3 v6 ~7 R - max_words=1000, # 设置最大现实的字数 . @4 V# d; H5 q, T9 K! V6 `
- stopwords=STOPWORDS,# 设置停用词 , E' K' q: L" f
- max_font_size=120,# 设置字体最大值
# ~) ~$ _1 Y" d) J4 W3 } - random_state=30 # 设置有多少种随机生成状态,即有多少种配色方案
5 G; X. t; ]& [/ |. d; t# t - )
: S# @3 K( @0 B# d% A! H; n$ F - wc.generate_from_text(text) K! f. K6 Z7 c& H1 L8 E
- print('开始加载文本')1 W m/ O( l1 _. c7 N
" Z; @% V' I$ {# T0 W& s/ g( \! ^- #改变字体颜色 6 _; r- E- q/ }, g) N& |& s4 W
- img_colors = ImageColorGenerator(backgroud_Image)
* s' w+ J. e$ Y! X# b% x - #字体颜色为背景图片的颜色 0 |( I+ r. A% }/ O
- wc.recolor(color_func=img_colors) 7 F2 |# S3 V1 e% w, R6 ~% x
- # 显示词云图 p0 L9 Q2 |# _, u9 G8 [+ L
- plt.imshow(wc)
/ B* @0 M. l7 u% A/ w! | - # 是否显示x轴、y轴下标 ) y6 J" C) \- W. p. r
- plt.axis('off') 1 \7 i/ k) \6 A. B2 V
- plt.show()
( B7 ]! L/ o7 d# d$ g - # 获得模块所在的路径的
8 f) r8 ]* |5 f6 t" h4 P0 G - d = path.dirname('file')
& y! Z" [0 H% S' V. O - # os.path.join(): 将多个路径组合后返回 7 I! S& E$ [/ T* d0 F
- wc.to_file(path.join(d,'词云.png')) % k4 Y+ P. }! M9 j* M( j, Z, u9 @' m
- print('生成词云成功!')
复制代码 / Q+ H/ T. l4 V2 U) v/ G
|
-
-
7450-02.zip
554.6 KB, 下载次数: 0, 下载积分: 财富 -1 点
售价: 1 个金币 [记录]
[购买]
课件源代码下载(整套)
|