Py学习  »  Python

【浙商银行FICC·量化】用Python解读货币政策季度例会

浙商银行FICC • 3 年前 • 347 次点击  


自中国人民银行货币政策委员会召开2020年第二季度例会后,众多媒体和机构都对其内容进行了详细的专业化解读,许多机构通过逐字逐句地比较其与一季度内容的区别,从中获取货币政策的发展方向。自小编上次尝试用Python解读《政府工作报告》后,便认识到自然语言处理算法在解读政策报告等方面有着独特有趣的视角。本文第一部分用“老套路”看看上篇文章所使用的方法在货币政策季度例会内容分析上的效果。其余二、三、四部分则尝试使用三种自然语言处理领域的“新方法”对货币政策季度例会内容进行分析解读。




一、老套路:词云图、词频分析和TF-IDF算法


根据分词、去除停用词的结果,小编绘制了今年二季度货币政策例会词云图,见图1。从中可以看出,由于“疫情”影响,二季度的货币政策依然延续降低“贷款利率”、降低小微“企业”的融资成本、“支持”实体经济“发展”的主调,以“守住不发生系统性金融风险的底线”。


图1:2020年二季度货币政策例会内容的词云图



图2展示了过去六个季度货币政策例会报告中出现频率较高的词汇的权重变化趋势图。可以看到,今年由于疫情影响,对“贷款”尤其是“信用贷款”的关注相较去年有了明显的提升,且二季度相对一季度更注重提高小微企业贷款、信用贷款的比重,希望以此加大对实体经济的支持力度;而去年一直强调的“高质量”发展在今年则没有被提及。


为进一步比较今年二季度与一季度例会关注点的变化,下图展示了用TF-IDF算法对今年两个季度例会内容进行关键词提取的结果。通过比较可以发现,二季度货币政策例会内容除了提升信用贷款方面的比重,还强调提高“直达性”,要“打通货币传导多种堵点”。


图2:2019年1季度-2020年二季度货币政策例会内容的词汇权重变化




二、自动生成摘要


文本摘要,是一个从多种文本资源(如书籍、文章、研究类论文)生成简洁而有归纳性的文字的过程。用python自动生成摘要,便可快速了解文本的大致内容。


SnowNLP库的自动摘要功能,实质就是从文章中自动抽取关键句,它主要采用TextRank算法。TextRank算法由著名的Google网页搜索PageRank算法迁移而来,是一种基于图的排序算法。它通过把文本分割成若干组成句子单元,构建节点连接图,用句子之间的相似度作为边的权重,通过循环迭代计算句子的TextRank值,最后抽取排名最高的句子组合成文本摘要。


这里用Python对二季度货币政策例会内容进行自动分析,生成的摘要为:

“‘会议分析了国内外经济金融形势’,‘大力支持疫情防控、复工复产和实体经济发展’,‘引导金融机构加大对实体经济特别是小微企业、民营企业的支持力度’,‘提高开放条件下经济金融管理能力和防控风险能力’,‘促进金融与实体经济良性循环’”。




三、词性标注


词性标注,是在给定句子中判定每个词的语法范畴,确定它的词性并加以标注的过程。比如给定句子“她很漂亮”,其词性标注结果就是“她(名词)很(副词)漂亮(形容词)”。


Jieba库的词性标注过程非常类似于jieba库的分词流程,它同时进行分词和词性标注:

  • 在词性标注的时候,首先基于正则表达式进行汉字判断,

  • 如果是汉字,则会基于前缀词典构建有向无环图,然后基于有向图计算最大概率路径,同时在前缀词典中查找所分出的词的词性,如果没有找到,则将其词性标注为“un”(未知词性)。在此过程中若使用HMM方式进行词性标注,且待标注词为未登录词(未登录词即没有被收录在分词词表中但必须切分出来的词,包括各类专有名词、缩写词、新增词汇等等),则会通过HMM的方式进行标注。

  • 若不符合上面的正则表达式,那么将会继续通过正则表达式来判断,分别赋予:"un"(未知词性),"m"(数词),"eng"(英文)。


