1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python生成词云_今天玩点啥:使用python生成微信好友地域分析 微信昵称 个性签名词云...

python生成词云_今天玩点啥:使用python生成微信好友地域分析 微信昵称 个性签名词云...

时间:2019-09-05 01:25:18

相关推荐

python生成词云_今天玩点啥:使用python生成微信好友地域分析 微信昵称 个性签名词云...

# -*- coding: UTF-8 -*-from wxpy import *from wxpy import *from os import pathimport re, jiebaimport matplotlib.pyplot as pltfrom wordcloud import WordCloud,ImageColorGeneratorimport matplotlib.font_manager as fm# 初始化一个机器人对象# cache_path缓存路径,给定值为第一次登录生成的缓存文件路径bot = Bot()#获取好友列表(包括自己)my_friends = bot.friends(update=False)'''stats_text 函数:帮助我们简单统计微信好友基本信息简单的统计结果的文本:param total: 总体数量:param sex: 性别分布:param top_provinces: 省份分布:param top_cities: 城市分布:return: 统计结果文本'''print(my_friends.stats_text())# 清洗数据,生成词云图#获取当前的项目文件加的路径#读取停用词表stopwords_path='static/stopwords.txt'#定义个函数式用于分词def jiebaclearText(text):#定义一个空的列表,将去除的停用词的分词保存mywordList=[]#进行分词seg_list=jieba.cut(text,cut_all=False)#将一个generator的内容用/连接listStr='/'.join(seg_list)listStr = listStr.replace("class","")listStr = listStr.replace("span", "")listStr = listStr.replace("emoji", "")#打开停用词表f_stop=open(stopwords_path,encoding="utf8")#读取try:f_stop_text=f_stop.read()finally:f_stop.close()#关闭资源#将停用词格式化,用n分开,返回一个列表f_stop_seg_list=f_stop_text.split("n")#对默认模式分词的进行遍历,去除停用词for myword in listStr.split('/'):#去除停用词if not(myword.split()) in f_stop_seg_list and len(myword.strip())>1:mywordList.append(myword)return ' '.join(mywordList)# 生成词云图def make_wordcloud(text1,i):bg = plt.imread(r"image/heart.jpg")# 生成wc = WordCloud(# FFFAE3background_color="#FFFFFF", # 设置背景为白色,默认为黑色width=990, # 设置图片的宽度height=440, # 设置图片的高度mask=bg,margin=10, # 设置图片的边缘max_font_size=70, # 显示的最大的字体大小random_state=20, # 为每个单词返回一个PIL颜色font_path='static/simkai.ttf' # 中文处理,用系统自带的字体).generate(text1)# 为图片设置字体my_font = fm.FontProperties(fname='static/simkai.ttf')# 图片背景bg_color = ImageColorGenerator(bg)# 开始画图plt.imshow(wc.recolor(color_func=bg_color))# 为云图去掉坐标轴plt.axis("off")# 画云图,显示# 保存云图wc.to_file(r"image/render_0%d.png"%i)# 微信昵称nick_name = ''# 微信个性签名wx_signature = ''for friend in my_friends:# 微信昵称:NickNamenick_name = nick_name + friend.raw['NickName']# 个性签名:Signaturewx_signature = wx_signature + friend.raw['Signature']nick_name = jiebaclearText(nick_name)wx_signature = jiebaclearText(wx_signature)make_wordcloud(nick_name,1)make_wordcloud(wx_signature,2)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。