利用python做微信公眾號標題的詞雲圖
阿新 • • 發佈:2021-02-10
一、標題資料的獲取
1.通過微信公眾平臺後臺網頁,左側的統計模組來下載相應的資料,單獨把標題複製出來,形成檔案形式;
2.通過網頁爬蟲來爬取。
二、詞雲圖製作過程
1.引入需要的庫
import wordcloud
import jieba
2.讀取檔案並檢視檔案
#讀取檔案
wf = open("title.txt","r",encoding='utf8').read()
print(wf)
3.利用jieba分詞
cut_text = jieba.lcut(wf,cut_all=False )
result = ' '.join(cut_text) #轉為字串
print(result)
#獲取停用詞表,注意詞雲圖的結果不想有單字的情況,需要使用該表,但是這個檔案表要排除的字並不完善,可以根據自己的結果往裡面加字,記得儲存即可
stop = open('stopwords.txt', 'r+', encoding='utf-8')
stopword = stop.read().split("\n")
4.生成wordcloud物件
mywordcloud = wordcloud.WordCloud(font_path="C:\\Windows\\Fonts\\FZYTK.TTF" ,width=1000,height=1000,background_color="white",max_words=100,stopwords=stopword)
#儲存詞雲圖檔案
mywordcloud.generate(result)
mywordcloud.to_file("weixin.png")
5.展示詞雲圖來檢視一下
import matplotlib.pyplot as plt
plt.figure('weixin')
plt.axis('off')
plt.imshow(mywordcloud)
plt.show()
詞雲結果圖:
三、擴充套件:詞頻統計
"""
import collections
object_list=[]
#對於關鍵詞還是參考另一個清洗好的
for word in wf:
object_list.append(word)
# 迴圈讀出每個分詞
# 如果不在去除詞庫中
# 分詞追加到列表
word_counts = collections.Counter(object_list) # 對分詞做詞頻統計
word_counts_top10 = word_counts.most_common(10) # 獲取前10最高頻的詞
print (word_counts_top10) # 輸出檢查
"""
import jieba
def takeSecond(elem):
return elem[1]
def main():
path = "title.txt"
file = open(path,'r',encoding="utf-8")
text=file.read()
file.close()
words = jieba.lcut(text)
counts = {}
for word in words:
if len(word) == 1:
continue
else:
counts[word] = counts.get(word,0) + 1
items = list(counts.items())
items.sort(key = takeSecond,reverse=True)
for i in range(22):
item=items[i]
keyWord =item[0]
count=item[1]
#print("{0:<10}{1:>5}".format(keyWord,count))
#print("{0:<10s} {1:<30}".format(keyWord,count,chr(12288)))
#{0:{3}^10}\t{1:{3}^10}\t{2:^10}
print("{0:<15s}{1:<15}".format(keyWord,count))
"""
題中0對應的是Word,1對應的是count。
其次,冒號是引導符,後面跟的是格式控制方法。<表示左對齊,>表示右對齊,數字表示寬度。
同理,題中<10表示左對齊,並佔10個位置,>5表示右對齊,佔5個位置。
chr(12288)是中文的空格
"""
main()