形容词和副词(简称形副词)往往是表明程度或具有情感倾向的词,在政策报告等文本中,分析这类词的用词变化,可以获得更多单纯关键词提取无法传递的信息。我们对过去六个季度的货币政策例会内容进行词性标注,并抽取形容词和副词类型的词汇用TF-IDF算法再次进行关键词提取,统计结果见表1。



可以看出,19年的历次货币政策季度例会的形副词的高频词主要为“健康”、“平稳”、“积极”等相对积极、正面的词汇;而今年的两次例会,上述词汇出现频率降低,二季度例会相较于一季度,更出现了“严峻”、“艰巨”、“繁重”等相对负面的词汇。从这个角度看,虽然当前金融风险得到有效防控,但全球疫情和世界经济形势依然严峻复杂,国内经济金融领域的挑战不可小觑。




四、情感分析


单从形副词进行情感判断容易产生片面性,更进一步的做法则是对文章逐句进行情感分析。


文本情感分析是指对给定的文本,识别其中主观性文本的倾向是肯定还是否定的,或者说是正面还是负面的。SnowNLP库的情感分析是基于情感词典和朴素贝叶斯算法实现的。情感词典(或已分类的训练集),需要包括正面和负面情感词典两类。用情感词典进行训练得到的模型(朴素贝叶斯分类器)对新样本分类,即:

其中,C1,C2,表示类别,W1,...,Wn表示样本(例如已分词的句子等)。其返回值为情绪的概率,越接近1为正面(积极),接近0为负面(消极),通过设定阈值,便可得到最终的情绪分类结果。


小编在这里尝试对今年二季度的货币政策例会内容逐句进行情感分析,以下是其中一段的分类结果:


注:这里概率阈值设定为:[0,0.3):负面,[0.3,0.6]:中性,(0.6,1]:正面。


观察以上结果,除个别句子(如“稳健的货币政策体现了前瞻性、针对性和逆周期调节的要求”不应为负面)外,情感分类基本正确。而该句被归为负面分类主要是由于出现了“逆”字,这个字包含在负面情感词典中。但在金融领域,“逆周期”反而是一个偏向正面的词,它在一定程度上对周期当中的系统性风险进行对冲和缓释。因此,我们尝试将“逆周期”加入正面情感词典后,对上述句子进行重新打分,最后得到的结果为0.57,属于中性句子,且偏向于正面。

由此可见,情感分析结果很大程度上依赖于情感词典(训练集)对测试样本是否有针对性,某些词在一些专业领域有其特殊的情感倾向。因此,情感词典的构建有时也要借助人工判别和维护。事实上,打标签是机器学习尤其是监督学习过程在应用上的痛点,机器距离完全的智能还有很长的路要走。


下图是根据今年货币政策委员会一季度和二季度例会内容逐句情感分析结果绘制的频数分布直方图。可以看到,两次例会内容作为客观性文本,其基本情感基调都是中性的,但二季度文本相比一季度,评价相对负面的句子更多,这也说明了二季度我国疫情虽已得到较好的控制,但其依然给国内经济金融领域带来了较大的风险和严峻的挑战。




此外,本文分析的货币政策例会内容是相对客观的文本,若是将情感分析用于主观文本的处理,其结果将更加出色。


本次小编的分析就到这里。虽然现阶段自动摘要、关键词提取、情感分析等自然语言处理技术尚无法直接用于产生交易信号,但他们已能作为一个独特的方式辅助解读报告,或作为因子与基本面和行情数据一起生成交易信号,对交易产生影响。



“浙商银行FICC”由浙商银行金融市场部主办,涵盖固收、信用、量化、外汇、贵金属与大宗商品等多条线业务的市场研究与政策解读,致力于打造学术性与趣味性兼具的业务交流平台。



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/71058
 
347 次点击