零基础Python做词云
网上做词云的教程无数,大多都是各种乱七八糟的库一大堆,其实词云超简单,come on!一起coding!
工具:
Python
(3以后的版本随意)
IDE:Pycharm
(IDE就是方便coding的一个程序,不会安装可以参考另一篇文章)
用到的库:worldcloud,imageio,jieba
正文讲解:
关于库:
wordcloud: 要想词云做的好,wordcloud少不了,worldcloud用于生成词云。
用到的函数:wordcloud.WordCloud().generate() : 就是这个函数造出的词云,第一个括号里填词云的各种参数,第二个括号里填自己分好词的文章
w.to_file():输出词云括号里为输出的名字
imageio: 用于导入图云的背景图片,worldcloud做出来的词云默认是长方形的,想要用其他背景图就用到了imageio。(所以这个库没有也无妨)
用到的函数:imageio.imread() : 括号里填背景图片的储存地址
jieba: jieba是用于分词的,把一句话分为割为词语。
用到的函数:jieba.cut()括号里填词云用的文章
安装库:打开设置,找到Project Interpreter
点击右上角的加号添加库
逐个搜索并点击下面的install package
开始coding
以QQ聊天记录制作词云为例:
- 新建文件
- 开始coding:
- 对于代码讲解
from imageio import imread
import wordcloud
import jieba
#导入所需库
temptext = [] #留着盛装中间文本
for word in open(r'D:\C and Python\全部消息记录.txt','r',encoding = 'utf-8'): #排除聊天记录里系统表情,系统显示的时间等等垃圾信息
tmp = word[0 : 4]
if (tmp == "2020" or tmp == "===="):#遇见垃圾信息直接跳过
continue
tmp = word[0:2]#同理跳过
if (tmp[0] == "[" or tmp[0] == "/"):
continue
temptext.append(word) #收集起来有用的信息
#print(newtext)
with open(r'D:\C and Python\处理后.txt','w',encoding='utf-8') as f: #将做好的中期文本存起来
for i in newtext:
f.write(i)
f.close() #写入一个txt里
text = open(r'D:\C and Python\处理后.txt','r',encoding='utf-8').read() #进入制作词云阶段
jieba.load_userdict(r'D:\C and Python\分词.txt')#此处为加入自己预先分的词,毕竟机器比较笨嘛!很可能一些词自己识别不出来。so加入自己分的词更好一点
word_jieba = jieba.cut(text) #进行分词,得到目标文本
word_result = " ".join(word_jieba) #将分好的词构成新的字符串
#print(word_result)
bg_pic = imread(r'D:\6wanDownload\background.png') #读取背景图片
w = wordcloud.WordCloud(font_path=r'D:\C and Python\兰亭粗黑简.TTF',mask=bg_pic,stopwords={"表情","亲爱的"},scale=1.5,background_color='white',
).generate(word_result) #设置词云相应参数,千万不要忘了设置字体font_path,wordcloud自身的字体处理中文词云容易产生无法显示,stopwords是指遇到这些词不统计,减少无用词语影响词云
w.to_file(r'D:\C and Python\摸鱼大师.jpg') #输出词云图片
得出成果:
是不是so easy ?
欢迎关注“摸鱼大师”,我们一起学习,一起coding!