使用分析师报告中含有的情感信息预测上市公司股价变动
今天在github上找到一个股价预测的项目, 感觉该项目对很多会计金融领域的同学很有帮助。
本文目录
摘要
分析发现
项目EasyInvest的PPT
文本分析情感库安装(Loughran&MCdonald)
报告文本分析实战
摘要
作者分析了Morningstar网站上15家最大的零售及科技类公司的分析师报告,并提取了相关的文本数据。然后使用两种情感分析方法得到两种情感值,第一种是使用通用的情感分析库(VADER)分析广义上的情感值(形容词情感,如喜怒哀乐),第二种是情感值使用Loughran&MCdonald金融情感词典得到专业领域情感值;同时还使用S&P Capital IQ和 Yahool Finance 作为原始数据源。最后使用stata做了分析并展示了分析结果。
分析发现
在控制其他指标情况下,结果发现: 1、 下一交易日(T1)股价预测 – 使用分析师报告标题和第一段文本的情感得分,报告当天的情感值每增加10%,下一交易日股价上涨0.5%。2、 下周(T5)股价预测 – 使用分析师报告整体文本的情感得分,报告当天的情感值每增加10%,下周股价上涨0.2%。3、 下月(T30)股价预测 – 我们的模型没能做出分析师报告当天情感值对30田后的股价变动有预测效应
本次分享的内容包括
PPT
代码
一、EasyInvest PPT
这个项目发布于2018年12月6日,感觉挺新的,也是大邓在网上同时找到计算思路、数据和代码的项目。项目名叫做EasyInvests,大家先拿出点时间先看一下该项目的PPT,代码会放到PPT之后(都是大邓调试后可运行的哦)。
二、报告文本分析实战
预测股价用到了 S&P Capital IQ 、 Yahool Finance、 Morningstar三个数据源,其中Morningstar主要是用来抽取分析师报告中的情感值,是唯一的非结构化数据。
项目作者对S&P Capital IQ 、 Yahool Finance一笔带过,主要讲解的是
如何从Morningstar分析师报告中提取情感值的技术和方法
我相信这也是各位最感兴趣的地方。
文本情感分析库安装
本文用到的文本情感分析库:
pysentiment 基于Loughran&MCdonald金融情感词典制作的情感分析库
vaderSentiment nltk内的通用情感分析模块
vaderSentiment安装方法
pysentiment安装方法
我安装pysentiment遇到问题(估计你们也会遇到),解决办法:
下载本文的项目(文章末尾有下载链接获取方式)
将项目文件夹压缩包解压,解压到桌面。
cmd打开命令行(不懂的百度)
命令行输入 cd desktop
,按 Enter回车键
命令行输入 cdStock-Price-Predictions
,按 Enter回车键
命令行输入 cd pysentiment
,按 Enter回车键
命令行输入 python3 setup.py install
,按 Enter回车键。有的同学这里如果有问题,可以将python3换成python
经过上面的操作,pysentiment库也就安装好了。
2.1 导入数据
用 分析师报告标题、第一自然段、最后自然段
三个字段合并新建一个字段 Combined
更改日期格式
2.2 定义情感函数
pandas的dataframe提供了很强大的列数据操作,只要我们定义好文本情感计算的函数,就可以对excel中的某字段进行批量操作。
这里用到
参数解读:
colname 字段名(列名)
func 对colname字段进行计算,比如计算Combined列的情感得分
昨天分享的pysentiment库计算结果能得到 Positive、Negative、Polarity、Subjectivity
指标说明
2.3 提取情感得分