python-结巴分词+词云展示
需要库
import jieba # 分词
from matplotlib import pyplot as plt # 绘图
from wordcloud import WordCloud # 词云
from PIL import Image # 图片处理
import numpy as np # 矩阵运算
结果快览
词云制作步骤
- 准备文档字符串,并进行结巴分词
- 准备词云底图形状的图片并生成图片数组
- 准备系统字体路径
- 将分词填充到图片数组中
- 生成图片
源代码如下
#!/usr/bin/env python
# -- coding = 'gbk' --
# @Python : 3.7
# @OS : Windows 10 kiton.
# @Time : 2021/3/5 0:47
# @Author :
# @E-mail : 1154282938@qq.com
# @File : wordcloud1.py
# @Software: PyCharm
import jieba # 分词
from matplotlib import pyplot as plt # 绘图
from wordcloud import WordCloud # 词云
from PIL import Image # 图片处理
import numpy as np # 矩阵运算
text = r"先帝开创的大业未完成一半却中途去世了。现在天下分为三国,指蜀汉国力薄弱,处境艰难。这确实是国家危急存\
亡的时期啊。不过宫廷里侍从护卫的官员不懈怠,战场上忠诚有志的将士们奋不顾身,大概是他们追念先帝对他们的特别的\
知遇之恩(作战的原因),想要报答在陛下您身上。(陛下)你实在应该扩大圣明的听闻,来发扬光大先帝遗留下来的美德, \
振奋有远大志向的人的志气,不应当随便看轻自己,说不恰当的话,以致于堵塞人们忠心地进行规劝的言路。皇宫中\
和朝廷里的大臣,本都是一个整体,奖惩功过,不应有所不同。如有作恶违法的人,或行为忠善的人,都应该交给主管官\
吏评定对他们的惩奖,以显示陛下处理国事的公正严明,而不应当有偏袒和私心,使宫内和朝廷奖罚方法不同。侍中、侍\
郎郭攸之、费祎、董允等人,都是善良诚实、心志忠贞纯洁的人,他们的志向和心思忠诚无二。因此先帝选拔他们留给陛\
下。我认为宫中之事,无论事情大小,都拿来跟他商讨,这样以后再去实施,一定能够弥补缺点和疏漏之处。得到更多的好\
处。将军向宠,性格和品行善良公正,精通军事,从前任用时,先帝称赞他很有才能,因此众人商议推举他做中部督。我认\
为禁军营中的事,都拿来跟他商讨,就一定能使军队团结一心,不同才能的人各得其所。亲近贤臣,疏远小人,这是前汉所以\
兴盛的原因;亲近小人,疏远贤臣,这是后汉之所以衰败的原因。先帝在世的时候,每逢跟我谈论这些事情,未尝不叹息而痛恨\
桓帝、灵帝时期的腐败。侍中、尚书、长史、参军,这些人都是忠贞善良、守节不逾的大臣,望陛下亲近他们,信任他们,那么\
汉朝的复兴,就指日可待了。我本来是平民,在南阳亲自耕田,在乱世中苟且保全性命,不奢求在诸侯之中出名。先帝不因为我身\
份卑微,屈尊下驾来看我,三次去我的茅庐拜访我,征询我对时局大事的意见,我因此十分感动,就答应为先帝奔走效劳。后来\
遇到兵败,在兵败的时候接受任务,形势危急之时奉命出使,从这以来二十一年了。先帝知道我做事小心谨慎,所以临终时把\
国家大事托付给我。接受遗命以来,我日夜忧虑叹息,只怕先帝托付给我的大任不能实现,以致损伤先帝的知人之明,所以我五月\
渡过泸水,深入到人烟稀少的地方。现在南方已经平定,兵员装备已经充足,应当激励将领士兵,平定中原,希望用尽我平庸的才\
能,铲除奸邪凶恶的敌人,兴复汉室的任务托付给我,返还旧都.这是我用以报答先帝尽忠陛下的职责。至于处理事务,斟酌情理,\
毫无保留地贡献忠言,那是郭攸之、费祎、董允的责任。希望陛下能够把讨伐曹魏,兴复汉室的任务托付给我,若不能完成,就治\
我的罪,(从而)用来告慰先帝的在天之灵。如果没有振兴圣德的建议,那就责备郭攸之、费祎、董允等人的怠慢。来揭示他们的过\
失;陛下也应自行谋划,毫无保留地进献忠诚的建议,采纳正确的言论,深切追念先帝临终留下的教诲。我感激不尽。今天(我)将要\
告别陛下远行了,面对这份奏表禁不住热泪纵横,也不知说了些什么。"
cut = jieba.cut(text)
string = ' '.join(cut)
print(len(string))
# print(string)
img = Image.open(r'.\123.png')
img_array = np.array(img) # 将图片转化为数组
wc = WordCloud(
background_color='white',
mask=img_array,
font_path=r"C:\Windows\Fonts\msyh.ttc"
)
wc.generate_from_text(string)
# 绘制图片
fig = plt.figure(1)
plt.imshow(wc)
plt.axis('off') # 不显示坐标轴
plt.show()
运行结果
Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\ADMINI~1\AppData\Local\Temp\jieba.cache
Loading model cost 0.590 seconds.
Prefix dict has been built successfully.
2284
Process finished with exit code 0
显示的词云plot
网友评论