利用Tushare做新闻数据挖掘

众所周知,Tushare是一个免费、开源的python财经数据接口包。主要实现对股票、期货、基金等金融相关数据的数据采集、清洗加工到数据存储的过程,为从事金融的人士提供快速、整洁、和多样的便于分析的结构化数据,为他们在数据获取与整理方面减轻工作量,使他们更加专注于策略和模型的研究与实现上。Tushare目前升级为Tushare Pro,数据从广度和深度都得到了提升,数据内容扩大到包含期权、新闻等,同时包括了数字货币行情等区块链数据,最近上线了近10年CCTV新闻联播文本数据。




本文运用Tushare和python对新闻联播数据进行提取与整理,试图从中挖掘出能够对股票市场有价值的信息,并通过可视化工具展示出来,希望能起到抛砖引玉的作用。

### 提取某日新闻联播的标题及内容

1
2
3
4
5
6
7
8
9
10
import tushare as ts
import pandas as pd
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

pro = ts.pro_api('你的接口token')
df = pro.cctv_news(date='20181226')
df # 显示当天所有内容
df.loc[5,'title'] #显示第5条新闻标题
df.loc[5,'content'] #显示第5条新闻内容全文




词频统计与词云图

1
2
3
4
5
6
7
8
from pyecharts 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年的新闻联播文本提取出来后存为csv文件,然后借助jieba分词工具,我们可以快速的实现文本的分词功能。同时可以设置关键字黑名单和白名单,过滤不需要的,提取想要的关键词。对于最具影响力的新闻节目,可能很多人第一想到的是哪些关键词出现的次数最多?对于常见新闻词语,一定逃不出你的预料之中,下面这个词云图可以验证你的判断。



显示省会热度

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from pyecharts import Bar

# 显示近三年各省省会出现的频次
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 in range(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


我们发现近三年,杭州、海口、武汉、南昌提到较为频繁,海口的频繁提到应该跟海南建设自由贸易试验区、探索建设中国特色自由贸易港的相关政策有关。

显示国家热度

1
2
3
4
5
6
7
8
9
10
11
12
from pyecharts import Line


cdss = ctdf_all.head(10)
attr = [str(year) for year in range(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


国家频次图可以体现出国际关系方面的情况变化,从上图可以发现,美国、俄罗斯出现在新闻联播出现的频次一直很高,而且近年呈上升趋势,而日本在2015年以后,提到的次数越来越少。

显示特定关键词热度

1
2
3
4
5
6
7
8
9
10
11
from pyecharts 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(keyword, attr, val,is_label_show=True)
bar


通过上图可以看出,关键词“一带一路”从2014提出来之后,整体呈现逐年热度递增的态势。

如果文章对您有用请随意打赏,谢谢支持!