Python資料分析入門(二)

NGU發表於2018-08-21

前言

上次給大家帶來的衛視收視率的實時分析,反響還不錯。而此次我們的主題是:"中國好詩人",這次小編會與大家聊聊在中國歷史中留下濃墨重彩的古代文人們,究竟誰的作品最受歡迎,誰的人氣最高,誰又最高產。本文將用當前流行的選秀節目形式在輕鬆的氛圍中回答這些問題,並與大家分享一些爬蟲和統計的知識。


本次案例相關包

Python資料分析入門(二)


1.海選

首先評判一個文人的標準就是它的作品的受歡迎度以及它的作品數量,所以此次我們採集了唐詩、宋詞各10000首,明曲1450篇,文言文600篇對做為我們的原始資料,資料的採集網站為"https://www.gushiwen.org"

Python資料分析入門(二)

資料採集下來後,由於該網站資料有重複出現,所以我們需要對資料進行去重。去重完成後,我們就需要對所採集的資料進行合併處理,因為我們此次評選的是”中國好詩人“,所以首先的要求就是全能,多產。於是我們將只有一篇作品的文人給去除掉。詩詞曲文的資料合併後,我們就需要將每篇文人作品的點贊數和產量進行求和。從而篩選出前100名作為海選的晉級物件。

Python資料分析入門(二)

我們可以從圖中看出由於不少詩歌不知出處,所以就打上了”佚名“的標籤,所以在此我們還需要對資料進行處理,從而剔除掉這一類的詩歌。最後我們我們將前100位的作者的作品數量和作品總點贊數分別作為x,y軸繪製散點圖。

Python資料分析入門(二)

我們發現原始資料集中在左下角,為了提高可讀性,我們將橫縱座標分別log處理。

Python資料分析入門(二)

從圖中我們可以大體看出晉級的文人所屬的朝代分佈,但是想要仔細的對比,對於我們來說還是有些難度,於是我們將各朝各代的詩歌數量和點贊量進行對比。

Python資料分析入門(二)

既然已經篩選出了前100名的文人們,那麼我們的海選也已經完成,接下來我們進入複賽。


2.複賽

有了好的作品和一定的產量,那麼我們也需要文人們有較高的人氣才能從才子如雲的群體中殺出重圍,所以我們選取百度百科中讀者們對文人們的打分來做為我們衡量文人們人氣的標準。這同時也是文人們晉級決賽的標準。

Python資料分析入門(二)

我們分別採取了文人們在百度百科中的點贊數和轉發數,並將他們相加作為人氣值,從而篩選出人氣值前50的文人進入決賽。

Python資料分析入門(二)

我們再來看一下50大詩人的具體朝代分佈

Python資料分析入門(二)

最後已經有50個文人晉級了決賽,那麼我們就來看看他們在決賽當中如何廝殺吧。


3.決賽

經過了前兩輪的篩選,我們的選手可謂都是萬中挑一了,不過這還不夠,可謂一山不容二虎,我們的文人墨客們也需分出勝負。在此我們我們以第一輪的文人獲贊數和產量,第二輪的人氣值,來綜合作為我們最後的評判標準。由於是入門案例,需要照顧大部分讀者,所以在此我們就不展示使用PCA(主成分分析)來對我們的最終資料進行中心化求得總分,小編在這裡按權重佔比來計算最後的得分,即最終得分=獲贊數*0.3+產量*0.3+人氣值*0.4,最後我們給出這次大賽的完整排名。

Python資料分析入門(二)

從表中我們可以看出唐代大詩人李白由人氣值排名第1,作品獲贊數第1,作品量第3獲得了我們這次大賽的第1名,其次分別是宋代大文豪蘇軾和女中豪傑李清照奪得2、3名。而且從表中還可看出最後的前50榜單,唐朝詩人佔據著很大的比例,這也與唐朝是詩歌的黃金時代一美名相對應。最後我們言歸正傳,此次的”中國好詩人“的TOP3分別為李白、蘇軾、李清照。排名4-10位的分別是:杜甫、曹操、陸游、白居易、納蘭性德、陶淵明、岳飛。我們在此向他們送去衷心的祝福。


需要原始碼和PCA(主成分分析)程式碼的讀者可以後臺給小編留言,小編看到就會第一時間回覆你。

對爬蟲,資料分析,演算法感興趣的朋友們,可以加微信公眾號 TWcoding,我們一起玩轉Python。

If it works for you.Please,star.

自助者,天助之

Python資料分析入門(二)




相關文章