“80%的商业信息来自非结构化数据,主要是文本数据”(Seth Grimes),这一说法可能夸大了文本数据在商业数据中的占比,但是文本数据所蕴含的信息价值是毋庸置疑的。在信息爆炸的社会,文本数据量如此庞大,我们能做什么呢?事实上,能做的有很多,主要取决于你的目标是什么。
自然语言处理(NLP)是人工智能(AI)一个重要的子领域,目前比较流行的语言模型包括有限状态机、马尔可夫模型、词义的向量空间建模;机器学习分类器:朴素贝叶斯、逻辑回归、决策树、支持向量机、神经网络;序列模型:隐藏马尔可夫模型、循环神经网络(RNN)、长短期记忆神经网络(LSTMs)。Python金融量化分析进入到高阶阶段后,将进一步探索这些模型方法在金融市场或金融场景上的运用。
本文试图通过词云和情绪判断,对财经新闻进行基本的文本分析和数据挖掘,以起到抛砖引玉的效果。
财经新闻文本分析本文用的是Python 3.6版本,直接在Jupyter Notebook上写code和交互运行,需要用到的package包括pandas、tushare、matplotlib、jieba、wordcloud,如果没有安装这些包,需要先安装,在cmd(命令提示符)上运行命令“pip install xxx(如tushare)”
数据获取tushare是目前比较好用的数据开源包,可以免费获取股票、期货、宏观、基本面等数据,之后的金融量化分析实践基本上都会使用该包来获取数据,具体使用方法,可以到tushare的官网查看。
新闻词云分析新浪财经新闻频率非常高,基本上几秒中就可以刷出几条新的新闻,面对如此多的信息,如何快速地通过关键词过滤掉不必要的信息呢?“词云”是当下比较流行的文本关键词可视化分析手段,即通过对新闻文本中出现频率较高的“关键词”予以视觉上的突出,形成“关键词云层”或“关键词渲染”,过滤掉大量的文本信息,使大家只要一眼扫过文本就可以领略财经新闻的梗概。
从上面新闻的标题词云图可以看出,今晚(22:00运行程序,不同时间得到结果不一样)新闻关键词主要有:美国、中国、科技、券商、比特币、退市、暴跌…光看标题,可能又隐藏了比较多的信息,我们可以进一步分析新闻文本的内容。
从上面新闻内容的词云图,不难看出,比特币出现了暴跌,悲观情绪笼罩..。
通过新闻标题来判断该新闻报道内容为积极性/消极性的概率。这部分代码较长,不在此展示,感兴趣的朋友可以关注公众号Python金融量化(tkfy920)并回复“文本1”免费获取代码。