利用Tushare做新聞數(shù)據(jù)挖掘作者:北京量化投資管理有限公司 基金經(jīng)理 沈冬鵬 眾所周知,Tushare是一個(gè)免費(fèi)、開源的python財(cái)經(jīng)數(shù)據(jù)接口包。主要實(shí)現(xiàn)對(duì)股票、期貨、基金等金融相關(guān)數(shù)據(jù)的數(shù)據(jù)采集、清洗加工到數(shù)據(jù)存儲(chǔ)的過(guò)程,為從事金融的人士提供快速、整潔、和多樣的便于分析的結(jié)構(gòu)化數(shù)據(jù),為他們?cè)跀?shù)據(jù)獲取與整理方面減輕工作量,使他們更加專注于策略和模型的研究與實(shí)現(xiàn)上。 Tushare目前升級(jí)為Tushare Pro,數(shù)據(jù)從廣度和深度都得到了提升,數(shù)據(jù)內(nèi)容擴(kuò)大到包含期權(quán)、新聞等,同時(shí)包括了數(shù)字貨幣行情等區(qū)塊鏈數(shù)據(jù),最近上線了近10年CCTV新聞聯(lián)播文本數(shù)據(jù)。本文運(yùn)用Tushare和python對(duì)新聞聯(lián)播數(shù)據(jù)進(jìn)行提取與整理,試圖從中挖掘出能夠?qū)善笔袌?chǎng)有價(jià)值的信息,并通過(guò)可視化工具展示出來(lái),希望能起到拋磚引玉的作用。 提取任意一天新聞聯(lián)播的標(biāo)題及內(nèi)容importtushare as ts import pandas as pd from IPython.core.interactiveshell importInteractiveShell InteractiveShell.ast_node_interactivity="all" pro =ts.pro_api('你的接口token') df =pro.cctv_news(date='20181226') df # 顯示當(dāng)天所有內(nèi)容 df.loc[5,'title']#顯示第5條新聞標(biāo)題 df.loc[5,'content']#顯示第5條新聞內(nèi)容全文
詞頻統(tǒng)計(jì)frompyecharts import WordCloud all= pd.read_csv('./data/cctv_done/all.csv', encoding='utf8') name =list(all.head(100)['keyword'].values) val =list(all.head(100)['count'].values) wordcloud =WordCloud(width=900,height=620) wordcloud.add("",name, val, word_size_range=[20, 100]) wordcloud
我們將近10年的新聞聯(lián)播文本提取出來(lái)后存為csv文件,然后借助jieba分詞工具,我們可以快速的實(shí)現(xiàn)文本的分詞功能。同時(shí)可以設(shè)置關(guān)鍵字黑名單和白名單,過(guò)濾不需要的,提取想要的關(guān)鍵詞。 對(duì)于最具影響力的新聞節(jié)目,可能很多人第一想到的是哪些關(guān)鍵詞出現(xiàn)的次數(shù)最多?對(duì)于常見新聞詞語(yǔ),一定逃不出你的預(yù)料之中,下面這個(gè)詞云圖可以驗(yàn)證你的判斷。 顯示省會(huì)熱度frompyecharts import Bar # 顯示近三年各省省會(huì)出現(xiàn)的頻次 pro_data =pd.read_csv('./data/cctv_done/procity_count_list.csv', encoding='utf8') bar =Bar("", width=1000,height=500) ps =pro_data.groupby(['key', 'year']).sum().reset_index() attr =list(ps['key'].drop_duplicates().values) for x inrange(2016, 2019): val = ps[ps.year ==x] val =list(val['count'].values) bar.add(str(x),attr,val,is_stack=True,xaxis_interval=0,xaxis_rotate=60,yaxis_rotate=30) bar
我們發(fā)現(xiàn)近三年,海口、武漢、西安、廣州提到較為頻繁,海口的頻繁提到應(yīng)該跟海南建設(shè)自由貿(mào)易試驗(yàn)區(qū)、探索建設(shè)中國(guó)特色自由貿(mào)易港的相關(guān)政策有關(guān)。 顯示國(guó)家熱度frompyecharts import Line cdss =ctdf_all.head(10) attr =[str(year) for year inrange(2009, 2019)] line =Line("") for ckey in cdss['key'].values: val = ctdfs[ctdfs.key ==ckey]['count'].values line.add(ckey, attr, val, is_smooth=True) line
國(guó)家頻次圖可以體現(xiàn)出國(guó)際關(guān)系方面的情況變化,從上圖可以發(fā)現(xiàn),美國(guó)、俄羅斯出現(xiàn)在新聞聯(lián)播出現(xiàn)的頻次一直很高,而且近年呈上升趨勢(shì),而日本在2015年以后,提到的次數(shù)越來(lái)越少。 顯示特定關(guān)鍵詞熱度frompyecharts import Bar keyword ='一帶一路' df =pd.read_csv('./data/cctv_done/year_done.csv', encoding='utf8') word_df =df[df.key == keyword] bar =Bar() attr =word_df['year'].values val =word_df['count'].values bar.add("一帶一路", attr, val,is_label_show=True) bar
通過(guò)上圖可以看出一帶一路從2014提出來(lái)之后,整體呈現(xiàn)逐年熱度遞增的態(tài)勢(shì)。 (北京量化投資管理有限公司 基金經(jīng)理 沈冬鵬 ) |