前言
今天帶大家玩點好玩的東西,用Python製作自己朋友圈個性簽名的詞雲,有趣吧~好了,下面開始幹活。我知道你們還是想先看看效果的。
![項目分享|5步教你用Python製作朋友圈個性簽名](http://p2.ttnews.xyz/loading.gif)
環境準備
語言環境:Python 3.6
工具:Pycharm
操作系統:windows or MacOS
用到的擴展庫
itchat:用來收集微信相關信息。
jieba:是一個強大的分詞庫,完美支持中文分詞。
matplotlib:Matplotlib 是 Python 的繪圖庫。它可與 NumPy 一起使用,提供了一種有效的 MatLab 開源替代方案。它也可以和圖形工具包一起使用,如 PyQt 和 wxPython
wordcloud:以詞語為基本單位,更加直觀和藝術的展示文本的一個小詞雲生成器
import itchat
import re
import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud
from wordcloud import ImageColorGenerator
import numpy as np
import PIL.Image as Image
代碼實現
用 itchat 庫登錄微信後用 get_friends 方法獲取微信朋友全部信息,信息包括:暱稱、備註名、性別、地區、個性簽名等等。個性簽名用的是 Signature 字段,很多我們不需要的我們可以選擇性剔除,例如:空格,表情等
signlist = []
itchat.auto_login() #登錄微信
friends = itchat.get_friends(update=True)[0:]
for i in friends:
signature = i['Signature'].strip().replace('span','').replace('class','').replace('emoji','').replace('\\n','').replace('\\"','') #去除無用字符
rep = re.compile("1f\\d+\\w*|[<>/=]")
signature = rep.sub('',signature)
signlist.append(signature)
text = "".join(signlist)
分詞
簡單來說就是將一句話拆分開來,例如【今天也是充滿希望的一天】,可以拆分為【今天,也是,充滿,希望,的,一天】
#分詞
cut = jieba.cut(text,cut_all=True)
word = ",".join(cut)
print(word)
繪製詞雲
把上面所有的中文分詞進行處理,做成詞雲,選擇一張圖片作為背景。詞雲還擁有以下幾種屬性:背景顏色、最大單詞數、畫布圖片、最大字體數、字體路徑(電腦自帶)、畫布比例等。
然後用 matplotlib 庫把圖的顏色、分詞內容寫人並顯示出來。
coloring = np.array(Image.open("F:\\\\photo.jpg")) # 電腦中自定義詞雲的圖片
my_wordcloud = WordCloud(background_color="white", max_words=2000,mask=coloring, max_font_size=70, random_state=48,font_path='./font/msyh.ttf',scale=2).generate(word) # 定義詞雲背景圖顏色、尺寸、字體大小、電腦中字體選擇,random_state 為每個單詞返回一個PIL顏色,字體路徑,畫布比例
image_colors = ImageColorGenerator(coloring)
plt.imshow(my_wordcloud.recolor(color_func=image_colors)) # 繪圖顏色
plt.imshow(my_wordcloud) # 繪圖內容
plt.axis("off")
plt.show() # 顯示圖片
保存自己的詞雲,搞定
d = path.dirname(__file__) # project 當前目錄
my_wordcloud.to_file(path.join(d, 'xxx.png'))
總結
區區幾十行代碼,輕輕鬆鬆就可以製作自己朋友圈個性簽名的詞雲,無論是生活還是工作,我們沒有理由不去利用編程來大幅度提高自己的效率了。
除此之外,簡單的Python技術,還可以在工作和生活中實現許多有趣、實用的功能:
● 比如有人用來做股票分析;
● 有人想轉行前端,爬過拉勾網裡所有前端職位的招聘需求,然後從中分析出哪些框架要求的多,就專攻那些框架學習,再去去找工作;
● 有人用python輕鬆爬取千張表情包,再也不怕鬥圖了;
● 有人觀影前爬取某電影的貓眼評論和評分,更準確地從眼花繚亂的評論中分析,大家對這電影打高分或低分的原因,還做成了關鍵詞詞雲……
Python可以為我們的好奇心買單,通過合理設置爬蟲和分析工具,我們的生活會遠遠比目前看到的更加精彩和多樣化。
還沒開啟Python學習的你,不要再在猶豫中耗盡所有可能!
閱讀更多 扣丁寶寶 的文章