python生成词云_今天玩点啥:使用python生成微信好友地域分析、微信昵称、个性签名词云...
生活随笔
收集整理的這篇文章主要介紹了
python生成词云_今天玩点啥:使用python生成微信好友地域分析、微信昵称、个性签名词云...
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
# -*- coding: UTF-8 -*-
from wxpy import *from wxpy import *
from os import path
import re, jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud,ImageColorGenerator
import matplotlib.font_manager as fm
# 初始化一個機器人對象
# cache_path緩存路徑,給定值為第一次登錄生成的緩存文件路徑
bot = Bot()
#獲取好友列表(包括自己)
my_friends = bot.friends(update=False)
'''
stats_text 函數(shù):幫助我們簡單統(tǒng)計微信好友基本信息
簡單的統(tǒng)計結(jié)果的文本:param total: 總體數(shù)量:param sex: 性別分布:param top_provinces: 省份分布:param top_cities: 城市分布:return: 統(tǒng)計結(jié)果文本
'''
print(my_friends.stats_text())
# 清洗數(shù)據(jù),生成詞云圖
#獲取當前的項目文件加的路徑
#讀取停用詞表
stopwords_path='static/stopwords.txt'#定義個函數(shù)式用于分詞
def jiebaclearText(text):#定義一個空的列表,將去除的停用詞的分詞保存mywordList=[]#進行分詞seg_list=jieba.cut(text,cut_all=False)#將一個generator的內(nèi)容用/連接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()#關(guān)閉資源#將停用詞格式化,用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", # 設(shè)置背景為白色,默認為黑色width=990, # 設(shè)置圖片的寬度height=440, # 設(shè)置圖片的高度mask=bg,margin=10, # 設(shè)置圖片的邊緣max_font_size=70, # 顯示的最大的字體大小random_state=20, # 為每個單詞返回一個PIL顏色font_path='static/simkai.ttf' # 中文處理,用系統(tǒng)自帶的字體).generate(text1)# 為圖片設(shè)置字體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)
總結(jié)
以上是生活随笔為你收集整理的python生成词云_今天玩点啥:使用python生成微信好友地域分析、微信昵称、个性签名词云...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内存位置访问无效 midas.dll_内
- 下一篇: jsp文件上传_文件上传