本文要解決的問(wèn)題是如何給校園網(wǎng)推送的文章起個(gè)“親人”并且“受歡迎”的名字蝴蜓。
詞頻反映了詞匯的親人度总寻,而聚類分析則把受歡迎的題目篩選出來(lái)搀军,并從分析部分文章內(nèi)容總結(jié)其特點(diǎn)。
通過(guò)Python爬取校園網(wǎng)特定欄目文章的標(biāo)題沙郭、閱讀量和回復(fù)量,然后用jieba分詞分好所有的文章標(biāo)題裳朋,最后對(duì)文章的閱讀量和回復(fù)量進(jìn)行聚類分析病线,得到結(jié)果。同時(shí)鲤嫡,也爬取所有流行公眾號(hào)咪蒙的文章題目作為一個(gè)參考送挑。
全文分為三部分:
1 通過(guò)python 爬取校園網(wǎng)數(shù)據(jù)和傳送門(mén)咪蒙的所有文章標(biāo)題數(shù)據(jù)放入本地放入本地
2 畫(huà)出二者的云圖
3 對(duì)校園網(wǎng)標(biāo)題做聚類分析
本篇文章就第二、三部分進(jìn)行闡述暖眼。
- 畫(huà)出睿思文章標(biāo)題云圖
# 給文章標(biāo)題分詞惕耕,并畫(huà)出云圖
# coding:utf-8
import matplotlib.pyplot as plt
import csv
from wordcloud import WordCloud
import jieba
import codecs
import pandas as pd
import parse
fc = pd.read_csv(r'/Users/zhangyi/Desktop/2.csv') # 讀取CSV文件
f1 = fc['title'].drop_duplicates() # 從中抽取標(biāo)題列
f1.to_csv('/Users/zhangyi/Desktop/1.txt', index=False) # pandas寫(xiě)入txt
textfc = codecs.open('/Users/zhangyi/Desktop/1.txt').read() #讀txt
wordlist_jieba = jieba.cut(textfc, cut_all=False) #結(jié)巴分詞
wl_jieba = " ".join(wordlist_jieba)
fc_worldcloud = WordCloud().generate(wl_jieba)
plt.imshow(fc_worldcloud)
plt.axis("off")
plt.show()
云圖_睿思
- 畫(huà)出咪蒙文章標(biāo)題云圖
給咪蒙標(biāo)題分詞,并畫(huà)出云圖
coding:utf-8
import matplotlib.pyplot as plt
import csv
from wordcloud import WordCloud,STOPWORDS,ImageColorGenerator
import jieba
import codecs
import pandas as pd
import parse
fc = pd.read_csv(r'/Users/zhangyi/Desktop/csvs/mm.csv') # 讀取CSV文件
f1 = fc['title'].drop_duplicates() # 從中抽取標(biāo)題列
f1.to_csv('/Users/zhangyi/Desktop/csvs/mm.txt', index=False) # pandas寫(xiě)入txt
textfc = codecs.open('/Users/zhangyi/Desktop/csvs/mm.txt').read() #讀txt
wordlist_jieba1 = jieba.cut(textfc, cut_all=False) #精確模式
wl_jieba1 = " ".join(wordlist_jieba1)
wordlist_jieba2 = jieba.cut(textfc, cut_all=True) #全模式
wl_jieba2 = " ".join(wordlist_jieba2)
wordlist_jieba3 = jieba.cut_for_search(textfc) #搜索引擎模式
wl_jieba3 = " ".join(wordlist_jieba3)
wc = WordCloud(background_color='white', # 設(shè)置背景顏色
max_words=5000, # 設(shè)置最大現(xiàn)實(shí)的字?jǐn)?shù)
stopwords=STOPWORDS, # 設(shè)置停用詞
max_font_size=50, # 設(shè)置字體最大值
random_state=30, # 設(shè)置有多少種隨機(jī)生成狀態(tài)诫肠,即有多少種配色方案
width=800,
height=400
)
fc_worldcloud1 = wc.generate(wl_jieba1)
fc_worldcloud2 = wc.generate(wl_jieba2)
fc_worldcloud3 = wc.generate(wl_jieba3)
plt.imshow(fc_worldcloud1)
plt.imshow(fc_worldcloud2)
plt.imshow(fc_worldcloud3)
plt.axis("off")
plt.show()
fc_worldcloud1.to_file('mimeng_jingque.jpg')
fc_worldcloud2.to_file('mimeng_quan.jpg')
fc_worldcloud3.to_file('mimeng_sousuo.jpg')
云圖_咪蒙_精確模式
云圖_咪蒙_全模式
云圖_咪蒙_搜索模式
- 用R語(yǔ)言對(duì)睿思文章標(biāo)題進(jìn)行分析
setwd("/Users/zhangyi/Desktop")
Data <- read.csv("1.csv",header = T)[,2:3]
# 聚類建模
km=kmeans(Data,center=4)
km$size/sum(km$size)
# 將數(shù)據(jù)按聚類結(jié)果分組
Data.cluster <- data.frame(Data,km$cluster)
Data1 <- Data[which(Data.cluster$km.cluster==1),]
Data2 <- Data[which(Data.cluster$km.cluster==2),]
Data3 <- Data[which(Data.cluster$km.cluster==3),]
Data4 <- Data[which(Data.cluster$km.cluster==4),]
Data <- read.csv("1.csv",header = T)[,1:3]
Data[row.names(Data1),]$title
Data[row.names(Data2),]$title
Data[row.names(Data3),]$title
Data[row.names(Data4),]$title
如圖所示:
data
通過(guò)聚類后的數(shù)據(jù)表司澎,我們可以大概知道,Data1屬于大眾文章栋豫,Data2屬于極少類挤安,而Data3-4 可能屬于我們需要的,閱讀量大而且回復(fù)量大的文章丧鸯。
查找出標(biāo)題:
data1
data2-3
data4
通過(guò)看圖可知蛤铜,除了Data2的公眾帖,以及Data1的普通帖丛肢,Data3-4的閱讀量和回復(fù)量都不錯(cuò)围肥。但通過(guò)觀察可知,Data3大多屬于管理帖蜂怎,只有Data4適合進(jìn)行分析虐先。而分別查看有限的帖子后會(huì)發(fā)現(xiàn),該類帖子屬于“推薦/金幣/定期分享”派敷。如需進(jìn)行宣傳蛹批,尤其是實(shí)施長(zhǎng)期影響撰洗,可采用“金幣+單網(wǎng)頁(yè)分享”等方式進(jìn)行標(biāo)題選擇。
##### 總結(jié):
通過(guò)云圖腐芍,我們可以知道在某個(gè)領(lǐng)域的關(guān)鍵詞如何差导,在之后選擇題目的時(shí)候,可以從其中挑選關(guān)鍵詞猪勇。在聚類分析后设褐,可以通過(guò)分析其文章之間的關(guān)聯(lián)性,采取長(zhǎng)期宣傳的一些特定措施泣刹。好比助析,采取只在一個(gè)帖子內(nèi)進(jìn)行宣傳,砸金幣椅您,以及定期分享等策略外冀。