新聞聯播也可以拿用Python來做資料分析?

嗨學程式設計發表於2019-01-16

資料準備

獲取近10年的新聞聯播文字有兩個方法,一是自己寫爬蟲,將CCTV網站的新聞聯播網頁爬取下來,二是通過Tushare SDK的API免費獲取資料。

如果是自己爬,好處是可以鍛鍊自己的爬蟲程式設計能力,磨練自己被可能不統一的網頁格式虐心千百遍還不砸電腦的心態意志。

壞處是爬資料,清洗資料確實浪費時間,搞不好真有可能費電腦。

當然如果直接通過Tushare SDK調取資料,只需要一行程式碼即可獲取到格式統一的資料。

df = pro.cctv_news(date='20181222')

推薦下我自己建立的Python學習交流群960410445,這是Python學習交流的地方,不管你是小白還是大牛,小編都歡迎,不定期分享乾貨,包括我整理的一份適合零基礎學習Python的資料和入門教程。

資料格式效果如下:

新聞聯播也可以拿用Python來做資料分析?

如果要獲取其他新聞資訊,也很簡單:

df = pro.news(src='sina', start_date='20181223', end_date='20181224')

新聞源目前支援如下:

新聞聯播也可以拿用Python來做資料分析?

獲取獲取後,可以存csv也可以存Excel,或者存資料庫都可以,這樣就完成了原始資料準備。

分詞處理

藉助Python jieba分詞工具,我們可以快速的實現文字的分詞功能。同時可以設定關鍵字黑名單和白名單,過濾不需要的,提取想要的關鍵詞。

新聞聯播也可以拿用Python來做資料分析?


按日期處理分詞之後,我們可以對詞頻進行統計,生成一個完整的詞頻csv檔案。

為了讓大家更好地完成本次實驗,我們直接提供已經完成統計的csv檔案供大家下載,請在文章末尾獲取下載方式。

詞頻統計分析

新聞詞雲統計

對於最具影響力的新聞節目,可能很多人第一想到的是哪些關鍵詞出現的次數最多?對於常見新聞詞語,一定逃不出你的預料之中,下面這個詞雲圖可以驗證你的判斷。

新聞聯播也可以拿用Python來做資料分析?

實現詞雲非常方便,前提是你已經準備好了詞頻統計。幸運的是,我們為你提供了現成的詞雲統計csv檔案,在下載的檔案中可以找到一個all.csv的檔案。

新聞聯播也可以拿用Python來做資料分析?


正如你所看到的,我們藉助了pyecharts這個工具來實現視覺化。以下所有圖形效果都是藉助pyecharts來實現的,更多具體的使用可以自行學習echarts和pyecharts的知識來加強圖形制作能力,這裡不做太多的介紹。

新聞分類統計

除了新聞聯播常見關鍵詞,我們可能還想知道一些特定詞語出現在新聞聯播的次數,以便了解該類資訊受關照程度,比如在過去10年當中,哪些省份和省會城市最受新聞聯播關注?

我們將各省在新聞聯播出現的資料進行分年統計,然後通過柱狀圖的形式展示出來。

新聞聯播也可以拿用Python來做資料分析?


新聞聯播也可以拿用Python來做資料分析?

通過上圖我們可以知道,作為首都的北京毫無疑問是關注最多的地方。而在每年因為不同的政治、經濟或者文化事件,不同的省出現的頻次也呈現出一些差異。

比如2018年在政策上對海南的傾斜,對珠三角的關注等,而在2017年香港迴歸20年,河北雄安新區的提出等事件,讓這些地方備受關注。

同樣的方法,我們也可以對各省會城市出現的頻次進行按年份統計。

新聞聯播也可以拿用Python來做資料分析?

可以清楚的看到,在2009年烏魯木齊因暴恐事件受到了極大的新聞關注,而海口在近兩年開放海南的大背景下也成了新聞聯播的常客。

如果柱狀圖看的不夠清晰,我們可以藉助地圖熱力方式來顯示各省收關注程度可能更清楚。

新聞聯播也可以拿用Python來做資料分析?


新聞聯播也可以拿用Python來做資料分析?


在熱力地圖上,顏色越深表示受關注越大,我們看到北京最紅,而東部沿海比西部,東北要比內蒙受關注更多。

如果想要了解各地級市或者縣級在新聞聯播出現的次數,我們同樣可以藉助地圖效果來展示,通過散點效果可以大致看出在新聞聯播出現的情況。

新聞聯播也可以拿用Python來做資料分析?

新聞佔比統計

可能有些人很想了解哪些大學在新聞聯播出現的次數最多,就像北京被關注最多一樣,北京的清華北大應該也是關注最多的?

我們來通過資料統計,根據排名前30位的佔比來分析一下。

新聞聯播也可以拿用Python來做資料分析?


新聞聯播也可以拿用Python來做資料分析?

我們對清華、北大、人大等知名大學的排名可能並不會覺得奇怪,但在受關注度排名前30的大學中,發現了一所國外的大學,那就是莫斯科大學,在接近10年的歷史裡,總共提到了31次。

通過新聞內容我們知道,國家領導人曾經在大學演講過,以及國家領導人勉勵在莫斯科大學留學的中國學子等活動獲得了關注。

而在與世界各國的往來方面,我們同樣可以藉助上述的方法,統計出各國在新聞聯播出現的次數來得到體現。

新聞聯播也可以拿用Python來做資料分析?

正如我們所知,中國與美國的關係是中國外交關係最緊密的,而中俄,中日關係也是非常重要。但同時我們也看到,諸如敘利亞、伊朗、朝鮮、伊拉克、巴基斯坦等戰亂和動盪的國家讓世界人民也讓中國人民操碎了心。

新聞分時統計

在國際關係方面,我們從上面各國出現在新聞聯播的次數基本上得到了體現,但從每年的關注情況方面,我們可以通過折線圖更加清楚的瞭解到一些細節。

新聞聯播也可以拿用Python來做資料分析?


新聞聯播也可以拿用Python來做資料分析?

在其他新聞和經濟熱詞方面,我們也進行了一些檢驗,比如人工智慧、智慧製造和5G等近年來越來越多的被提到,而在提到“金融風險”的次數也伴隨提及“金融”二字出現的越來越多。

另外,我們也跟蹤了一帶一路、自貿區、雄安新區等熱詞的頻次,比如雄安新區,在2017年4月1日首次出現之後,也是經常出現在新聞聯播裡,通常快要到事件或概念提出的週年的時候,出現的頻次會更多。

新聞聯播也可以拿用Python來做資料分析?

總結

對於新聞等非結構化資料的統計分析,是一個很有意思的過程,也許你會發現一些意外的驚喜。尤其是結合網際網路社群的資料,比如微信微博等,可以從中挖掘出很有價值的資訊。

本次實驗過程只是一個簡單的開始,還有很多更值得分析的角度和方法,只為拋磚引玉,希望對大家有所助益。


相關文章