一、词云(此次云中的词语是少年中国说)
首先,大家得先熟悉一下词云:
词云库(Wordcloud)是一个用于生成词云图的Python库。 词云图是一种可视化的方式,用于展示文本数据中出现频率较高的词汇。 通过将文本中的词汇按照其出现的频率进行大小排序,然后将这些词汇以特定的形状、颜色等元素组合成一个图形,从而直观地展示文本的主题和关键词。(来源于网络)
以下是几个常用的代码
变量名 = wordcloud.WordCloud( width= ,height= ,stopwords= ,font_path= )
这里的括号里面如果不填东西的话(包括那4个单词),会默认成宽400px,高200 px的图片,width和height分别指宽和高。stopwords是停用单词(就不会显示的意思),默认有is,a,or等,后面会教如何添加自己不想要出现的单词。第四个是字体,因为如果直接引用汉字的话,他会变乱码,所以这里要更改,苹果常用字体:PingFang.ttc;Windows常用字体:simhei.ttf;我本人是Windows系统的,所以别的字体也知道在哪里存储着,在C:\Windows\Fonts里面储存着(为了后续操作方便,这里先用变量存储起来)当然还有其它参数,实在太多,就列举以下几种吧
wordcloud的参数 | 意思 |
---|---|
width | 宽 |
height | 高 |
font_path | 字体 |
stopwords | 停用词 |
background_color | 背景颜色 |
colormap | 字体颜色 |
变量名.generate(text)
text指的是本文内容在这里就不过多解释了
变量名.to_file('文件名.jpg')
这个是保存语句,支持两种格式,.jpg和.png,文件名可以自己想
(1)jieba分词库
因为我们要制作的是词云,肯定得是词语,但是直接用生成词云语句的话,就会变句子,所以就要用jieba分词库分一下词。代码如下
import jieba
test = jieba.lcut()
#因为结果是列表,所以还要变成字符串
test = ' '.join(test)
二、弹窗
弹窗都知道吧,就是各种提示,这里也不详说了,上代码:
import tkinter as tk # 导入tkinter模块。为了方便后续讲解,命名为 tk。
import tkinter.messagebox # 引入弹窗库,防止解释器弹出报错。
def display_messagebox():
tk.messagebox.showinfo(title='消息',
message='你好!')
display_messagebox()
运行结果
三、读取和展示
代码:
from PIL import Image
f = open('文件名.txt', encoding='utf-8')#这里的文件名要填成对应的文件名
text = f.read()
f.close()
photo = Image.open('文件名.jpg')#这里的文件名要填成对应的图片文件名
photo.show()
四、代码展示
from PIL import Image
import wordcloud
import tkinter as tk # 导入tkinter模块。为了方便后续讲解,命名为 tk。
import tkinter.messagebox # 引入弹窗库,防止解释器弹出报错。
import jieba
s = set(wordcloud.STOPWORDS)
s.add('list')
f = open('少年中国说.txt', encoding='utf-8')
text = f.read()
f.close()
text = jieba.lcut(text)
text = ' '.join(text)
print('开始绘制词云···')
w = wordcloud.WordCloud( width=1000,height=500,font_path= 'STKAITI.TTF')#这里用的是Windows的楷体,Mac可能会报错,可以修改为font_path='PingFang.ttc'
print('正在生成图片···')
w.generate(text)
print('正在保存图片···')
w.to_file('词云测试文件1.jpg')
def display_messagebox():
tk.messagebox.showinfo(title='消息',
message=('图片保存完成!') # 信息确认弹窗 确定
display_messagebox()
def display_messagebox_show():
tk.messagebox.showinfo(title='消息',
message=('正在展示中...') # 信息确认弹窗 确定
display_messagebox_show()
def display_messagebox_warning():
tk.messagebox.showerror(title='错误',
message=('展示失败...') # 信息确认弹窗 确定
display_messagebox_warning()
def display_messagebox_one():
tk.messagebox.showinfo(title='消息',
message=('正在重新展示...') # 信息确认弹窗 确定
display_messagebox_one()
photo = Image.open('词云测试文件1.jpg')
photo.show()
def display_messagebox():
tk.messagebox.showinfo(title='消息',
message=('展示成功!') # 信息确认弹窗 确定 True或 取消 False
display_messagebox()
少年中国说.txt内容:
中国而为牛、为马、为奴、为隶,则烹脔鞭棰之惨酷,惟我少年当之。中国如称霸宇内,主盟地球,则指挥顾盼之尊荣,惟我少年享之。于彼气息奄奄与鬼为邻者何与焉?彼而漠然置之,犹可言也;我而漠然置之,不可言也。使举国之少年而果为少年也,则吾中国为未来之国,其进步未可量也。使举国之少年而亦为老大也,则吾中国为过去之国,其澌亡可翘足而待也。故今日之责任,不在他人,而全在我少年。少年智则国智,少年富则国富,少年强则国强,少年独立则国独立,少年自由则国自由,少年进步则国进步,少年胜于欧洲则国胜于欧洲,少年雄于地球则国雄于地球。红日初升,其道大光。河出伏流,一泻汪洋。潜龙腾渊,鳞爪飞扬。乳虎啸谷,百兽震惶。鹰隼试翼,风尘翕张。奇花初胎,矞矞yù皇皇。干将发硎xíng,有作其芒。天戴其苍,地履其黄。纵有千古,横有八荒。前途似海,来日方长。美哉我少年中国,与天不老!壮哉我中国少年,与国无疆!
“三十功名尘与土,八千里路云和月。莫等闲,白了少年头,空悲切。”此岳武穆《满江红》词句也,作者自六岁时即口受记忆,至今喜诵之不衰。自今以往,弃“哀时客”之名,更自名曰“少年中国之少年”。
第十行那里要换行
运行结果
本期在这里就结束了。
*注:如有遗漏,还请指出