简单思路描述:根据前一天的新闻数据,预测后一天大盘涨跌,涨为1,跌为0.
构建数据集:
import tushare as ts
ts.set_token(' ')
#ts.set_token('your token here')
pro = ts.pro_api()
df1 = pro.cctv_news(date='20190916')#0
df2 = pro.cctv_news(date='20190917')#1
此步骤为测试版,真正使用需考虑星期五星期六星期天的新闻数据,以及节假日数据合并。并且标签使用大盘数据确定而不是手工敲定。
完整测试代码:
all = df1.append(df2, ignore_index=True)
all['words'] = all['content'].apply(lambda s: list(jieba.cut(s))) #调用结巴分词
import numpy as np
import pandas as pd
import jieba
maxlen = 100 #截断词数
min_count = 1 #出现次数少于该值的词扔掉。这是最简单的降维方法
content = []
for i in all_['words']:
content.extend(i)
abc = pd.Series(content).value_counts()
abc = abc[abc >= min_count]
abc[:] = list(range(1, len(abc)+1))
abc[''] = 0 #添加空字符串用来补全
word_set = set(abc.index)
def doc2num(s, max